commit b19a56003f8de05fcdabbbd40703d5e7b11ff8a7 Author: obroccolio Date: Thu Aug 6 16:27:36 2026 +0800 添加登录和后端校验 完成后端设计(未在本仓库体现),通过安全的手段完成了登录鉴权 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2174f43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +.claude +.DS_Store +.swc \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..47170ae --- /dev/null +++ b/README.md @@ -0,0 +1,298 @@ +# 智绘微刻小程序开发说明 + +## 项目简介 + +智绘微刻(Smart-Engraving)微信小程序,为用户提供词云生成 + 个性化激光雕刻定制服务。 + +## 技术栈 + +- **框架**: Taro 3.6.31 + React 18 + TypeScript +- **样式**: SCSS(CSS 变量驱动主题系统) +- **目标平台**: 微信小程序 +- **包管理器**: npm + +## 项目结构 + +``` +smart-engraving-miniapp/ +├── config/ # Taro 配置文件 +│ └── index.js # 构建配置(含 copy patterns:icon、img 资源复制) +├── src/ +│ ├── app.tsx # 应用入口(全局 ThemeProvider 挂载) +│ ├── app.scss # 全局样式(CSS 变量 + 主题工具类) +│ ├── app.config.ts # 应用配置(页面路由、tabBar、window) +│ ├── custom-tab-bar/ # 自定义底部导航(5 tab:首页/商品/设计清单/订单/我的) +│ ├── types/ +│ │ └── index.ts # TypeScript 类型定义(ProductCategory、DesignItem、OrderItem 等) +│ ├── utils/ +│ │ ├── productConfig.ts # 产品品类配置(5 个品类 + iconImg 映射) +│ │ └── store.ts # Data Access 层(Storage 读写,openid 隔离) +│ ├── context/ +│ │ └── ThemeContext.tsx # 全局主题 Context(light/dark) +│ ├── components/ +│ │ ├── ThemeToggle/ # 主题切换按钮(onTap 触发) +│ │ ├── LoginGuard/ # 登录守卫(未登录时居中提示) +│ │ └── LoginModal/ # 登录弹窗(历史组件) +│ └── pages/ +│ ├── index/ # 首页(品类入口、成品轮播、搜索) +│ ├── shop/ # 商品浏览页(2列网格 + 沉浸式详情 overlay) +│ ├── product/ # 商品详情页(轮播图 + 加入设计清单弹窗) +│ ├── diy/ # DIY 工作台(贴纸拖拽、缩放、碰撞检测) +│ ├── checkout/ # 设计效果确认页(收货地址 + 下单) +│ ├── designList/ # 我的设计清单(需登录) +│ ├── orders/ # 订单列表(需登录) +│ ├── orderDetail/ # 订单详情(收货地址 + 物流时间轴) +│ ├── profile/ # 个人中心(5 状态入口、6 宫格菜单、企业定制) +│ ├── service/ # 联系客服页 +│ ├── wordcloud/ # 词云生成 +│ ├── address/ # 收货地址管理 +│ ├── settings/ # 设置(个人信息、账号管理、退出登录) +│ ├── agreement/ # 使用协议 +│ └── userDatabase/ # 账号管理(密码保护:zhihui2024) +├── src/icon/ # 20 个 icon PNG(28~56px,打包到 dist/icon) +├── src/img/ # 8 张产品实物压缩图(打包到 dist/img) +├── package.json +├── tsconfig.json +└── project.config.json # 微信开发者工具配置 +``` + +## 页面说明 + +| 页面 | 路径 | 功能 | +|---|---|---| +| 首页 | `/pages/index/index` | 品类入口、成品轮播、搜索框、热门品类网格 | +| 商品浏览 | `/pages/shop/index` | 2列商品网格 → 点击卡片进入沉浸式详情 overlay(滚动视差 + 主题色联动)→ 底部 CTA 跳转购买页 | +| 商品详情 | `/pages/product/index` | 轮播图、单价/工期/尺寸、加入设计清单弹窗 | +| DIY 工作台 | `/pages/diy/index` | 选品类→上传图片/相机→拖拽缩放→碰撞检测→预览下单 | +| 设计效果确认 | `/pages/checkout/index` | 展示设计效果、选择/修改收货地址、确认下单 | +| 设计清单 | `/pages/designList/index` | 清单列表(全部/待设计/未设计/设计中/已下单) | +| 订单列表 | `/pages/orders/index` | 订单列表(全部/待付款/待发货/待收货/已完成) | +| 订单详情 | `/pages/orderDetail/index` | 订单详情页(收货地址 + 物流时间轴) | +| 个人中心 | `/pages/profile/index` | 用户信息、5 状态快捷入口、6 宫格菜单、企业定制 | +| 词云生成 | `/pages/wordcloud/index` | 三步式词云生成 | +| 收货地址 | `/pages/address/index` | 增删改查 + 省市区选择 + 默认地址 | +| 设置 | `/pages/settings/index` | 修改信息、账号管理、定制协议、退出登录 | +| 联系客服 | `/pages/service/index` | 客服电话、微信、邮箱、企业批量定制 | +| 账号管理 | `/pages/userDatabase/index` | 查看/切换/新建/删除本地用户(密码:zhihui2024) | + +## 核心交互流程 + +### 完整业务流程 + +``` +首页浏览品类 → 商品详情页(轮播图+价格+介绍) + → 加入设计清单(弹窗选数量)→ 设计清单页(支持自动筛选) + → 立即下单 → DIY 工作台(直接进入) + → 添加贴纸(相册/相机)→ 拖动调整位置 → 碰撞检测 + → 预览效果 → 确认完成 → 设计效果确认页(含收货地址) + → 弹窗确认下单 → 订单生成 → 订单列表/订单详情(可改地址) + → 物流时间轴追踪 → 确认收货 → 完成 +``` + +### 个人主页快捷入口流 + +``` +个人主页 + → 待设计 / 待付款 / 待发货 / 待收货 / 已完成 → 自动跳转对应页面并筛选 + → 收货地址 → 增删改复 + 省市区选择(微信原生 Picker)+ 默认地址 + → 设置 → 修改昵称头像 / 退出登录 / 定制协议 / 账号管理 + → 账号管理(密码保护:zhihui2024)→ 查看/切换/新建/删除本地用户 + → 企业批量定制 → 客服咨询 +``` + +## 关键配置与实现细节 + +### 主题系统(Light / Dark) + +- 全局 CSS 变量定义在 `app.scss`:`var(--bg-card)`、`var(--text-primary)`、`var(--text-secondary)`、`var(--line-star)` 等 +- 切换方式:根节点 `className={theme-${theme}}`(`theme-light` / `theme-dark`) +- 状态管理:`src/context/ThemeContext.tsx`(React Context),支持全局同步 +- 切换按钮:`src/components/ThemeToggle/index.tsx`(使用 `onTap`,非 `onClick`) + +### 事件绑定规范(Taro 小程序兼容) + +> ⚠️ **重要**:微信小程序 + Taro React + 微信基础库 3.17.0 存在 `onClick` 兼容风险。 +> +> 现象:动态更新事件 handler 时可能触发 `TaroElement.removeEventListener(undefined)`,导致 `Cannot read properties of undefined (reading '_num')`。 +> +> **本项目已全部使用 `onTap` 替代 `onClick`**。后续新增组件也须遵守此规范。 + +| 平台 | 推荐事件 | 说明 | +|------|---------|------| +| 微信小程序 | `onTap` | 编译为 `bindtap`,原生稳定 | +| H5 | `onClick` | 仅在 H5 构建中使用 | + +### Taro React 生命周期建议 + +- **页面显示刷新**:使用 `import { useDidShow } from '@tarojs/taro'`,而非手动覆盖 `page.onShow` +- 手动 `page.onShow = function(){}` 在热更新时会重复叠加,导致异常 + +### 前端 DA 层设计 + +所有数据操作通过 `src/utils/store.ts` 抽象: + +``` +pages/ + └─ 调用 store.getDesignList() / addDesign() / designToOrder() 等业务接口 + └─ store.ts 内封装 Taro.getStorageSync / setStorageSync + └─ key = ${scope}_${openid} 实现多用户数据隔离 +``` + +**后端替换方案**:上线时只需重写 `store.ts` 中的函数为 `wx.request` HTTP 调用,页面层零改动。 + +### Icon 系统(emoji 已完全移除) + +- 19 个 icon 存放在 `src/icon/`,构建时通过 `config/index.js` copy 到 `dist/icon/`。新增「商品」tab 图标后共 20 个 icon +- 产品 icon 映射:`src/utils/productConfig.ts` 中每个产品有 `iconImg` 字段 +- 旧数据兼容:列表渲染时检测 `productIcon` 是否以 `/icon/` 开头,否则通过 `PRODUCT_ICON_MAP` 查映射表 + +### 遮罩尺寸 + +详见 `docs/mask-config-guide.md`。当实际产品尺寸确定后,仅需修改 `src/utils/productConfig.ts` 中的 `PRODUCTS` 数组。 + +### 后端接口(待接入) + +当前代码中以下功能需要接入后端 API: +1. 词云生成:调用 `/api/wordcloud/generate` 提交底图+名单,生成词云图 +2. 图片保存:调用 `/api/upload` 上传用户设计图 +3. 订单创建:调用 `/api/order/create` 提交订单 +4. 登录授权:当前 `openid` 为 mock 值,接入真实后端后替换 `wx.login` 的 `code` + +## 启动开发 + +### 安装依赖 +```bash +npm install +# 或 +yarn install +``` + +### 开发模式(微信小程序) +```bash +npm run dev:weapp +``` + +### 构建(微信小程序) +```bash +npm run build:weapp +``` + +### H5 预览 +```bash +npm run dev:h5 +``` + +## 图片资源与包体积说明 + +当前项目的产品实物照片(`src/img/`)已内置在小程序中。由于微信小程序**预览/上传代码包体积上限为 2MB**,大量高分辨率照片会导致超限。 + +### 已采取的措施(两步压缩脚本) + +- `compress-images.js`(基于 [sharp](https://sharp.pixelplumbing.com/))已配置到项目中,支持批量: + 1. **resize**:最大边长限制到 800px + 2. **format**:PNG → JPG + 3. **quality**:JPG 质量 60% +- 执行一次即可:`node compress-images.js` +- 当前编译后 `dist/` 总大小约 **1.03 MB**(新增 1 个 icon 约 7KB),满足微信限制。 + +### ⚠️ 注意:压缩 ≠ 长期方案 + +压缩后的图片在手机上画质会有可见损失(尤其缩放到全屏轮播时)。**建议上线前迁移到 CDN**: + +1. 注册 **腾讯云 COS**(微信小程序配套,国内访问最快)或 **阿里云 OSS**。 +2. 将 `src/img/` 中的实物照片上传到对象存储。 +3. 拿到每个图片的 **HTTPS 外链 URL**。 +4. 修改 `src/utils/productConfig.ts` 中各产品的 `images` 字段,从本地路径 `/img/xxx.jpg` 替换为网络 URL: + ```ts + // 改之前 + images: ['/img/penbox/The1.jpg'] + // 改之后 + images: ['https://your-bucket.cos.ap-guangzhou.myqcloud.com/penbox/The1.jpg'] + ``` +5. 修改 `config/index.js`,缩小 `copy.patterns` 范围(只 copy icon/占位图等小文件),或直接移除 `src/img` 的 copy 规则,减少构建体积。 + +**迁移优点**: +- 图片清晰度恢复到原图级别; +- 小程序包体积长期保持 < 500KB; +- 后续更换产品图只需在图床后台操作,无需重新发版。 + +--- + +## 最近更新记录(2026-08-04) + +### Batch 12 — 主题跟随 + 贴纸编辑 + 安全区适配 + +| 序号 | 修改内容 | +|------|----------| +| 1 | **主题跟随系统**:`app.config.ts` 补 `darkmode: true`;`ThemeContext` 增加 `useDidShow` + `wx.onAppShow` 双兜底,每次回到前台重新检测系统主题 | +| 2 | **贴纸编辑画板空白**:Canvas 2D 初始化改为 `Taro.nextTick()` + 300ms 自动重试;增加 `Math.round(cw * dpr)` 防小数尺寸;`img.src` 增加空值保护 | +| 3 | **画板截断统一**:DIY 工作台、预览弹窗、确认页三处 `.canvas-area` / `.preview-canvas` 统一补充 `max-width: 100%` + `box-sizing: border-box` | +| 4 | **顶部安全区适配**:`env(safe-area-inset-top, 20px)` 兜底 + 48px 按钮高度;各页面独立 `.page-header` 强制 `!important` 对齐全局 | + +### 已知遗留问题(待修复) + +| 序号 | 问题 | 状态 | +|------|------|------| +| 1 | **地址在设计中添加后无法及时同步** | ❌ 未修复 — checkout 页从 store 读取地址时,design 数据写入和读取生命周期不一致 | +| 2 | **贴纸编辑页无法运行** | ❌ 未修复 — Canvas 2D `createImage` 在某些基础库版本返回 `undefined`;线稿 AI 接口未接入 | +| 3 | **个人主页登录后页面失灵** | ❌ 未修复 — Profile 页 `useDidShow` 与 `LoginGuard` 状态竞争,导致登录后菜单点击事件丢失 | +| 4 | **跟随系统的主题切换按钮无法及时切换** | ⚠️ 部分修复 — `darkmode: true` + `useDidShow` 已加,但部分华为/小米机型 `wx.onThemeChange` 仍不触发,需进一步排查 | + +--- + +## 最近更新记录(2026-08-02) + +### Batch 11 — 商品浏览页(Shop Page)沉浸式体验构建 + +| 序号 | 修改内容 | +|------|----------| +| 1 | **新增「商品」tab**:底部导航 4 tab → 5 tab(首页/商品/设计清单/订单/我的),`app.config.ts` + `custom-tab-bar` 同步扩展,新增 `/icon/商品.png` | +| 2 | **构建 `pages/shop/index.tsx`**:单页双容器结构——列表 2 列网格 + 固定 overlay 沉浸式详情;点击卡片当前页内过渡,不走页面跳转 | +| 3 | **滚动驱动视差动画**:Hero 图上下边缘裁剪 → 整图上滑退出 → `transition-band` 吸顶显现 → 内容区延迟上浮淡入;`ScrollView` + `scrollEventThrottle={16}` | +| 4 | **产品主题色联动**:每个产品新增 `tone: [r,g,b]`(5 产品 5 色调),详情页背景、渐变遮罩、CTA 栏、吸顶条实时跟随变换 | +| 5 | **商品文案升级**:5 个产品全部补充 `subtitle`/`story`/`scene`/`tags`/`specs`/`originalPrice`,电商级长文案展示 | +| 6 | **CTA 衔接现有链路**:底部悬浮毛玻璃栏「立即定制」跳转到原有 `/pages/product/index?id=xxx`,购买流程零改动 | + +## 最近更新记录(2026-08-01) + +### Batch 10 — 夜间模式适配 + 地址弹窗统一 + 空状态主题化 + +| 序号 | 修改内容 | +|------|----------| +| 1 | **订单详情页夜间模式文字修复**:补充 `.status-text`、`.logistics-title/num`、`.meta-title/label/value`、`.timeline-status/time/desc` 等 CSS 变量配色,夜间模式自动变亮 | +| 2 | **地址选择弹窗统一**:提取 `.modal-overlay` + `.addr-picker-sheet` 为 `app.scss` 全局统一样式;移除 checkout/orderDetail 中的重复覆写 | +| 3 | **收货地址空状态主题适配**:📍 emoji → ``;空状态文字使用 CSS 变量;同步修复 `orders/index.scss` 中硬编码颜色 | + +### Batch 9(2026-07-29)— emoji → icon 彻底收尾 +- `productConfig.ts` 增加 `iconImg` 字段 +- `store.ts` 写入层修复(存 `iconImg` 而非 emoji) +- 运行时旧数据兼容映射 `PRODUCT_ICON_MAP` +- 商品详情页弹窗去 emoji + +### Batch 8(2026-07-29)— Taro 事件兼容修复 +- 全量 `onClick` → `onTap`(15 个文件,82 处) +- Profile `STATUS_MAP.map` 消除 Fragment(改为 `View.status-group`) +- `useEffect + page.onShow` 重写为 `useDidShow` +- 删除废弃 `permission.scope.writePhotosAlbum` + +--- + +## 下一步开发计划 + +### 高优先级 +- [ ] 接入后端词云生成 API,替换模拟数据 +- [ ] 实现图片上传接口 +- [ ] 实现订单创建与支付流程 +- [ ] 接入真实微信登录授权(替换 mock openid) +- [ ] 订单物流接口接入(目前为静态 mock) + +### 中优先级 +- [ ] 将实物照片迁移到 CDN(腾讯云 COS / 阿里云 OSS) +- [ ] 添加更多词云底图模板 +- [ ] 支持从微信聊天记录导入 Excel 名单 +- [ ] 实现设计稿保存到草稿箱功能 + +### 低优先级 +- [ ] 3D 效果预览(模拟材质纹理) +- [ ] 批量下单优惠逻辑 +- [ ] 完善企业定制专属通道 diff --git a/answer.md b/answer.md new file mode 100644 index 0000000..225b783 --- /dev/null +++ b/answer.md @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + +20260803 22:02 优化问题 + +1.贴纸编辑页依旧没有照片出现,实时展现贴纸修改效果 + +2.主题切换按钮更随系统的方式要做到系统实时改深浅,微信小程序提供这个api接口wx.onThemeChange 监听系统主题改变事件,可以接入用来监听实时切换小程序主题。API细节描述如下: +wx.onThemeChange(function listener) +基础库 2.11.0 开始支持,低版本需做兼容处理。 + +小程序插件:不支持 + +相关文档: DarkMode 适配指南 + +功能描述 +监听系统主题改变事件。该事件与 App.onThemeChange 的回调时机一致。 + +参数 +function listener +系统主题改变事件的监听函数 + +参数 +Object res +属性 类型 说明 +theme string 系统当前的主题,取值为light或dark +合法值 说明 +dark 深色主题 +light 浅色主题 +注意 +只有在全局配置"darkmode": true时才会触发此事件。 + +3.依旧设计时的画板展示部分和确认设计时的显示不完全相同,有截断的情况,这个问题需要跟进处理 + +4.画面依旧有些不符合手机型号,你查看F:\weixin_wordc\wechat_api.md文档中,主要关注一些有没有监控手机型号的api调用,调用后可清楚了解尺寸并做好适配当前机型的页面调整,现在还是有一些和手机时间栏那部分冲突。应当有一些顶部画面的处理 \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..1f6ecd7 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,8 @@ +module.exports = { + presets: [ + ['taro', { + framework: 'react', + ts: true + }] + ] +} diff --git a/compress-images.js b/compress-images.js new file mode 100644 index 0000000..902068c --- /dev/null +++ b/compress-images.js @@ -0,0 +1,98 @@ +const sharp = require('sharp') +const fs = require('fs') +const path = require('path') + +const IMG_DIR = path.join(__dirname, 'src', 'img') +const QUALITY = 60 // JPG 质量 +const MAX_WIDTH = 800 // 最长边限制 +const MAX_FILE_KB = 80 // 单张上限 KB —— 强制压到 80KB 以下 + +/** + * 压缩单个文件(强制覆盖) + */ +async function compressFile(inputPath) { + const ext = path.extname(inputPath).toLowerCase() + const dir = path.dirname(inputPath) + const base = path.basename(inputPath, ext) + const finalPath = path.join(dir, base + '.jpg') + const isAlreadyJpg = ext === '.jpg' || ext === '.jpeg' + + const stat = fs.statSync(inputPath) + const currentKb = stat.size / 1024 + + // 如果已经 .jpg、体积已小于上限、且最长边不超,跳过 + if (isAlreadyJpg && currentKb <= MAX_FILE_KB) { + const meta = await sharp(inputPath).metadata() + const longEdge = Math.max(meta.width || 0, meta.height || 0) + if (longEdge <= MAX_WIDTH) { + console.log(`skip ${inputPath} (${currentKb.toFixed(1)}KB, ${longEdge}px)`) + return { from: inputPath, to: inputPath, size: stat.size } + } + } + + // 重建 pipeline + const meta = await sharp(inputPath).metadata() + const longEdge = Math.max(meta.width || 0, meta.height || 0) + const resizeOpts = longEdge > MAX_WIDTH ? { width: MAX_WIDTH, height: MAX_WIDTH, fit: 'inside' } : undefined + + let pipeline = sharp(inputPath).jpeg({ quality: QUALITY, progressive: true, force: true }) + if (resizeOpts) pipeline = pipeline.resize(resizeOpts) + + const tmpPath = path.join(dir, base + '_tmp.jpg') + await pipeline.toFile(tmpPath) + + fs.unlinkSync(inputPath) + fs.renameSync(tmpPath, finalPath) + + const newSize = fs.statSync(finalPath).size + console.log( + `${isAlreadyJpg ? 'compress' : 'convert'} ${base}${ext} (${currentKb.toFixed(1)}KB, ${longEdge}px → ${(newSize / 1024).toFixed(1)}KB)` + ) + + return { from: inputPath, to: finalPath, size: newSize } +} + +/** + * 递归收集所有图片 + */ +function collectImages(dir) { + let results = [] + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + const full = path.join(dir, entry.name) + if (entry.isDirectory()) { + results = results.concat(collectImages(full)) + } else if (/\.(png|jpe?g)$/i.test(entry.name)) { + results.push(full) + } + } + return results +} + +/** + * 主函数 + */ +async function main() { + console.log(`scanning ${IMG_DIR}...\n`) + const images = collectImages(IMG_DIR) + console.log(`found ${images.length} images\n`) + + let totalBefore = 0 + let totalAfter = 0 + + for (const img of images) { + totalBefore += fs.statSync(img).size + const result = await compressFile(img) + totalAfter += result.size + } + + console.log(`\n✅ done`) + console.log(` before: ${(totalBefore / 1024 / 1024).toFixed(2)} MB`) + console.log(` after: ${(totalAfter / 1024 / 1024).toFixed(2)} MB`) + console.log(` saved: ${((totalBefore - totalAfter) / 1024 / 1024).toFixed(2)} MB`) +} + +main().catch(err => { + console.error(err) + process.exit(1) +}) diff --git a/config/dev.js b/config/dev.js new file mode 100644 index 0000000..31c6b8c --- /dev/null +++ b/config/dev.js @@ -0,0 +1,8 @@ +module.exports = { + logger: { + quiet: false, + stats: true + }, + mini: {}, + h5: {} +} diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..77672ee --- /dev/null +++ b/config/index.js @@ -0,0 +1,80 @@ +const config = { + projectName: 'smart-engraving-miniapp', + date: '2026-7-20', + designWidth: 750, + deviceRatio: { + 640: 2.34 / 2, + 750: 1, + 828: 1.81 / 2 + }, + sourceRoot: 'src', + outputRoot: 'dist', + plugins: [], + defineConstants: { + }, + copy: { + patterns: [ + { from: 'src/img', to: 'dist/img' }, + { from: 'src/icon', to: 'dist/icon' } + ], + options: { + } + }, + framework: 'react', + compiler: 'webpack5', + cache: { + enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache + }, + mini: { + postcss: { + pxtransform: { + enable: true, + config: { + + } + }, + url: { + enable: true, + config: { + limit: 1024 // 设定转换尺寸上限 + } + }, + cssModules: { + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + config: { + namingPattern: 'module', // 转换模式,取值为 global/module + generateScopedName: '[name]__[local]___[hash:base64:5]' + } + } + } + }, + h5: { + publicPath: '/', + staticDirectory: 'static', + esnextModules: ['taro-ui'], + prebundle: { + enable: false + }, + postcss: { + autoprefixer: { + enable: true, + config: { + } + }, + cssModules: { + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + config: { + namingPattern: 'module', // 转换模式,取值为 global/module + generateScopedName: '[name]__[local]___[hash:base64:5]' + } + } + } + } +} + +module.exports = function (merge) { + if (process.env.NODE_ENV === 'development') { + return merge({}, config, require('./dev')) + } + return merge({}, config, require('./prod')) +} diff --git a/config/prod.js b/config/prod.js new file mode 100644 index 0000000..36ec1b1 --- /dev/null +++ b/config/prod.js @@ -0,0 +1,17 @@ +module.exports = { + logger: { + quiet: false, + stats: true + }, + mini: {}, + h5: { + /** + * 如果h5端编译后体积过大,可以使用 webpack-bundle-analyzer 插件对打包体积进行分析。 + * 参考代码如下: + */ + // webpackChain (chain) { + // chain.plugin('analyzer') + // .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, []) + // } + } +} diff --git a/cont.md b/cont.md new file mode 100644 index 0000000..e69de29 diff --git a/dist/app.js b/dist/app.js new file mode 100644 index 0000000..071f9c5 --- /dev/null +++ b/dist/app.js @@ -0,0 +1,2 @@ +/*! For license information please see app.js.LICENSE.txt */ +require("./common"),require("./vendors"),require("./taro"),require("./runtime"),(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[524],{2951:function(e,n,t){"use strict";t(6882);var r=t(7842),l=t(1291),a=t(758),u=t(3029),i=t(2901),o=t(6919),s=t(5501),c=t(6540),f=t.t(c,2),d=t(9703),p=t(8594),h=t(6606),m=t(4848),g=function(e){function n(){return(0,u.A)(this,n),(0,o.A)(this,n,arguments)}return(0,s.A)(n,e),(0,i.A)(n,[{key:"componentDidMount",value:function(){(0,h.G)((0,p.eW)((0,p.O4)()))}},{key:"componentDidShow",value:function(){}},{key:"componentDidHide",value:function(){}},{key:"render",value:function(){return(0,m.jsx)(d.NP,{children:this.props.children})}}])}(c.Component),v=g,b=t(7260),y={pages:["pages/index/index","pages/shop/index","pages/shop/detail/index","pages/product/index","pages/diy/index","pages/diy/stickerEdit/index","pages/checkout/index","pages/designList/index","pages/orders/index","pages/profile/index","pages/service/index","pages/wordcloud/index","pages/orderDetail/index","pages/address/index","pages/settings/index","pages/agreement/index","pages/userDatabase/index"],window:{backgroundTextStyle:"dark",navigationStyle:"custom",navigationBarTextStyle:"black"},tabBar:{custom:!0,list:[{pagePath:"pages/index/index",text:"\u9996\u9875"},{pagePath:"pages/shop/index",text:"\u5546\u54c1"},{pagePath:"pages/designList/index",text:"\u8bbe\u8ba1\u6e05\u5355"},{pagePath:"pages/orders/index",text:"\u8ba2\u5355"},{pagePath:"pages/profile/index",text:"\u6211\u7684"}]}};r.window.__taroAppConfig=y;App((0,l.ND)(v,f,b.Ay,y));(0,a.initPxTransform)({designWidth:750,deviceRatio:{640:1.17,750:1,828:.905},baseFontSize:20,unitPrecision:void 0,targetUnit:void 0})},735:function(e,n){"use strict";n.DefaultEventPriority=16},2935:function(e,n,t){e.exports=function(e){var n={},r=t(6540),l=t(8585),a=Object.assign;function u(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;ti||l[u]!==a[i]){var o="\n"+l[u].replace(" at new "," at ");return e.displayName&&o.includes("")&&(o=o.replace("",e.displayName)),o}}while(1<=u&&0<=i);break}}}finally{nn=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?en(e):""}var rn=Object.prototype.hasOwnProperty,ln=[],an=-1;function un(e){return{current:e}}function on(e){0>an||(e.current=ln[an],ln[an]=null,an--)}function sn(e,n){an++,ln[an]=e.current,e.current=n}var cn={},fn=un(cn),dn=un(!1),pn=cn;function hn(e,n){var t=e.type.contextTypes;if(!t)return cn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function mn(e){return e=e.childContextTypes,null!==e&&void 0!==e}function gn(){on(dn),on(fn)}function vn(e,n,t){if(fn.current!==cn)throw Error(u(168));sn(fn,n),sn(dn,t)}function bn(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext(),r)if(!(l in n))throw Error(u(108,z(e)||"Unknown",l));return a({},t,r)}function yn(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cn,pn=fn.current,sn(fn,e),sn(dn,dn.current),!0}function Sn(e,n,t){var r=e.stateNode;if(!r)throw Error(u(169));t?(e=bn(e,n,pn),r.__reactInternalMemoizedMergedChildContext=e,on(dn),on(fn),sn(fn,e)):on(dn),sn(dn,t)}var kn=Math.clz32?Math.clz32:zn,xn=Math.log,wn=Math.LN2;function zn(e){return e>>>=0,0===e?32:31-(xn(e)/wn|0)|0}var Nn=64,En=4194304;function Pn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Cn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,u=268435455&t;if(0!==u){var i=u&~l;0!==i?r=Pn(i):(a&=u,0!==a&&(r=Pn(a)))}else u=t&~l,0!==u?r=Pn(u):0!==a&&(r=Pn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&(l=r&-r,a=n&-n,l>=a||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),n=e.entangledLanes,0!==n)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Rn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-kn(n),e[n]=t}function Fn(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0>=u,l-=u,jt=1<<32-kn(n)+l|t<d?(p=f,f=null):p=f.sibling;var h=g(l,f,i[d],o);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&n(l,f),u=a(h,u,d),null===c?s=h:c.sibling=h,c=h,f=p}if(d===i.length)return t(l,f),Jt&&Ot(l,d),s;if(null===f){for(;dp?(h=d,d=null):h=d.sibling;var y=g(l,d,b.value,s);if(null===y){null===d&&(d=h);break}e&&d&&null===y.alternate&&n(l,d),i=a(y,i,p),null===f?c=y:f.sibling=y,f=y,d=h}if(b.done)return t(l,d),Jt&&Ot(l,p),c;if(null===d){for(;!b.done;p++,b=o.next())b=m(l,b.value,s),null!==b&&(i=a(b,i,p),null===f?c=b:f.sibling=b,f=b);return Jt&&Ot(l,p),c}for(d=r(l,d);!b.done;p++,b=o.next())b=v(d,l,p,b.value,s),null!==b&&(e&&null!==b.alternate&&d.delete(null===b.key?p:b.key),i=a(b,i,p),null===f?c=b:f.sibling=b,f=b);return e&&d.forEach(function(e){return n(l,e)}),Jt&&Ot(l,p),c}function k(e,r,a,u){if("object"===typeof a&&null!==a&&a.type===c&&null===a.key&&(a=a.props.children),"object"===typeof a&&null!==a){switch(a.$$typeof){case o:e:{for(var f=a.key,d=r;null!==d;){if(d.key===f){if(f=a.type,f===c){if(7===d.tag){t(e,d.sibling),r=l(d,a.props.children),r.return=e,e=r;break e}}else if(d.elementType===f||"object"===typeof f&&null!==f&&f.$$typeof===y&&sr(f)===d.type){t(e,d.sibling),r=l(d,a.props),r.ref=ir(e,d,a),r.return=e,e=r;break e}t(e,d);break}n(e,d),d=d.sibling}a.type===c?(r=pi(a.props.children,e.mode,u,a.key),r.return=e,e=r):(u=di(a.type,a.key,a.props,null,e.mode,u),u.ref=ir(e,r,a),u.return=e,e=u)}return i(e);case s:e:{for(d=a.key;null!==r;){if(r.key===d){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){t(e,r.sibling),r=l(r,a.children||[]),r.return=e,e=r;break e}t(e,r);break}n(e,r),r=r.sibling}r=gi(a,e.mode,u),r.return=e,e=r}return i(e);case y:return d=a._init,k(e,r,d(a._payload),u)}if(T(a))return b(e,r,a,u);if(x(a))return S(e,r,a,u);or(e,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==r&&6===r.tag?(t(e,r.sibling),r=l(r,a),r.return=e,e=r):(t(e,r),r=mi(a,e.mode,u),r.return=e,e=r),i(e)):t(e,r)}return k}var fr=cr(!0),dr=cr(!1),pr={},hr=un(pr),mr=un(pr),gr=un(pr);function vr(e){if(e===pr)throw Error(u(174));return e}function br(e,n){sn(gr,n),sn(mr,e),sn(hr,pr),e=F(n),on(hr),sn(hr,e)}function yr(){on(hr),on(mr),on(gr)}function Sr(e){var n=vr(gr.current),t=vr(hr.current);n=U(t,e.type,n),t!==n&&(sn(mr,e),sn(hr,n))}function kr(e){mr.current===e&&(on(hr),on(mr))}var xr=un(0);function wr(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(t=t.dehydrated,null===t||Me(t)||De(t)))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var zr=[];function Nr(){for(var e=0;et?t:4,e(!0);var r=Pr.transition;Pr.transition={};try{e(!1),n()}finally{Mn=t,Pr.transition=r}}function dl(){return Wr().memoizedState}function pl(e,n,t){var r=Lu(e);t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},ml(e)?gl(n,t):(vl(e,n,t),t=_u(),e=Iu(e,r,t),null!==e&&bl(e,n,r))}function hl(e,n,t){var r=Lu(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(ml(e))gl(n,l);else{vl(e,n,l);var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&(a=n.lastRenderedReducer,null!==a))try{var u=n.lastRenderedState,i=a(u,t);if(l.hasEagerState=!0,l.eagerState=i,Kn(i,u))return}catch(e){}t=_u(),e=Iu(e,r,t),null!==e&&bl(e,n,r)}}function ml(e){var n=e.alternate;return e===_r||null!==n&&n===_r}function gl(e,n){Rr=Tr=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function vl(e,n,t){null!==ru&&0!==(1&e.mode)&&0===(2&tu)?(e=n.interleaved,null===e?(t.next=t,null===bt?bt=[n]:bt.push(n)):(t.next=e.next,e.next=t),n.interleaved=t):(e=n.pending,null===e?t.next=t:(t.next=e.next,e.next=t),n.pending=t)}function bl(e,n,t){if(0!==(4194240&t)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Un(e,t)}}var yl={readContext:vt,useCallback:Mr,useContext:Mr,useEffect:Mr,useImperativeHandle:Mr,useInsertionEffect:Mr,useLayoutEffect:Mr,useMemo:Mr,useReducer:Mr,useRef:Mr,useState:Mr,useDebugValue:Mr,useDeferredValue:Mr,useTransition:Mr,useMutableSource:Mr,useSyncExternalStore:Mr,useId:Mr,unstable_isNewReconciler:!1},Sl={readContext:vt,useCallback:function(e,n){return Br().memoizedState=[e,void 0===n?null:n],e},useContext:vt,useEffect:tl,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,el(4194308,4,ul.bind(null,n,e),t)},useLayoutEffect:function(e,n){return el(4194308,4,e,n)},useInsertionEffect:function(e,n){return el(4,2,e,n)},useMemo:function(e,n){var t=Br();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=Br();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=pl.bind(null,_r,e),[r.memoizedState,e]},useRef:function(e){var n=Br();return e={current:e},n.memoizedState=e},useState:Kr,useDebugValue:ol,useDeferredValue:function(e){var n=Kr(e),t=n[0],r=n[1];return tl(function(){var n=Pr.transition;Pr.transition={};try{r(e)}finally{Pr.transition=n}},[e]),t},useTransition:function(){var e=Kr(!1),n=e[0];return e=fl.bind(null,e[1]),Br().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=_r,l=Br();if(Jt){if(void 0===t)throw Error(u(407));t=t()}else{if(t=n(),null===ru)throw Error(u(349));0!==(30&Cr)||qr(r,n,t)}l.memoizedState=t;var a={value:t,getSnapshot:n};return l.queue=a,tl(Yr.bind(null,r,a,e),[e]),r.flags|=2048,Xr(9,Gr.bind(null,r,a,t,n),void 0,null),t},useId:function(){var e=Br(),n=ru.identifierPrefix;if(Jt){var t=At,r=jt;t=(r&~(1<<32-kn(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Fr++,0gu&&(n.flags|=128,r=!0,Ql(l,!1),n.lanes=4194304)}else{if(!r)if(e=wr(a),null!==e){if(n.flags|=128,r=!0,e=e.updateQueue,null!==e&&(n.updateQueue=e,n.flags|=4),Ql(l,!0),null===l.tail&&"hidden"===l.tailMode&&!a.alternate&&!Jt)return Hl(n),null}else 2*jn()-l.renderingStartTime>gu&&1073741824!==t&&(n.flags|=128,r=!0,Ql(l,!1),n.lanes=4194304);l.isBackwards?(a.sibling=n.child,n.child=a):(e=l.last,null!==e?e.sibling=a:n.child=a,l.last=a)}return null!==l.tail?(n=l.tail,l.rendering=n,l.tail=n.sibling,l.renderingStartTime=jn(),n.sibling=null,e=xr.current,sn(xr,r?1&e|2:1&e),n):(Hl(n),null);case 22:case 23:return Wu(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&uu)&&(Hl(n),G&&6&n.subtreeFlags&&(n.flags|=8192)):Hl(n),null;case 24:return null;case 25:return null}throw Error(u(156,n.tag))}var Wl=i.ReactCurrentOwner,jl=!1;function Al(e,n,t,r){n.child=null===e?dr(n,null,t,r):fr(n,e.child,t,r)}function Ol(e,n,t,r,l){t=t.render;var a=n.ref;return gt(n,l),r=Qr(e,n,t,r,a,l),t=Hr(),null===e||jl?(Jt&&t&&Vt(n),n.flags|=1,Al(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ca(e,n,l))}function $l(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||si(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?(e=di(t.type,null,r,n,n.mode,l),e.ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Vl(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var u=a.memoizedProps;if(t=t.compare,t=null!==t?t:at,t(u,r)&&e.ref===n.ref)return ca(e,n,l)}return n.flags|=1,e=fi(a,r),e.ref=n.ref,e.return=n,n.child=e}function Vl(e,n,t,r,l){if(null!==e&&at(e.memoizedProps,r)&&e.ref===n.ref){if(jl=!1,0===(e.lanes&l))return n.lanes=e.lanes,ca(e,n,l);0!==(131072&e.flags)&&(jl=!0)}return Yl(e,n,t,r,l)}function ql(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null},sn(iu,uu),uu|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null},n.updateQueue=null,sn(iu,uu),uu|=e,null;n.memoizedState={baseLanes:0,cachePool:null},r=null!==a?a.baseLanes:t,sn(iu,uu),uu|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,sn(iu,uu),uu|=r;return Al(e,n,l,t),n.child}function Gl(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function Yl(e,n,t,r,l){var a=mn(t)?pn:fn.current;return a=hn(n,a),gt(n,l),t=Qr(e,n,t,r,a,l),r=Hr(),null===e||jl?(Jt&&r&&Vt(n),n.flags|=1,Al(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ca(e,n,l))}function Jl(e,n,t,r,l){if(mn(t)){var a=!0;yn(n)}else a=!1;if(gt(n,l),null===n.stateNode)null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2),Tt(n,t,r),Ft(n,t,r,l),r=!0;else if(null===e){var u=n.stateNode,i=n.memoizedProps;u.props=i;var o=u.context,s=t.contextType;"object"===typeof s&&null!==s?s=vt(s):(s=mn(t)?pn:fn.current,s=hn(n,s));var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof u.getSnapshotBeforeUpdate;f||"function"!==typeof u.UNSAFE_componentWillReceiveProps&&"function"!==typeof u.componentWillReceiveProps||(i!==r||o!==s)&&Rt(n,u,r,s),yt=!1;var d=n.memoizedState;u.state=d,Et(n,r,u,l),o=n.memoizedState,i!==r||d!==o||dn.current||yt?("function"===typeof c&&(_t(n,t,c,r),o=n.memoizedState),(i=yt||It(n,t,i,r,d,o,s))?(f||"function"!==typeof u.UNSAFE_componentWillMount&&"function"!==typeof u.componentWillMount||("function"===typeof u.componentWillMount&&u.componentWillMount(),"function"===typeof u.UNSAFE_componentWillMount&&u.UNSAFE_componentWillMount()),"function"===typeof u.componentDidMount&&(n.flags|=4194308)):("function"===typeof u.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=o),u.props=r,u.state=o,u.context=s,r=i):("function"===typeof u.componentDidMount&&(n.flags|=4194308),r=!1)}else{u=n.stateNode,kt(e,n),i=n.memoizedProps,s=n.type===n.elementType?i:it(n.type,i),u.props=s,f=n.pendingProps,d=u.context,o=t.contextType,"object"===typeof o&&null!==o?o=vt(o):(o=mn(t)?pn:fn.current,o=hn(n,o));var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof u.getSnapshotBeforeUpdate)||"function"!==typeof u.UNSAFE_componentWillReceiveProps&&"function"!==typeof u.componentWillReceiveProps||(i!==f||d!==o)&&Rt(n,u,r,o),yt=!1,d=n.memoizedState,u.state=d,Et(n,r,u,l);var h=n.memoizedState;i!==f||d!==h||dn.current||yt?("function"===typeof p&&(_t(n,t,p,r),h=n.memoizedState),(s=yt||It(n,t,s,r,d,h,o)||!1)?(c||"function"!==typeof u.UNSAFE_componentWillUpdate&&"function"!==typeof u.componentWillUpdate||("function"===typeof u.componentWillUpdate&&u.componentWillUpdate(r,h,o),"function"===typeof u.UNSAFE_componentWillUpdate&&u.UNSAFE_componentWillUpdate(r,h,o)),"function"===typeof u.componentDidUpdate&&(n.flags|=4),"function"===typeof u.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof u.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof u.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=h),u.props=r,u.state=h,u.context=o,r=s):("function"!==typeof u.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof u.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return Kl(e,n,t,r,a,l)}function Kl(e,n,t,r,l,a){Gl(e,n);var u=0!==(128&n.flags);if(!r&&!u)return l&&Sn(n,t,!1),ca(e,n,a);r=n.stateNode,Wl.current=n;var i=u&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&u?(n.child=fr(n,e.child,null,a),n.child=fr(n,null,i,a)):Al(e,n,i,a),n.memoizedState=r.state,l&&Sn(n,t,!0),n.child}function Xl(e){var n=e.stateNode;n.pendingContext?vn(e,n.pendingContext,n.pendingContext!==n.context):n.context&&vn(e,n.context,!1),br(e,n.containerInfo)}function Zl(e,n,t,r,l){return ar(),ur(l),n.flags|=256,Al(e,n,t,r),n.child}var ea={dehydrated:null,treeContext:null,retryLane:0};function na(e){return{baseLanes:e,cachePool:null}}function ta(e,n,t){var r,l=n.pendingProps,a=xr.current,i=!1,o=0!==(128&n.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(i=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),sn(xr,1&a),null===e)return tr(n),e=n.memoizedState,null!==e&&(e=e.dehydrated,null!==e)?(0===(1&n.mode)?n.lanes=1:De(e)?n.lanes=8:n.lanes=1073741824,null):(a=l.children,e=l.fallback,i?(l=n.mode,i=n.child,a={mode:"hidden",children:a},0===(1&l)&&null!==i?(i.childLanes=0,i.pendingProps=a):i=hi(a,l,0,null),e=pi(e,l,t,null),i.return=n,e.return=n,i.sibling=e,n.child=i,n.child.memoizedState=na(t),n.memoizedState=ea,e):ra(n,a));if(a=e.memoizedState,null!==a){if(r=a.dehydrated,null!==r){if(o)return 256&n.flags?(n.flags&=-257,ua(e,n,t,Error(u(422)))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(i=l.fallback,a=n.mode,l=hi({mode:"visible",children:l.children},a,0,null),i=pi(i,a,t,null),i.flags|=2,l.return=n,i.return=n,l.sibling=i,n.child=l,0!==(1&n.mode)&&fr(n,e.child,null,t),n.child.memoizedState=na(t),n.memoizedState=ea,i);if(0===(1&n.mode))n=ua(e,n,t,null);else if(De(r))n=ua(e,n,t,Error(u(419)));else if(l=0!==(t&e.childLanes),jl||l){if(l=ru,null!==l){switch(t&-t){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}l=0!==(i&(l.suspendedLanes|t))?0:i,0!==l&&l!==a.retryLane&&(a.retryLane=l,Iu(e,l,-1))}$u(),n=ua(e,n,t,Error(u(421)))}else Me(r)?(n.flags|=128,n.child=e.child,n=li.bind(null,e),Qe(r,n),n=null):(t=a.treeContext,J&&(Yt=je(r),Gt=n,Jt=!0,Xt=null,Kt=!1,null!==t&&(Ht[Bt++]=jt,Ht[Bt++]=At,Ht[Bt++]=Wt,jt=t.id,At=t.overflow,Wt=n)),n=ra(n,n.pendingProps.children),n.flags|=4096);return n}return i?(l=aa(e,n,l.children,l.fallback,t),i=n.child,a=e.child.memoizedState,i.memoizedState=null===a?na(t):{baseLanes:a.baseLanes|t,cachePool:null},i.childLanes=e.childLanes&~t,n.memoizedState=ea,l):(t=la(e,n,l.children,t),n.memoizedState=null,t)}return i?(l=aa(e,n,l.children,l.fallback,t),i=n.child,a=e.child.memoizedState,i.memoizedState=null===a?na(t):{baseLanes:a.baseLanes|t,cachePool:null},i.childLanes=e.childLanes&~t,n.memoizedState=ea,l):(t=la(e,n,l.children,t),n.memoizedState=null,t)}function ra(e,n){return n=hi({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function la(e,n,t,r){var l=e.child;return e=l.sibling,t=fi(l,{mode:"visible",children:t}),0===(1&n.mode)&&(t.lanes=r),t.return=n,t.sibling=null,null!==e&&(r=n.deletions,null===r?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t}function aa(e,n,t,r,l){var a=n.mode;e=e.child;var u=e.sibling,i={mode:"hidden",children:t};return 0===(1&a)&&n.child!==e?(t=n.child,t.childLanes=0,t.pendingProps=i,n.deletions=null):(t=fi(e,i),t.subtreeFlags=14680064&e.subtreeFlags),null!==u?r=fi(u,r):(r=pi(r,a,l,null),r.flags|=2),r.return=n,t.return=n,t.sibling=r,n.child=t,r}function ua(e,n,t,r){return null!==r&&ur(r),fr(n,e.child,null,t),e=ra(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function ia(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),mt(e.return,n,t)}function oa(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function sa(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(Al(e,n,r.children,t),r=xr.current,0!==(2&r))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ia(e,t,n);else if(19===e.tag)ia(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(sn(xr,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)e=t.alternate,null!==e&&null===wr(e)&&(l=t),t=t.sibling;t=l,null===t?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),oa(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(e=l.alternate,null!==e&&null===wr(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}oa(n,!0,t,null,a);break;case"together":oa(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ca(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),cu|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(u(153));if(null!==n.child){for(e=n.child,t=fi(e,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,t=t.sibling=fi(e,e.pendingProps),t.return=n;t.sibling=null}return n.child}function fa(e,n,t){switch(n.tag){case 3:Xl(n),ar();break;case 5:Sr(n);break;case 1:mn(n.type)&&yn(n);break;case 4:br(n,n.stateNode.containerInfo);break;case 10:pt(n,n.type._context,n.memoizedProps.value);break;case 13:var r=n.memoizedState;if(null!==r)return null!==r.dehydrated?(sn(xr,1&xr.current),n.flags|=128,null):0!==(t&n.child.childLanes)?ta(e,n,t):(sn(xr,1&xr.current),e=ca(e,n,t),null!==e?e.sibling:null);sn(xr,1&xr.current);break;case 19:if(r=0!==(t&n.childLanes),0!==(128&e.flags)){if(r)return sa(e,n,t);n.flags|=128}var l=n.memoizedState;if(null!==l&&(l.rendering=null,l.tail=null,l.lastEffect=null),sn(xr,xr.current),r)break;return null;case 22:case 23:return n.lanes=0,ql(e,n,t)}return ca(e,n,t)}function da(e,n){switch(qt(n),n.tag){case 1:return mn(n.type)&&gn(),e=n.flags,65536&e?(n.flags=-65537&e|128,n):null;case 3:return yr(),on(dn),on(fn),Nr(),e=n.flags,0!==(65536&e)&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return kr(n),null;case 13:if(on(xr),e=n.memoizedState,null!==e&&null!==e.dehydrated){if(null===n.alternate)throw Error(u(340));ar()}return e=n.flags,65536&e?(n.flags=-65537&e|128,n):null;case 19:return on(xr),null;case 4:return yr(),null;case 10:return ht(n.type._context),null;case 22:case 23:return Wu(),null;case 24:return null;default:return null}}var pa=!1,ha=!1,ma="function"===typeof WeakSet?WeakSet:Set,ga=null;function va(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(t){ni(e,n,t)}else t.current=null}function ba(e,n,t){try{t()}catch(t){ni(e,n,t)}}var ya=!1;function Sa(e,n){for(M(e.containerInfo),ga=n;null!==ga;)if(e=ga,n=e.child,0!==(1028&e.subtreeFlags)&&null!==n)n.return=e,ga=n;else for(;null!==ga;){e=ga;try{var t=e.alternate;if(0!==(1024&e.flags))switch(e.tag){case 0:case 11:case 15:break;case 1:if(null!==t){var r=t.memoizedProps,l=t.memoizedState,a=e.stateNode,i=a.getSnapshotBeforeUpdate(e.elementType===e.type?r:it(e.type,r),l);a.__reactInternalSnapshotBeforeUpdate=i}break;case 3:G&&Ne(e.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(n){ni(e,e.return,n)}if(n=e.sibling,null!==n){n.return=e.return,ga=n;break}ga=e.return}return t=ya,ya=!1,t}function ka(e,n,t){var r=n.updateQueue;if(r=null!==r?r.lastEffect:null,null!==r){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ba(n,t,a)}l=l.next}while(l!==r)}}function xa(e,n){if(n=n.updateQueue,n=null!==n?n.lastEffect:null,null!==n){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function wa(e){var n=e.ref;if(null!==n){var t=e.stateNode;switch(e.tag){case 5:e=R(t);break;default:e=t}"function"===typeof n?n(e):n.current=e}}function za(e,n,t){if(Gn&&"function"===typeof Gn.onCommitFiberUnmount)try{Gn.onCommitFiberUnmount(qn,n)}catch(e){}switch(n.tag){case 0:case 11:case 14:case 15:if(e=n.updateQueue,null!==e&&(e=e.lastEffect,null!==e)){var r=e=e.next;do{var l=r,a=l.destroy;l=l.tag,void 0!==a&&(0!==(2&l)||0!==(4&l))&&ba(n,t,a),r=r.next}while(r!==e)}break;case 1:if(va(n,t),e=n.stateNode,"function"===typeof e.componentWillUnmount)try{e.props=n.memoizedProps,e.state=n.memoizedState,e.componentWillUnmount()}catch(e){ni(n,t,e)}break;case 5:va(n,t);break;case 4:G?Ta(e,n,t):Y&&Y&&(n=n.stateNode.containerInfo,t=Pe(n),Le(n,t))}}function Na(e,n,t){for(var r=n;;)if(za(e,r,t),null===r.child||G&&4===r.tag){if(r===n)break;for(;null===r.sibling;){if(null===r.return||r.return===n)return;r=r.return}r.sibling.return=r.return,r=r.sibling}else r.child.return=r,r=r.child}function Ea(e){var n=e.alternate;null!==n&&(e.alternate=null,Ea(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(n=e.stateNode,null!==n&&ee(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Pa(e){return 5===e.tag||3===e.tag||4===e.tag}function Ca(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Pa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function _a(e){if(G){e:{for(var n=e.return;null!==n;){if(Pa(n))break e;n=n.return}throw Error(u(160))}var t=n;switch(t.tag){case 5:n=t.stateNode,32&t.flags&&(Se(n),t.flags&=-33),t=Ca(e),Ia(e,t,n);break;case 3:case 4:n=t.stateNode.containerInfo,t=Ca(e),La(e,t,n);break;default:throw Error(u(161))}}}function La(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?ve(t,e,n):de(t,e);else if(4!==r&&(e=e.child,null!==e))for(La(e,n,t),e=e.sibling;null!==e;)La(e,n,t),e=e.sibling}function Ia(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?ge(t,e,n):fe(t,e);else if(4!==r&&(e=e.child,null!==e))for(Ia(e,n,t),e=e.sibling;null!==e;)Ia(e,n,t),e=e.sibling}function Ta(e,n,t){for(var r,l,a=n,i=!1;;){if(!i){i=a.return;e:for(;;){if(null===i)throw Error(u(160));switch(r=i.stateNode,i.tag){case 5:l=!1;break e;case 3:r=r.containerInfo,l=!0;break e;case 4:r=r.containerInfo,l=!0;break e}i=i.return}i=!0}if(5===a.tag||6===a.tag)Na(e,a,t),l?ye(r,a.stateNode):be(r,a.stateNode);else if(18===a.tag)l?Je(r,a.stateNode):Ye(r,a.stateNode);else if(4===a.tag){if(null!==a.child){r=a.stateNode.containerInfo,l=!0,a.child.return=a,a=a.child;continue}}else if(za(e,a,t),null!==a.child){a.child.return=a,a=a.child;continue}if(a===n)break;for(;null===a.sibling;){if(null===a.return||a.return===n)return;a=a.return,4===a.tag&&(i=!1)}a.sibling.return=a.return,a=a.sibling}}function Ra(e,n){if(G){switch(n.tag){case 0:case 11:case 14:case 15:return ka(3,n,n.return),xa(3,n),void ka(5,n,n.return);case 1:return;case 5:var t=n.stateNode;if(null!=t){var r=n.memoizedProps;e=null!==e?e.memoizedProps:r;var l=n.type,a=n.updateQueue;n.updateQueue=null,null!==a&&me(t,a,l,e,r,n)}return;case 6:if(null===n.stateNode)throw Error(u(162));return t=n.memoizedProps,void pe(n.stateNode,null!==e?e.memoizedProps:t,t);case 3:return void(J&&null!==e&&e.memoizedState.isDehydrated&&qe(n.stateNode.containerInfo));case 12:return;case 13:return void Fa(n);case 19:return void Fa(n);case 17:return}throw Error(u(163))}switch(n.tag){case 0:case 11:case 14:case 15:return ka(3,n,n.return),xa(3,n),void ka(5,n,n.return);case 12:return;case 13:return void Fa(n);case 19:return void Fa(n);case 3:J&&null!==e&&e.memoizedState.isDehydrated&&qe(n.stateNode.containerInfo);break;case 22:case 23:return}e:if(Y){switch(n.tag){case 1:case 5:case 6:break e;case 3:case 4:n=n.stateNode,Le(n.containerInfo,n.pendingChildren);break e}throw Error(u(163))}}function Fa(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new ma),n.forEach(function(n){var r=ai.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}}function Ua(e,n){for(ga=n;null!==ga;){n=ga;var t=n.deletions;if(null!==t)for(var r=0;r";case ja:return":has("+(Ya(e)||"")+")";case Aa:return'[role="'+e.value+'"]';case $a:return'"'+e.value+'"';case Oa:return'[data-testname="'+e.value+'"]';default:throw Error(u(365))}}function Ja(e,n){var t=[];e=[e,0];for(var r=0;rl&&(l=i),r&=~a}if(r=l,r=jn()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Xa(r/1960))-r,10e?16:e,null===wu)var r=!1;else{if(e=wu,wu=null,zu=0,0!==(6&tu))throw Error(u(331));var l=tu;for(tu|=4,ga=e.current;null!==ga;){var a=ga,i=a.child;if(0!==(16&ga.flags)){var o=a.deletions;if(null!==o){for(var s=0;sjn()-mu?ju(e,0):du|=t),Ru(e,n)}function ri(e,n){0===n&&(0===(1&e.mode)?n=1:(n=En,En<<=1,0===(130023424&En)&&(En=4194304)));var t=_u();e=Tu(e,n),null!==e&&(Rn(e,n,t),Ru(e,t))}function li(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),ri(e,t)}function ai(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(u(314))}null!==r&&r.delete(n),ri(e,t)}function ui(e,n){return Qn(e,n)}function ii(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function oi(e,n,t,r){return new ii(e,n,t,r)}function si(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ci(e){if("function"===typeof e)return si(e)?1:0;if(void 0!==e&&null!==e){if(e=e.$$typeof,e===m)return 11;if(e===b)return 14}return 2}function fi(e,n){var t=e.alternate;return null===t?(t=oi(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function di(e,n,t,r,l,a){var i=2;if(r=e,"function"===typeof e)si(e)&&(i=1);else if("string"===typeof e)i=5;else e:switch(e){case c:return pi(t.children,l,a,n);case f:i=8,l|=8;break;case d:return e=oi(12,t,n,2|l),e.elementType=d,e.lanes=a,e;case g:return e=oi(13,t,n,l),e.elementType=g,e.lanes=a,e;case v:return e=oi(19,t,n,l),e.elementType=v,e.lanes=a,e;case S:return hi(t,l,a,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case p:i=10;break e;case h:i=9;break e;case m:i=11;break e;case b:i=14;break e;case y:i=16,r=null;break e}throw Error(u(130,null==e?e:typeof e,""))}return n=oi(i,t,n,l),n.elementType=e,n.type=r,n.lanes=a,n}function pi(e,n,t,r){return e=oi(7,e,r,n),e.lanes=t,e}function hi(e,n,t,r){return e=oi(22,e,r,n),e.elementType=S,e.lanes=t,e.stateNode={},e}function mi(e,n,t){return e=oi(6,e,null,n),e.lanes=t,e}function gi(e,n,t){return n=oi(4,null!==e.children?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function vi(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=V,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tn(0),this.expirationTimes=Tn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tn(0),this.identifierPrefix=r,this.onRecoverableError=l,J&&(this.mutableSourceEagerHydrationData=null)}function bi(e,n,t,r,l,a,u,i,o){return e=new vi(e,n,t,i,o),1===n?(n=1,!0===a&&(n|=8)):n=0,a=oi(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null},St(a),e}function yi(e){if(!e)return cn;e=e._reactInternals;e:{if(N(e)!==e||1!==e.tag)throw Error(u(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(mn(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(null!==n);throw Error(u(171))}if(1===e.tag){var t=e.type;if(mn(t))return bn(e,t,n)}return n}function Si(e){var n=e._reactInternals;if(void 0===n){if("function"===typeof e.render)throw Error(u(188));throw e=Object.keys(e).join(","),Error(u(268,e))}return e=C(n),null===e?null:e.stateNode}function ki(e,n){if(e=e.memoizedState,null!==e&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t=c&&a>=d&&l<=f&&i<=p){e.splice(n,1);break}if(!(r!==c||t.width!==s.width||pi)){d>a&&(s.height+=d-a,s.y=a),pl)){c>r&&(s.width+=c-r,s.x=r),ft&&(t=i)),i ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},n.getPublicRootInstance=function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return R(e.child.stateNode);default:return e.child.stateNode}},n.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:i.ReactCurrentDispatcher,findHostInstanceByFiber:wi,findFiberByHostInstance:e.findFiberByHostInstance||zi,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},"undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled||!n.supportsFiber)e=!0;else{try{qn=n.inject(e),Gn=n}catch(e){}e=!!n.checkDCE}}return e},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(e,n,t,r){if(!re)throw Error(u(363));e=Ka(e,n);var l=ce(e,t,r).disconnect;return{disconnect:function(){l()}}},n.registerMutableSourceForHydration=function(e,n){var t=n._getVersion;t=t(n._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[n,t]:e.mutableSourceEagerHydrationData.push(n,t)},n.runWithPriority=function(e,n){var t=Mn;try{return Mn=e,n()}finally{Mn=t}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(e,n,t,r){var l=n.current,a=_u(),u=Lu(l);return t=yi(t),null===n.context?n.context=t:n.pendingContext=t,n=xt(a,u),n.payload={element:e},r=void 0===r?null:r,null!==r&&(n.callback=r),wt(l,n),e=Iu(l,u,a),null!==e&&zt(e,l,u),u},n}},772:function(e,n,t){"use strict";e.exports=t(735)},4845:function(e,n,t){"use strict";e.exports=t(2935)},8271:function(e,n,t){"use strict";var r=t(7842)["navigator"];function l(e,n){var t=e.length;e.push(n);e:for(;0>>1,l=e[r];if(!(0>>1;ri(o,t))si(c,o)?(e[r]=c,e[s]=t,r=s):(e[r]=o,e[u]=t,r=u);else{if(!(si(c,t)))break e;e[r]=c,e[s]=t,r=s}}}return n}function i(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;n.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();n.unstable_now=function(){return s.now()-c}}var f=[],d=[],p=1,h=null,m=3,g=!1,v=!1,b=!1,y="function"===typeof setTimeout?setTimeout:null,S="function"===typeof clearTimeout?clearTimeout:null,k="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var n=a(d);null!==n;){if(null===n.callback)u(d);else{if(!(n.startTime<=e))break;u(d),n.sortIndex=n.expirationTime,l(f,n)}n=a(d)}}function w(e){if(b=!1,x(e),!v)if(null!==a(f))v=!0,U(z);else{var n=a(d);null!==n&&M(w,n.startTime-e)}}function z(e,t){v=!1,b&&(b=!1,S(C),C=-1),g=!0;var r=m;try{for(x(t),h=a(f);null!==h&&(!(h.expirationTime>t)||e&&!I());){var l=h.callback;if("function"===typeof l){h.callback=null,m=h.priorityLevel;var i=l(h.expirationTime<=t);t=n.unstable_now(),"function"===typeof i?h.callback=i:h===a(f)&&u(f),x(t)}else u(f);h=a(f)}if(null!==h)var o=!0;else{var s=a(d);null!==s&&M(w,s.startTime-t),o=!1}return o}finally{h=null,m=r,g=!1}}"undefined"!==typeof r&&void 0!==r.scheduling&&void 0!==r.scheduling.isInputPending&&r.scheduling.isInputPending.bind(r.scheduling);var N,E=!1,P=null,C=-1,_=5,L=-1;function I(){return!(n.unstable_now()-L<_)}function T(){if(null!==P){var e=n.unstable_now();L=e;var t=!0;try{t=P(!0,e)}finally{t?N():(E=!1,P=null)}}else E=!1}if("function"===typeof k)N=function(){k(T)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,F=R.port2;R.port1.onmessage=T,N=function(){F.postMessage(null)}}else N=function(){y(T,0)};function U(e){P=e,E||(E=!0,N())}function M(e,t){C=y(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_continueExecution=function(){v||g||(v=!0,U(z))},n.unstable_forceFrameRate=function(e){0>e||125u?(e.sortIndex=r,l(d,e),null===a(f)&&e===a(d)&&(b?(S(C),C=-1):b=!0,M(w,r-u))):(e.sortIndex=i,l(f,e),v||g||(v=!0,U(z))),e},n.unstable_shouldYield=I,n.unstable_wrapCallback=function(e){var n=m;return function(){var t=m;m=n;try{return e.apply(this,arguments)}finally{m=t}}}},8585:function(e,n,t){"use strict";e.exports=t(8271)}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(2951)});e.O()}]); \ No newline at end of file diff --git a/dist/app.js.LICENSE.txt b/dist/app.js.LICENSE.txt new file mode 100644 index 0000000..ba737b0 --- /dev/null +++ b/dist/app.js.LICENSE.txt @@ -0,0 +1,29 @@ +/** + * @license React + * react-reconciler-constants.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/dist/app.json b/dist/app.json new file mode 100644 index 0000000..9a523a9 --- /dev/null +++ b/dist/app.json @@ -0,0 +1 @@ +{"pages":["pages/index/index","pages/shop/index","pages/shop/detail/index","pages/product/index","pages/diy/index","pages/diy/stickerEdit/index","pages/checkout/index","pages/designList/index","pages/orders/index","pages/profile/index","pages/service/index","pages/wordcloud/index","pages/orderDetail/index","pages/address/index","pages/settings/index","pages/agreement/index","pages/userDatabase/index"],"window":{"backgroundTextStyle":"dark","navigationStyle":"custom","navigationBarTextStyle":"black"},"tabBar":{"custom":true,"list":[{"pagePath":"pages/index/index","text":"首页"},{"pagePath":"pages/shop/index","text":"商品"},{"pagePath":"pages/designList/index","text":"设计清单"},{"pagePath":"pages/orders/index","text":"订单"},{"pagePath":"pages/profile/index","text":"我的"}]}} \ No newline at end of file diff --git a/dist/app.wxss b/dist/app.wxss new file mode 100644 index 0000000..406b5d0 --- /dev/null +++ b/dist/app.wxss @@ -0,0 +1 @@ +.theme-light{background-color:var(--bg-page,#fff);-webkit-box-sizing:border-box;box-sizing:border-box;min-height:100vh}.theme-dark{background-color:var(--bg-page,#1e1e2f);-webkit-box-sizing:border-box;box-sizing:border-box;min-height:100vh}.theme-light{--bg-page:#fff;--line-card:3rpx dashed #ffb7c5;--line-star:#ffb7c5;--text-primary:#5c3a3a;--text-secondary:#b08d8d;--text-muted:#d28a8a;--accent-pink:#ff9a9e;--accent-blue:#5b8cff;--btn-gradient:linear-gradient(135deg,#ff9a9e,#fecfef 99%);--shadow-card:0 8rpx 24rpx rgba(255,154,158,.12);--bg-input:#f8f9fa;--bg-card:#fff}.theme-dark{--bg-page:#1e1e2f;--line-card:3rpx dashed #5b8cff;--line-star:#5b8cff;--text-primary:#e0e0f0;--text-secondary:#a0a0c0;--text-muted:#7070a0;--accent-pink:#ff7eb3;--accent-blue:#5cadff;--btn-gradient:linear-gradient(135deg,#ff7eb3,#7a5cff);--shadow-card:0 8rpx 24rpx rgba(0,0,0,.3);--bg-input:#252540;--bg-card:#2a2a40}page{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,Segoe UI,sans-serif}.dashed-card{background:var(--bg-card);border:var(--line-card);border-radius:24rpx;-webkit-box-shadow:var(--shadow-card);box-shadow:var(--shadow-card);overflow:hidden;padding:32rpx;position:relative}.star-badge{height:48rpx;left:-10rpx;position:absolute;top:-10rpx;width:48rpx;z-index:2}.star-badge::before{background:var(--bg-card);border:2rpx dashed var(--line-star);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);content:"";height:32rpx;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:32rpx}.container{padding:24rpx}.flex{display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-center{-ms-flex-align:center;-ms-flex-pack:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.flex-between{-ms-flex-align:center;-ms-flex-pack:justify;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;justify-content:space-between}.flex-column{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.text-center{text-align:center}.mt-10{margin-top:10rpx}.mt-20{margin-top:20rpx}.mb-10{margin-bottom:10rpx}.mb-20{margin-bottom:20rpx}.btn-gradient{background:var(--btn-gradient);border:none;border-radius:50rpx;-webkit-box-shadow:0 8rpx 24rpx rgba(255,154,158,.25);box-shadow:0 8rpx 24rpx rgba(255,154,158,.25);color:var(--text-primary);font-size:32rpx;font-weight:600;padding:24rpx 48rpx;text-align:center}.theme-dark .btn-gradient{-webkit-box-shadow:0 8rpx 24rpx rgba(122,92,255,.3);box-shadow:0 8rpx 24rpx rgba(122,92,255,.3);color:#fff}.btn-gradient:active{opacity:.9;-webkit-transform:scale(.98);-ms-transform:scale(.98);transform:scale(.98)}.btn-outline{background:var(--bg-card);border:var(--line-card);border-radius:50rpx;color:var(--accent-blue);font-size:28rpx;font-weight:500;padding:20rpx 48rpx;text-align:center}.action-bar{-ms-flex-align:center;-ms-flex-pack:justify;-webkit-align-items:center;align-items:center;background:var(--bg-card);border-top:var(--line-card);bottom:0;-webkit-box-shadow:0 -8rpx 24rpx rgba(0,0,0,.08);box-shadow:0 -8rpx 24rpx rgba(0,0,0,.08);display:-webkit-flex;display:-ms-flexbox;display:flex;gap:24rpx;-webkit-justify-content:space-between;justify-content:space-between;left:0;padding:20rpx 32rpx calc(20rpx + env(safe-area-inset-bottom));position:fixed;right:0;z-index:500}.page-title{color:var(--text-primary);display:block;font-size:40rpx;font-weight:800}.section-title{color:var(--text-primary);display:block;font-size:36rpx;font-weight:700;margin-bottom:24rpx}.badge{border-radius:50rpx;display:inline-block;font-size:22rpx;font-weight:500;padding:8rpx 20rpx}.badge-pink{background:rgba(255,154,158,.15);color:var(--accent-pink)}.badge-blue{background:rgba(160,196,255,.15);color:var(--accent-blue)}.badge-green{background:rgba(139,211,161,.15);color:#2ecc71}.badge-gray{background:hsla(0,0%,50%,.15);color:var(--text-secondary)}.safe-bottom{height:constant(safe-area-inset-bottom);height:env(safe-area-inset-bottom)}.safe-bottom-placeholder{height:160rpx}.page-header{padding-top:calc(env(safe-area-inset-top, 20rpx) + 48rpx)}.back-btn,.edit-back{display:inline-block}.modal-overlay{-ms-flex-align:end;-ms-flex-pack:center;-webkit-align-items:flex-end;align-items:flex-end;background:rgba(0,0,0,.5);bottom:0;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:600}.addr-picker-sheet{background:var(--bg-card);border-radius:24rpx 24rpx 0 0;border-top:var(--line-card);-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:70vh;padding:24rpx 24rpx calc(24rpx + env(safe-area-inset-bottom));width:100%} \ No newline at end of file diff --git a/dist/base.wxml b/dist/base.wxml new file mode 100644 index 0000000..19dcfc8 --- /dev/null +++ b/dist/base.wxml @@ -0,0 +1,827 @@ + +