diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2ccbe46
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/node_modules/
diff --git a/PROJECT_GUIDE.md b/PROJECT_GUIDE.md
new file mode 100644
index 0000000..7e16097
--- /dev/null
+++ b/PROJECT_GUIDE.md
@@ -0,0 +1,95 @@
+# 值班助手小程序 - 使用说明
+
+## 项目介绍
+值班助手是一个基于微信小程序的值班管理应用,使用 TDesign 组件库构建。
+
+## 技术栈
+- 微信小程序原生框架
+- TDesign 微信小程序组件库
+
+## 安装步骤
+
+### 1. 安装依赖
+```bash
+npm install
+```
+
+### 2. 在微信开发者工具中配置
+1. 打开微信开发者工具
+2. 导入项目(选择本项目目录)
+3. 在工具栏点击 `工具` -> `构建 npm`
+4. 构建成功后,勾选 `将 JS 编译成 ES5`
+
+### 3. 添加底部导航图标
+需要在 `images` 目录下添加以下图标文件(PNG格式):
+- `home.png` - 首页图标(未选中)
+- `home-active.png` - 首页图标(选中)
+- `mine.png` - 我的图标(未选中)
+- `mine-active.png` - 我的图标(选中)
+
+### 4. 添加默认头像
+在 `images` 目录下添加 `default-avatar.png` 作为默认头像图片
+
+## 项目结构
+
+```
+attendant-wechat/
+├── app.js # 小程序主入口
+├── app.json # 小程序全局配置
+├── app.wxss # 小程序全局样式
+├── sitemap.json # 站点地图配置
+├── package.json # 项目依赖配置
+├── project.config.json # 项目配置文件
+├── pages/ # 页面目录
+│ ├── index/ # 首页
+│ │ ├── index.wxml # 页面结构
+│ │ ├── index.wxss # 页面样式
+│ │ ├── index.js # 页面逻辑
+│ │ └── index.json # 页面配置
+│ └── mine/ # 我的页面
+│ ├── mine.wxml # 页面结构
+│ ├── mine.wxss # 页面样式
+│ ├── mine.js # 页面逻辑
+│ └── mine.json # 页面配置
+└── images/ # 图片资源目录
+ ├── home.png # 首页图标
+ ├── home-active.png # 首页图标(选中)
+ ├── mine.png # 我的图标
+ ├── mine-active.png # 我的图标(选中)
+ └── default-avatar.png # 默认头像
+```
+
+## 页面说明
+
+### 首页 (pages/index)
+- 欢迎卡片:显示应用名称和欢迎语
+- 快捷功能:今日值班、值班表、值班记录
+- 统计信息:显示值班相关统计数据
+
+### 我的 (pages/mine)
+- 用户信息卡片:显示用户头像和昵称
+- 功能菜单:个人信息、我的值班、值班统计、设置、帮助与反馈、关于
+- 退出登录:退出当前账号
+
+## 使用的 TDesign 组件
+- `t-button`: 按钮组件
+- `t-cell`: 单元格组件
+- `t-cell-group`: 单元格组组件
+- `t-icon`: 图标组件
+- `t-avatar`: 头像组件
+- `t-card`: 卡片组件
+- `t-divider`: 分割线组件
+- `t-badge`: 徽标组件
+
+## 注意事项
+1. 确保微信开发者工具的基础库版本 >= 2.12.0
+2. 安装依赖后必须执行"构建 npm"操作
+3. 建议在真机上测试,部分功能可能与模拟器有差异
+4. 图标文件尺寸建议:未选中状态 81x81px,选中状态 81x81px
+
+## 下一步开发建议
+1. 实现用户登录功能
+2. 对接后端 API,获取真实的值班数据
+3. 添加数据缓存机制,提升用户体验
+4. 实现消息通知功能
+5. 添加数据导出功能
diff --git a/README.md b/README.md
index 0e83b18..98314ae 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
-# wxapp_escort
+# attendant
diff --git a/app.js b/app.js
new file mode 100644
index 0000000..7da5041
--- /dev/null
+++ b/app.js
@@ -0,0 +1,80 @@
+const AIChatSocket = require('./utils/chatmsg.js')
+const API = require('./utils/api.js')
+
+App({
+ onLaunch() {
+ let appId = wx.getStorageSync('attendant-appid')
+ if (!appId) {
+ appId = 'app_' + Date.now().toString(36) + Math.random().toString(36).substr(2, 9)
+ wx.setStorageSync('attendant-appid', appId)
+ }
+ this.globalData.appId = appId
+
+ const request = require('./utils/request.js')
+ this.globalData.servicesReady = new Promise((resolve) => {
+ API.resource.getServices().then((data) => {
+ this.globalData.services = data.data.services
+ resolve(data.data.services)
+ }).catch((err) => {
+ console.error('获取服务列表失败', err)
+ resolve([])
+ })
+ })
+ },
+
+ onShow(options) {
+ const request = require('./utils/request.js')
+ wx.login({
+ success: res => {
+ if (res.code) {
+ request.post('/user/wxsignin', { code: res.code })
+ .then((data) => {
+ if (data.code == 0) {
+ this.globalData.user = data.data.user
+ } else {
+ console.log('error:', data)
+ }
+ })
+ .catch((err) => {
+ console.log('请求失败', err)
+ })
+ } else {
+ console.log('登录失败!' + res.errMsg)
+ }
+ }
+ })
+
+ this.initChatSocket()
+ },
+
+ initChatSocket() {
+ if (this.globalData.chatSocket) return
+
+ const socket = new AIChatSocket()
+
+ socket.onOpen(() => {
+ console.log('[App] Chat WebSocket connected')
+ })
+
+ socket.onClose((res) => {
+ console.log('[App] Chat WebSocket closed', res)
+ })
+
+ socket.onError((err) => {
+ console.error('[App] Chat WebSocket error', err)
+ })
+
+ socket.connect().catch((err) => {
+ console.error('[App] Chat WebSocket connect failed', err)
+ })
+
+ this.globalData.chatSocket = socket
+ },
+
+ globalData: {
+ appId: '',
+ user: null,
+ chatSocket: null,
+ services: [],
+ }
+})
\ No newline at end of file
diff --git a/app.json b/app.json
new file mode 100644
index 0000000..cda69ff
--- /dev/null
+++ b/app.json
@@ -0,0 +1,46 @@
+{
+ "pages": [
+ "pages/index/index",
+ "pages/mine/mine",
+ "pages/itemdetail/itemdetail",
+ "pages/healthrecord/main/healthrecord",
+ "pages/ai/aichat/aichat",
+ "pages/escort_record_list/escort_record_list"
+ ],
+ "window": {
+ "backgroundTextStyle": "light",
+ "navigationBarBackgroundColor": "#FFFFFF",
+ "navigationBarTitleText": "陪诊助手",
+ "navigationBarTextStyle": "black"
+ },
+ "tabBar": {
+ "color": "#999999",
+ "selectedColor": "#FF9B33",
+ "backgroundColor": "#FFFFFF",
+ "borderStyle": "black",
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "text": "首页",
+ "iconPath": "images/home.png",
+ "selectedIconPath": "images/home-active2.png"
+ },
+ {
+ "pagePath": "pages/ai/aichat/aichat",
+ "text": "AI客服",
+ "iconPath": "images/ai.png",
+ "selectedIconPath": "images/ai-active.png"
+ },
+ {
+ "pagePath": "pages/mine/mine",
+ "text": "我的",
+ "iconPath": "images/mine.png",
+ "selectedIconPath": "images/mine-active2.png"
+ }
+ ]
+ },
+ "usingComponents": {},
+ "style": "v2",
+ "sitemapLocation": "sitemap.json",
+ "lazyCodeLoading": "requiredComponents"
+}
\ No newline at end of file
diff --git a/app.wxss b/app.wxss
new file mode 100644
index 0000000..03d9ce4
--- /dev/null
+++ b/app.wxss
@@ -0,0 +1,26 @@
+/**app.wxss**/
+
+page {
+ --td-brand-color-1: #fff8f0;
+ --td-brand-color-2: #ffe8d4;
+ --td-brand-color-3: #ffd4a8;
+ --td-brand-color-4: #ffbb72;
+ --td-brand-color-5: #ff9b33;
+ --td-brand-color-6: #ff8500;
+ --td-brand-color-7: #FF9B33;
+ --td-brand-color-8: #e68600;
+ --td-brand-color-9: #cc6e00;
+ --td-brand-color-10: #a35700;
+ --td-brand-color: var(--td-brand-color-7);
+ --td-brand-color-active: var(--td-brand-color-8);
+ --td-brand-color-disabled: var(--td-brand-color-3);
+ --td-brand-color-light: var(--td-brand-color-1);
+ --td-brand-color-light-active: var(--td-brand-color-2);
+ background-color: #FAF6F1;
+ font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
+}
+
+.container {
+ min-height: 100vh;
+ box-sizing: border-box;
+}
diff --git a/images/ai-active.png b/images/ai-active.png
new file mode 100644
index 0000000..faa306b
Binary files /dev/null and b/images/ai-active.png differ
diff --git a/images/ai-w.png b/images/ai-w.png
new file mode 100644
index 0000000..f765da2
Binary files /dev/null and b/images/ai-w.png differ
diff --git a/images/ai.png b/images/ai.png
new file mode 100644
index 0000000..5fdad20
Binary files /dev/null and b/images/ai.png differ
diff --git a/images/background.jpg b/images/background.jpg
new file mode 100644
index 0000000..fa9ef82
Binary files /dev/null and b/images/background.jpg differ
diff --git a/images/call-w.png b/images/call-w.png
new file mode 100644
index 0000000..7a7da54
Binary files /dev/null and b/images/call-w.png differ
diff --git a/images/health-active.png b/images/health-active.png
new file mode 100644
index 0000000..d40641a
Binary files /dev/null and b/images/health-active.png differ
diff --git a/images/health-w.png b/images/health-w.png
new file mode 100644
index 0000000..5f83902
Binary files /dev/null and b/images/health-w.png differ
diff --git a/images/health.png b/images/health.png
new file mode 100644
index 0000000..0cb30da
Binary files /dev/null and b/images/health.png differ
diff --git a/images/home-active2.png b/images/home-active2.png
new file mode 100644
index 0000000..f306421
Binary files /dev/null and b/images/home-active2.png differ
diff --git a/images/home-w.png b/images/home-w.png
new file mode 100644
index 0000000..f6e7d99
Binary files /dev/null and b/images/home-w.png differ
diff --git a/images/home.png b/images/home.png
new file mode 100644
index 0000000..3a03055
Binary files /dev/null and b/images/home.png differ
diff --git a/images/mine-active2.png b/images/mine-active2.png
new file mode 100644
index 0000000..4af54b7
Binary files /dev/null and b/images/mine-active2.png differ
diff --git a/images/mine.png b/images/mine.png
new file mode 100644
index 0000000..b6864c4
Binary files /dev/null and b/images/mine.png differ
diff --git a/images/pt.jpg b/images/pt.jpg
new file mode 100644
index 0000000..0e1aed7
Binary files /dev/null and b/images/pt.jpg differ
diff --git a/images/pz1.jpg b/images/pz1.jpg
new file mode 100644
index 0000000..21ac18f
Binary files /dev/null and b/images/pz1.jpg differ
diff --git a/images/qbg1.jpg b/images/qbg1.jpg
new file mode 100644
index 0000000..355594f
Binary files /dev/null and b/images/qbg1.jpg differ
diff --git a/images/team-w.png b/images/team-w.png
new file mode 100644
index 0000000..63c2c49
Binary files /dev/null and b/images/team-w.png differ
diff --git a/images/wz1.jpg b/images/wz1.jpg
new file mode 100644
index 0000000..dfc00f2
Binary files /dev/null and b/images/wz1.jpg differ
diff --git a/images/yy.jpg b/images/yy.jpg
new file mode 100644
index 0000000..d90107b
Binary files /dev/null and b/images/yy.jpg differ
diff --git a/images/zixun-w.png b/images/zixun-w.png
new file mode 100644
index 0000000..1f9240f
Binary files /dev/null and b/images/zixun-w.png differ
diff --git a/miniprogram_npm/tdesign-miniprogram/.DS_Store b/miniprogram_npm/tdesign-miniprogram/.DS_Store
new file mode 100644
index 0000000..d054562
Binary files /dev/null and b/miniprogram_npm/tdesign-miniprogram/.DS_Store differ
diff --git a/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json b/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json
new file mode 100644
index 0000000..4bdac29
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json
@@ -0,0 +1 @@
+{"key":"TDesign","label":"Tdesign","components":{"t-action-sheet":{"key":"t-action-sheet","label":"动作面板","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-actionsheet.png","properties":[{"key":"cancelText","type":["String"],"desc":"设置取消按钮的文本","label":""},{"key":"count","type":["Number"],"desc":"设置每页展示菜单的数量,仅当 type=grid 时有效","label":""},{"key":"items","type":["Array"],"desc":"菜单项","label":""},{"key":"showCancel","type":["Boolean"],"desc":"是否显示取消按钮","label":""},{"key":"theme","type":["String"],"desc":"展示类型,列表和表格形式展示","label":""},{"key":"visible","type":["Boolean"],"desc":"显示与隐藏","label":""}],"events":[{"key":"bind:cancel","desc":"点击取消按钮时触发","label":""},{"key":"bind:close","desc":"关闭时触发","label":""},{"key":"bind:selected","desc":"选择菜单项时触发","label":""}],"tpl":"","path":"./action-sheet/action-sheet"},"t-avatar-group":{"key":"t-avatar-group","label":"头像组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-avatar.png","properties":[{"key":"cascading","type":["String"],"desc":"图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上","label":""},{"key":"collapseAvatar","type":["String"],"desc":"头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多`","label":""},{"key":"max","type":["Number"],"desc":"能够同时显示的最多头像数量","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size","label":""}],"externalClasses":["t-class","t-class-image","t-class-content"],"tpl":"","require":{"t-avatar":"./avatar/avatar"},"path":"./avatar/avatar-group"},"t-avatar":{"key":"t-avatar","label":"头像","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-avatar.png","properties":[{"key":"alt","type":["String"],"desc":"头像替换文本,仅当图片加载失败时有效","label":""},{"key":"badgeProps","type":["Object"],"desc":"头像右上角提示信息,继承 Badge 组件的全部特性。如:小红点,或者数字","label":""},{"key":"hideOnLoadFailed","type":["Boolean"],"desc":"加载失败时隐藏图片","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"image","type":["String"],"desc":"图片地址","label":""},{"key":"shape","type":["String"],"desc":"形状","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例值:small/medium/large/24px/38px 等,默认为 large","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:error","desc":"图片加载失败时触发","label":""}],"tpl":"","path":"./avatar/avatar"},"t-back-top":{"key":"t-back-top","label":"回到顶部","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-backtop.png","properties":[{"key":"fixed","type":["Boolean"],"desc":"是否绝对定位固定到屏幕右下方","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"text","type":["String"],"desc":"文案","label":""},{"key":"theme","type":["String"],"desc":"预设的样式类型","label":""}],"externalClasses":["t-class","t-class-icon","t-class-text"],"events":[{"key":"bind:to-top","desc":"点击触发","label":""}],"tpl":"","path":"./back-top/back-top"},"t-badge":{"key":"t-badge","label":"徽标数","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-badge.png","properties":[{"key":"color","type":["String"],"desc":"颜色","label":""},{"key":"content","type":["String"],"desc":"徽标内容,示例:`content='自定义内容'`。也可以使用默认插槽定义","label":""},{"key":"count","type":["String","Number"],"desc":"徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+。特殊:值为空表示使用插槽渲染","label":""},{"key":"dot","type":["Boolean"],"desc":"是否为红点","label":""},{"key":"maxCount","type":["Number"],"desc":"封顶的数字值","label":""},{"key":"offset","type":["Array"],"desc":"设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem']","label":""},{"key":"shape","type":["String"],"desc":"形状","label":""},{"key":"showZero","type":["Boolean"],"desc":"当数值为 0 时,是否展示徽标","label":""},{"key":"size","type":["String"],"desc":"尺寸","label":""}],"externalClasses":["t-class","t-class-content","t-class-count"],"tpl":"","path":"./badge/badge"},"t-button":{"key":"t-button","label":"按钮","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-button.png","properties":[{"key":"block","type":["Boolean"],"desc":"是否为块级元素","label":""},{"key":"content","type":["String"],"desc":"按钮内容","label":""},{"key":"customDataset","type":["Object"],"desc":"自定义 dataset,可通过 event.currentTarget.dataset.custom 获取","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用按钮","label":""},{"key":"ghost","type":["Boolean"],"desc":"是否为幽灵按钮(镂空按钮)","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"loading","type":["Boolean"],"desc":"是否显示为加载状态","label":""},{"key":"shape","type":["String"],"desc":"按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形","label":""},{"key":"size","type":["String"],"desc":"组件尺寸","label":""},{"key":"theme","type":["String"],"desc":"组件风格,依次为品牌色、危险色","label":""},{"key":"type","type":["String"],"desc":"同小程序的 formType","label":""},{"key":"variant","type":["String"],"desc":"按钮形式,基础、线框、文字","label":""}],"externalClasses":["t-class","t-class-icon"],"events":[{"key":"bind:click","desc":"点击时触发","label":""}],"tpl":"","path":"./button/button"},"t-cell-group":{"key":"t-cell-group","label":"单元格组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-cell.png","properties":[{"key":"bordered","type":["Boolean"],"desc":"是否显示组边框","label":""},{"key":"title","type":["String"],"desc":"单元格组标题","label":""}],"externalClasses":["t-class"],"tpl":"","require":{"t-cell":"./cell/cell"},"path":"./cell-group/cell-group"},"t-cell":{"key":"t-cell","label":"单元格","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-cell.png","properties":[{"key":"align","type":["String"],"desc":"内容的对齐方式,默认居中对齐","label":""},{"key":"arrow","type":["Boolean"],"desc":"是否显示右侧箭头","label":""},{"key":"bordered","type":["Boolean"],"desc":"是否显示下边框","label":""},{"key":"description","type":["String"],"desc":"下方内容描述","label":""},{"key":"hover","type":["Boolean"],"desc":"是否开启点击反馈","label":""},{"key":"image","type":["String"],"desc":"主图","label":""},{"key":"jumpType","type":["String"],"desc":"链接跳转类型","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标,出现在单元格标题的左侧","label":""},{"key":"note","type":["String"],"desc":"和标题同行的说明文字","label":""},{"key":"required","type":["Boolean"],"desc":"是否显示表单必填星号","label":""},{"key":"rightIcon","type":["String"],"desc":"最右侧图标","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"url","type":["String"],"desc":"点击后跳转链接地址。如果值为空,则表示不需要跳转","label":""}],"externalClasses":["t-class","t-class-title","t-class-note","t-class-description","t-class-thumb","t-class-hover","t-class-left","t-class-right"],"events":[{"key":"bind:click","desc":"右侧内容","label":""}],"tpl":"","path":"./cell/cell"},"t-check-tag":{"key":"t-check-tag","label":"可选标签","icon":"","properties":[{"key":"checked","type":["Boolean"],"desc":"标签选中的状态,默认风格(theme=default)才有选中态","label":""},{"key":"closable","type":["Boolean"],"desc":"标签是否可关闭","label":""},{"key":"content","type":["String","Number"],"desc":"组件子元素","label":""},{"key":"disabled","type":["Boolean"],"desc":"标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态","label":""},{"key":"icon","type":["String"],"desc":"标签中的图标,可自定义图标呈现","label":""},{"key":"shape","type":["String"],"desc":"标签类型,有三种:方形、圆角方形、标记型","label":""},{"key":"size","type":["String"],"desc":"标签尺寸","label":""}],"events":[{"key":"bind:change","desc":"组件子元素","label":""},{"key":"bind:click","desc":"点击标签时触发","label":""}],"tpl":"check tag","path":"./check-tag/check-tag"},"t-checkbox-group":{"key":"t-checkbox-group","label":"多选框组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-checkbox.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"max","type":["Number"],"desc":"支持最多选中的数量","label":""},{"key":"name","type":["String"],"desc":"统一设置内部复选框 HTML 属性","label":""},{"key":"options","type":["Array"],"desc":"以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」","label":""},{"key":"value","type":["Array"],"desc":"选中值","label":""}],"events":[{"key":"bind:change","desc":"值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项","label":""}],"tpl":"","require":{"t-checkbox":"./checkbox/checkbox"},"path":"./checkbox-group/checkbox-group"},"t-checkbox":{"key":"t-checkbox","label":"多选框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-checkbox.png","properties":[{"key":"align","type":["String"],"desc":"多选框和内容相对位置","label":""},{"key":"checkAll","type":["Boolean"],"desc":"用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用","label":""},{"key":"checked","type":["Boolean"],"desc":"是否选中","label":""},{"key":"color","type":["String"],"desc":"多选框颜色","label":""},{"key":"content","type":["String"],"desc":"多选框内容","label":""},{"key":"contentDisabled","type":["Boolean"],"desc":"是否禁用组件内容(content)触发选中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"icon","type":["Array"],"desc":"自定义选中图标和非选中图标。示例:[选中态图标地址,非选中态图标地址]","label":""},{"key":"indeterminate","type":["Boolean"],"desc":"是否为半选","label":""},{"key":"label","type":["String"],"desc":"主文案","label":""},{"key":"maxContentRow","type":["Number"],"desc":"内容最大行数限制","label":""},{"key":"maxLabelRow","type":["Number"],"desc":"主文案最大行数限制","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"value","type":["String","Number"],"desc":"多选框的值","label":""}],"externalClasses":["t-class","t-class-icon","t-class-label","t-class-content","t-class-border"],"events":[{"key":"bind:change","desc":"值变化时触发","label":""}],"tpl":"","path":"./checkbox/checkbox"},"t-collapse-panel":{"key":"t-collapse-panel","label":"折叠面板","icon":"","properties":[{"key":"content","type":["String"],"desc":"折叠面板内容","label":""},{"key":"disabled","type":["Boolean"],"desc":"禁止当前面板展开,优先级大于 Collapse 的同名属性","label":""},{"key":"expandIcon","type":["Boolean"],"desc":"当前折叠面板展开图标,优先级大于 Collapse 的同名属性","label":""},{"key":"header","type":["String"],"desc":"面板头内容","label":""},{"key":"headerRightContent","type":["String"],"desc":"面板头的右侧区域,一般用于呈现面板操作","label":""},{"key":"value","type":["String","Number"],"desc":"当前面板唯一标识,如果值为空则取当前面下标兜底作为唯一标识","label":""}],"tpl":"此处可自定义内容","path":"./collapse/collapse-panel"},"t-collapse":{"key":"t-collapse","label":"折叠","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-collapse.png","properties":[{"key":"defaultExpandAll","type":["Boolean"],"desc":"默认是否展开全部","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用面板展开/收起操作","label":""},{"key":"expandIcon","type":["Boolean"],"desc":"展开图标。值为 undefined 或 false 则不显示展开图标;值为 true 显示默认图标;值类型为函数,则表示完全自定义展开图标","label":""},{"key":"expandMutex","type":["Boolean"],"desc":"每个面板互斥展开,每次只展开一个面板","label":""},{"key":"value","type":["Array"],"desc":"展开的面板集合","label":""}],"events":[{"key":"bind:change","desc":"切换面板时触发,返回变化的值","label":""}],"tpl":"此处可自定义内容","require":{"t-collapse-panel":"./collapse/collapse-panel"},"path":"./collapse/collapse"},"t-date-time-picker":{"key":"t-date-time-picker","label":"日期时间选择器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-datetimepicker.png","properties":[{"key":"cancelBtn","type":["String"],"desc":"取消按钮文字","label":""},{"key":"confirmBtn","type":["String"],"desc":"确定按钮文字","label":""},{"key":"end","type":["String","Number"],"desc":"选择器的结束时间","label":""},{"key":"footer","type":["String"],"desc":"底部内容","label":""},{"key":"format","type":["String"],"desc":"用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format)","label":""},{"key":"header","type":["Boolean"],"desc":"头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 TNode 表示自定义头部内容","label":""},{"key":"mode","type":["String","Array"],"desc":"选择器模式,用于表示可以选择到哪一个层级。【示例一】year 或者 ['year'] 表示纯日期选择器,只能选择到年份,只显示年份。【示例二】'hour' 或 ['hour'] 表示纯时间选择器,只能选择到小时维度。【示例三】['year', 'month', 'date', 'hour', 'minute'] 表示,日期和时间 混合选择器,可以选择到具体哪一分钟,显示全部时间:年/月/日/时/分","label":""},{"key":"showWeek","type":["Boolean"],"desc":"【开发中】是否在日期旁边显示周几(如周一,周二,周日等)","label":""},{"key":"start","type":["String","Number"],"desc":"选择器的开始时间","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"value","type":["String","Number"],"desc":"选中值","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"externalClasses":["t-class","t-class-confirm","t-class-cancel","t-class-title"],"events":[{"key":"bind:cancel","desc":"取消按钮点击时触发","label":""},{"key":"bind:change","desc":"选中值发生变化时触发","label":""},{"key":"bind:column-change","desc":"每一列选中数据变化时触发","label":""},{"key":"bind:confirm","desc":"确认按钮点击时触发","label":""}],"tpl":"","path":"./date-time-picker/date-time-picker"},"t-dialog":{"key":"t-dialog","label":"对话框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dialog.png","properties":[{"key":"actions","type":["Array"],"desc":"操作栏","label":""},{"key":"buttonLayout","type":["String"],"desc":"多按钮排列方式","label":""},{"key":"cancelBtn","type":["String","Object"],"desc":"取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件","label":""},{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击蒙层时是否触发关闭事件","label":""},{"key":"confirmBtn","type":["String","Object"],"desc":"确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件","label":""},{"key":"content","type":["String"],"desc":"内容","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透","label":""},{"key":"showInAttachedElement","type":["Boolean"],"desc":"【开发中】仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"visible","type":["Boolean"],"desc":"控制对话框是否显示","label":""},{"key":"zIndex","type":["Number"],"desc":"对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500","label":""}],"externalClasses":["t-class","t-class-content","t-class-confirm","t-class-cancel"],"events":[{"key":"bind:cancel","desc":"如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件","label":""},{"key":"bind:close","desc":"关闭事件,点击 取消按钮 或 点击蒙层 时触发","label":""},{"key":"bind:overlay-click","desc":"如果蒙层存在,点击蒙层时触发","label":""}],"tpl":"","path":"./dialog/dialog"},"t-divider":{"key":"t-divider","label":"分割线","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-divider.png","properties":[{"key":"align","type":["String"],"desc":"文本位置(仅在水平分割线有效)","label":""},{"key":"content","type":["String"],"desc":"子元素","label":""},{"key":"dashed","type":["Boolean"],"desc":"是否虚线(仅在水平分割线有效)","label":""},{"key":"layout","type":["String"],"desc":"分隔线类型有两种:水平和垂直","label":""},{"key":"lineColor","type":["String"],"desc":"分隔线颜色","label":""}],"externalClasses":["t-class","t-class-line","t-class-content"],"tpl":"","path":"./divider/divider"},"t-drawer":{"key":"t-drawer","label":"模态抽屉","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-drawer.png","properties":[{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击蒙层时是否触发抽屉关闭事件","label":""},{"key":"destroyOnClose","type":["Boolean"],"desc":"抽屉关闭时是否销毁节点","label":""},{"key":"items","type":["Array"],"desc":"抽屉里的列表项","label":""},{"key":"placement","type":["String"],"desc":"抽屉方向","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"visible","type":["Boolean"],"desc":"组件是否可见","label":""},{"key":"zIndex","type":["Number"],"desc":"抽屉层级,样式默认为 1500","label":""}],"events":[{"key":"bind:close","desc":"关闭事件,取消按钮点击时、关闭按钮点击时、点击蒙层时均会触发","label":""},{"key":"bind:item-click","desc":"点击抽屉里的列表项","label":""},{"key":"bind:overlay-click","desc":"如果蒙层存在,点击蒙层时触发","label":""}],"tpl":"","path":"./drawer/drawer"},"t-dropdown-item":{"key":"t-dropdown-item","label":"下拉菜单子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dropdownmenu.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用","label":""},{"key":"label","type":["String"],"desc":"标题","label":""},{"key":"multiple","type":["Boolean"],"desc":"是否多选","label":""},{"key":"options","type":["Array"],"desc":"选项数据","label":""}],"tpl":"","path":"./dropdown-menu/dropdown-item"},"t-dropdown-menu":{"key":"t-dropdown-menu","label":"下拉菜单","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dropdownmenu.png","properties":[{"key":"activeColor","type":["String"],"desc":"【讨论中】菜单标题和选项的选中态颜色","label":""},{"key":"closeOnClickOverlay","type":["Boolean"],"desc":"是否在点击遮罩层后关闭菜单","label":""},{"key":"duration","type":["String","Number"],"desc":"动画时长","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"zIndex","type":["Number"],"desc":"菜单栏 z-index 层级","label":""}],"tpl":"","require":{"t-dropdown-item":"./dropdown-menu/dropdown-item"},"path":"./dropdown-menu/dropdown-menu"},"t-empty":{"key":"t-empty","label":"空状态","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-empty.png","properties":[{"key":"action","type":["String"],"desc":"操作按钮","label":""},{"key":"description","type":["String"],"desc":"描述文字","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"image","type":["String"],"desc":"图片地址","label":""}],"externalClasses":["t-class","t-class-description","t-class-image","t-class-actions"],"tpl":"","path":"./empty/empty"},"t-fab":{"key":"t-fab","label":"悬浮按钮","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-fab.png","properties":[{"key":"buttonProps","type":["Object"],"desc":"透传至 Button 组件","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"style","type":["String"],"desc":"悬浮按钮的样式,常用于调整位置","label":""},{"key":"text","type":["String"],"desc":"文本内容","label":""}],"events":[{"key":"bind:click","desc":"悬浮按钮点击事件","label":""}],"tpl":"","path":"./fab/fab"},"t-footer":{"key":"t-footer","label":"布局-底部内容","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-footer.png","properties":[{"key":"copyright","type":["String"],"desc":"版权信息,type 为`text`生效","label":""},{"key":"logo","type":["Object"],"desc":"图标配置,type 为`logo`生效。`logo.icon` 表示图标链接地址,`logo.title` 表示标题文本,`logo.url` 表示链接跳转地址","label":""},{"key":"textLinkList","type":["Array"],"desc":"链接列表,type 为`text`生效。name 表示链接名称, url 表示链接 page 路径,目前只支持小程序内部跳转,openType 表示跳转方式","label":""},{"key":"theme","type":["String"],"desc":"页脚展示类型","label":""}],"tpl":"","path":"./footer/footer"},"t-grid-item":{"key":"t-grid-item","label":"宫格子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-grid.png","properties":[{"key":"badgeProps","type":["Object"],"desc":"头像右上角提示信息,继承 Badge 组件的全部特性。如:小红点,或者数字","label":""},{"key":"description","type":["String"],"desc":"文本以外的更多描述,辅助信息。可以通过 Props 传入文本,也可以自定义标题节点","label":""},{"key":"image","type":["String"],"desc":"图片,可以是图片地址,也可以自定义图片节点","label":""},{"key":"jumpType","type":["String"],"desc":"链接跳转类型","label":""},{"key":"layout","type":["String"],"desc":"内容布局方式","label":""},{"key":"text","type":["String"],"desc":"文本,可以通过 Props 传入文本,也可以自定义标题节点","label":""},{"key":"url","type":["String"],"desc":"点击后的跳转链接","label":""}],"externalClasses":["t-class","t-class-image","t-class-text","t-class-description"],"tpl":"","path":"./grid-item/grid-item"},"t-grid":{"key":"t-grid","label":"栅格","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-grid.png","properties":[{"key":"align","type":["String"],"desc":"内容对齐方式","label":""},{"key":"border","type":["Boolean","Object"],"desc":"边框,默认不显示。值为 true 则显示默认边框,值类型为 object 则表示自定义边框样式","label":""},{"key":"column","type":["Number"],"desc":"每一行的列数量","label":""},{"key":"gutter","type":["Number"],"desc":"间隔大小","label":""},{"key":"hover","type":["Boolean"],"desc":"是否开启点击反馈","label":""}],"externalClasses":["t-class"],"tpl":"","require":{"t-grid-item":"./grid-item/grid-item"},"path":"./grid/grid"},"t-icon":{"key":"t-icon","label":"图标","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-icon.png","properties":[{"key":"classPrefix","type":["String"],"desc":"自定义icon前缀","label":""},{"key":"color","type":["String"],"desc":"图标颜色","label":""},{"key":"style","type":["String"],"desc":"自定义样式","label":""},{"key":"name","type":["String"],"desc":"图标名称","label":""},{"key":"size","type":["String","Number"],"desc":"图标名称","label":""}],"tpl":"","path":"./icon/icon"},"t-image":{"key":"t-image","label":"图片","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-image.png","properties":[{"key":"error","type":["String"],"desc":"加载失败时显示的内容。值为 `default` 则表示使用默认加载失败风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `error`;值为其他则表示普通文本内容,如“加载失败”","label":""},{"key":"lazy","type":["Boolean"],"desc":"是否开启图片懒加载","label":""},{"key":"loading","type":["String"],"desc":"加载态内容。值为 `default` 则表示使用默认加载中风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `loading`;值为其他则表示普通文本内容,如“加载中”","label":""},{"key":"shape","type":["String"],"desc":"图片圆角类型","label":""},{"key":"src","type":["String"],"desc":"图片链接","label":""}],"externalClasses":["t-class","t-class-load"],"events":[{"key":"bind:error","desc":"图片加载失败时触发","label":""},{"key":"bind:load","desc":"图片加载完成时触发","label":""}],"tpl":"","path":"./image/image"},"t-indexes":{"key":"t-indexes","label":"索引","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-indexes.png","properties":[{"key":"height","type":["Number"],"desc":"列表高度,未设置默认占满设备高度","label":""},{"key":"list","type":["Array"],"desc":"索引列表的列表数据。每个元素包含三个子元素,index(string):索引值,例如1,2,3,...或A,B,C等;title(string): 索引标题,可不填将默认设为索引值;children(Array<{title: string}>): 子元素列表,title为子元素的展示文案。","label":""},{"key":"sticky","type":["Boolean"],"desc":"索引是否吸顶,默认为true","label":""}],"events":[{"key":"bind:select","desc":"点击行元素时触发事件","label":""}],"tpl":"","path":"./indexes/indexes"},"t-input":{"key":"t-input","label":"输入框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-input.png","properties":[{"key":"align","type":["String"],"desc":"文本内容位置,居左/居中/居右","label":""},{"key":"borderless","type":["Boolean"],"desc":"【讨论中】是否开启无边框模式","label":""},{"key":"clearable","type":["Boolean"],"desc":"是否可清空","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用输入框","label":""},{"key":"errorMessage","type":["String"],"desc":"错误提示文本,值为空不显示(废弃属性,如果需要,请更为使用 status 和 tips)","label":""},{"key":"format","type":["String"],"desc":"【开发中】指定输入框展示值的格式","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"maxcharacter","type":["Number"],"desc":"用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用","label":""},{"key":"maxlength","type":["Number"],"desc":"用户最多可以输入的文本长度,一个中文等于一个计数长度。值小于等于 0 的时候,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"prefixIcon","type":["String"],"desc":"组件前置图标,值为字符串则表示图标名称","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"size","type":["String"],"desc":"输入框尺寸","label":""},{"key":"status","type":["String"],"desc":"输入框状态","label":""},{"key":"suffix","type":["String"],"desc":"后置图标前的后置内容","label":""},{"key":"suffixIcon","type":["String"],"desc":"后置文本内容,值为字符串则表示图标名称","label":""},{"key":"tips","type":["String"],"desc":"输入框下方提示文本,会根据不同的 `status` 呈现不同的样式","label":""},{"key":"value","type":["String","Number"],"desc":"输入框的值","label":""}],"externalClasses":["t-class","t-class-input","t-class-placeholder","t-class-error-msg"],"events":[{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"输入框值发生变化时触发","label":""},{"key":"bind:clear","desc":"清空按钮点击时触发","label":""},{"key":"bind:enter","desc":"回车键按下时触发","label":""},{"key":"bind:focus","desc":"获得焦点时触发","label":""}],"tpl":"","path":"./input/input"},"t-loading":{"key":"t-loading","label":"加载中","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-loading.png","properties":[{"key":"delay","type":["Number"],"desc":"延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒","label":""},{"key":"duration","type":["Number"],"desc":"加载动画执行完成一次的时间,单位:毫秒","label":""},{"key":"indicator","type":["Boolean"],"desc":"是否显示加载指示符","label":""},{"key":"inheritColor","type":["Boolean"],"desc":"是否继承父元素颜色","label":""},{"key":"layout","type":["String"],"desc":"对齐方式","label":""},{"key":"loading","type":["Boolean"],"desc":"是否处于加载状态","label":""},{"key":"pause","type":["Boolean"],"desc":"是否暂停动画","label":""},{"key":"progress","type":["Number"],"desc":"加载进度","label":""},{"key":"reverse","type":["Boolean"],"desc":"加载动画是否反向","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例:40rpx/20px","label":""},{"key":"text","type":["String"],"desc":"加载提示文案","label":""},{"key":"theme","type":["String"],"desc":"加载组件类型","label":""}],"externalClasses":["t-class","t-class-text","t-class-indicator"],"tpl":"","path":"./loading/loading"},"t-message":{"key":"t-message","label":"全局提醒","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-message.png","properties":[{"key":"action","type":["String"],"desc":"操作","label":""},{"key":"align","type":["String"],"desc":"文本对齐方式","label":""},{"key":"closeBtn","type":["String","Boolean"],"desc":"关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。也可以完全自定义按钮","label":""},{"key":"content","type":["String"],"desc":"用于自定义消息弹出内容","label":""},{"key":"duration","type":["Number"],"desc":"消息内置计时器,计时到达时会触发 duration-end 事件。单位:毫秒。值为 0 则表示没有计时器。","label":""},{"key":"icon","type":["String","Boolean"],"desc":"消息提醒前面的图标。值为 true 则根据 theme 显示对应的图标,值为 false 则不显示图标。值为 'info' 或 'bell' 则显示组件内置图标。也可以完全自定义图标节点","label":""},{"key":"marquee","type":["Boolean","Object"],"desc":"跑马灯效果。speed 指速度控制;loop 指循环播放次数,值为 -1 表示循环播放,值为 0 表示不循环播放;delay 表示延迟多久开始播放","label":""},{"key":"offset","type":["Array"],"desc":"相对于 placement 的偏移量,示例:[-10, 20] 或 ['10rpx', '8rpx']","label":""},{"key":"theme","type":["String"],"desc":"消息组件风格","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示,隐藏时默认销毁组件","label":""},{"key":"zIndex","type":["Number"],"desc":"元素层级,样式默认为 5000","label":""}],"externalClasses":["t-class","t-class-content","t-class-icon","t-class-action","t-class-close-btn"],"events":[{"key":"bind:action-btn-click","desc":"当操作按钮存在时,用户点击操作按钮时触发","label":""},{"key":"bind:close-btn-click","desc":"当关闭按钮存在时,用户点击关闭按钮触发","label":""},{"key":"bind:duration-end","desc":"计时结束后触发","label":""}],"tpl":"","path":"./message/message"},"t-navbar":{"key":"t-navbar","label":"导航条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-navbar.png","properties":[{"key":"animation","type":["Boolean"],"desc":"是否添加动画效果","label":""},{"key":"background","type":["String"],"desc":"背景","label":""},{"key":"delta","type":["Number"],"desc":"后退按钮后退层数,含义参考 [wx.navigateBack](https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateBack.html),特殊的,传入 0 不会发生执行 wx.navigateBack,只会触发一个 goback 事件供自行处理。","label":""},{"key":"fixed","type":["Boolean"],"desc":"是否固定在顶部","label":""},{"key":"homeIcon","type":["String"],"desc":"首页图标地址。值为 '' 或者 undefiend 则表示不显示返回图标,值为 'circle' 表示显示默认图标,值为 'slot' 表示使用插槽渲染,值为其他则表示图标地址","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标地址,值为 '' 或者 undefiend 则表示不显示返回图标,值为 'arrow-left' 表示显示返回图标,值为 'slot' 表示使用插槽渲染,值为其他则表示图标地址","label":""},{"key":"title","type":["String"],"desc":"页面标题","label":""},{"key":"titleMaxLength","type":["Number"],"desc":"标题文字最大长度,超出的范围使用 `...` 表示","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"externalClasses":["t-class","t-class-title","t-class-left-icon","t-class-home-icon","t-class-capsule"],"events":[{"key":"bind:complete","desc":"navigateBack 执行完成后触发(失败或成功均会触发)","label":""},{"key":"bind:fail","desc":"navigateBack 执行失败后触发","label":""},{"key":"bind:go-back","desc":"delta 值为 0 时,点击返回,触发该事件","label":""},{"key":"bind:go-home","desc":"点击 Home 触发","label":""},{"key":"bind:success","desc":"navigateBack 执行成功后触发","label":""}],"tpl":"","path":"./navbar/navbar"},"t-picker-item":{"key":"t-picker-item","label":"选择器子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-picker.png","properties":[{"key":"format","type":["String"],"desc":"格式化标签","label":""},{"key":"options","type":["Array"],"desc":"数据源","label":""}],"tpl":"","path":"./picker-item/picker-item"},"t-picker":{"key":"t-picker","label":"选择器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-picker.png","properties":[{"key":"cancelBtn","type":["String","Object"],"desc":"取消按钮文字","label":""},{"key":"confirmBtn","type":["String","Object"],"desc":"确定按钮文字","label":""},{"key":"footer","type":["String"],"desc":"底部内容","label":""},{"key":"header","type":["Boolean"],"desc":"头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 TNode 表示自定义头部内容","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"value","type":["Array"],"desc":"选中值","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"events":[{"key":"bind:cancel","desc":"点击取消按钮时触发","label":""},{"key":"bind:change","desc":"选中变化时候触发","label":""},{"key":"bind:pick","desc":"任何一列选中都会触发,不同的列参数不同。`context.column` 表示第几列变化,`context.index` 表示变化那一列的选中项下标","label":""}],"tpl":"","require":{"t-picker-item":"./picker-item/picker-item"},"path":"./picker/picker"},"t-popup":{"key":"t-popup","label":"气泡框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-popup.png","properties":[{"key":"closeBtn","type":["Boolean"],"desc":"关闭按钮,值类型为 Boolean 时表示是否显示关闭按钮。也可以自定义关闭按钮","label":""},{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击遮罩层是否关闭","label":""},{"key":"content","type":["String"],"desc":"浮层里面的内容","label":""},{"key":"placement","type":["String"],"desc":"浮层出现位置","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"transitionProps","type":["Object"],"desc":"动画效果定义","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示浮层","label":""},{"key":"zIndex","type":["Number"],"desc":"组件层级,Web 侧样式默认为 5500,移动端和小程序样式默认为 1500","label":""}],"externalClasses":["t-class","t-class-overlay","t-class-content"],"events":[{"key":"bind:visible-change","desc":"当浮层隐藏或显示时触发","label":""}],"tpl":"","path":"./popup/popup"},"t-progress":{"key":"t-progress","label":"进度条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-progress.png","properties":[{"key":"color","type":["String","Object","Array"],"desc":"进度条颜色。示例:'#ED7B2F' 或 'orange' 或 `['#f00', '#0ff', '#f0f']` 或 `{ '0%': '#f00', '100%': '#0ff' }` 或 `{ from: '#000', to: '#000' }` 等","label":""},{"key":"label","type":["String","Boolean"],"desc":"进度百分比,可自定义","label":""},{"key":"percentage","type":["Number"],"desc":"进度条百分比","label":""},{"key":"size","type":["String","Number"],"desc":"进度条尺寸,示例:small/medium/large/240。small 值为 72; medium 值为 112;large 值为 160","label":""},{"key":"status","type":["String"],"desc":"进度条状态","label":""},{"key":"strokeWidth","type":["String","Number"],"desc":"进度条线宽。宽度数值不能超过 size 的一半,否则不能输出环形进度","label":""},{"key":"theme","type":["String"],"desc":"进度条风格。值为 line,标签(label)显示在进度条右侧;值为 plump,标签(label)显示在进度条里面;值为 circle,标签(label)显示在进度条正中间","label":""},{"key":"trackColor","type":["String"],"desc":"进度条未完成部分颜色","label":""}],"tpl":"","path":"./progress/progress"},"t-pull-down-refresh":{"key":"t-pull-down-refresh","label":"下拉刷新","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-pulldownrefresh.png","properties":[{"key":"loadingBarHeight","type":["String","Number"],"desc":"加载中下拉高度,如果值为数字则单位是:'px'","label":""},{"key":"loadingProps","type":["Object"],"desc":"加载loading样式","label":""},{"key":"loadingTexts","type":["Array"],"desc":"提示语,组件内部默认值为 ['下拉刷新', '松手刷新', '正在刷新', '刷新完成']","label":""},{"key":"maxBarHeight","type":["String","Number"],"desc":"最大下拉高度,如果值为数字则单位是:'px'","label":""},{"key":"refreshTimeout","type":["Number"],"desc":"刷新超时时间","label":""},{"key":"value","type":["Boolean"],"desc":"组件状态,值为 `true` 表示下拉状态,值为 `false` 表示收起状态","label":""}],"externalClasses":["t-class","t-class-loading","t-class-text","t-class-indicator"],"events":[{"key":"bind:change","desc":"下拉或收起时触发,用户手势往下滑动触发下拉状态,手势松开触发收起状态","label":""},{"key":"bind:refresh","desc":"结束下拉时触发","label":""},{"key":"bind:timeout","desc":"刷新超时触发","label":""}],"tpl":"拖拽该区域演示 中间下拉刷新","path":"./pull-down-refresh/pull-down-refresh"},"t-radio-group":{"key":"t-radio-group","label":"单选框组","icon":"","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用全部子单选框","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"options","type":["Array"],"desc":"单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"选中的值","label":""}],"events":[{"key":"bind:change","desc":"选中值发生变化时触发","label":""}],"tpl":"","require":{"t-radio":"./radio/radio"},"path":"./radio-group/radio-group"},"t-radio":{"key":"t-radio","label":"单选框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-radio.png","properties":[{"key":"align","type":["String"],"desc":"复选框和内容相对位置","label":""},{"key":"allowUncheck","type":["Boolean"],"desc":"是否允许取消选中","label":""},{"key":"checked","type":["Boolean"],"desc":"是否选中","label":""},{"key":"color","type":["String"],"desc":"单选按钮颜色","label":""},{"key":"content","type":["String"],"desc":"单选内容","label":""},{"key":"contentDisabled","type":["Boolean"],"desc":"是否禁用组件内容(content)触发选中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否为禁用态","label":""},{"key":"icon","type":["String","Array"],"desc":"自定义选中图标和非选中图标。示例:[选中态图标,非选中态图标]。值为 fill-circle 表示图标为填充型图标,值为 stroke-line 表示图标为描边型图标","label":""},{"key":"label","type":["String"],"desc":"主文案","label":""},{"key":"maxContentRow","type":["Number"],"desc":"内容最大行数限制","label":""},{"key":"maxLabelRow","type":["Number"],"desc":"主文案最大行数限制","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"单选按钮的值","label":""}],"externalClasses":["t-class","t-class-icon","t-class-label","t-class-content","t-class-border"],"events":[{"key":"bind:change","desc":"值变化时触发","label":""}],"tpl":"","path":"./radio/radio"},"t-rate":{"key":"t-rate","label":"评分","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-rate.png","properties":[{"key":"allowHalf","type":["Boolean"],"desc":"是否允许半选","label":""},{"key":"color","type":["String","Array"],"desc":"评分图标的颜色,样式中默认为 #ED7B2F。一个值表示设置选中高亮的五角星颜色,示例:[选中颜色]。数组则表示分别设置 选中高亮的五角星颜色 和 未选中暗灰的五角星颜色,[选中颜色,未选中颜色]。示例:['#ED7B2F', '#E3E6EB']","label":""},{"key":"count","type":["Number"],"desc":"评分的数量","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用评分","label":""},{"key":"gap","type":["Number"],"desc":"评分图标的间距","label":""},{"key":"showText","type":["Boolean"],"desc":"是否显示对应的辅助文字","label":""},{"key":"size","type":["String"],"desc":"评分图标的大小,示例:`20`","label":""},{"key":"texts","type":["Array"],"desc":"评分等级对应的辅助文字。组件内置默认值为:['极差', '失望', '一般', '满意', '惊喜']。自定义值示例:['1分', '2分', '3分', '4分', '5分']","label":""},{"key":"value","type":["Number"],"desc":"选择评分的值","label":""},{"key":"variant","type":["String"],"desc":"形状类型,有描边类型和填充类型两种","label":""}],"events":[{"key":"bind:change","desc":"评分数改变时触发","label":""}],"tpl":"","path":"./rate/rate"},"t-search":{"key":"t-search","label":"搜索","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-search.png","properties":[{"key":"action","type":["String"],"desc":"自定义右侧操作按钮文字","label":""},{"key":"center","type":["Boolean"],"desc":"是否居中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用","label":""},{"key":"focus","type":["Boolean"],"desc":"是否聚焦","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"rightIcon","type":["String"],"desc":"右侧图标","label":""},{"key":"shape","type":["String"],"desc":"搜索框形状","label":""},{"key":"value","type":["String"],"desc":"值","label":""}],"externalClasses":["t-class","t-class-input","t-class-input-container","t-class-cancel","t-class-left","t-class-right"],"events":[{"key":"bind:action-click","desc":"点击右侧操作按钮文字时触发","label":""},{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"值发生变化时触发","label":""},{"key":"bind:clear","desc":"点击清除时触发","label":""},{"key":"bind:focus","desc":"聚焦时触发","label":""},{"key":"bind:submit","desc":"提交时触发","label":""}],"tpl":"","path":"./search/search"},"t-skeleton":{"key":"t-skeleton","label":"骨架屏","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-skeleton.png","properties":[{"key":"animation","type":["String"],"desc":"动画效果,有「渐变加载动画」和「闪烁加载动画」两种。值为 'none' 则表示没有动画","label":""},{"key":"delay","type":["Number"],"desc":"【开发中】延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒","label":""},{"key":"loading","type":["Boolean"],"desc":"是否为加载状态,如果是则显示骨架图,如果不是则显示加载完成的内容","label":""},{"key":"rowCol","type":["Array"],"desc":"用于设置行列数量、宽度高度、间距等。【示例一】,`[1, 1, 2]` 表示输出三行骨架图,第一行一列,第二行一列,第三行两列。【示例二】,`[1, 1, { width: '100px' }]` 表示自定义第三行的宽度为 `100px`。【示例三】,`[1, 2, [{ width, height }, { width, height, marginLeft }]]` 表示第三行有两列,且自定义宽度、高度和间距","label":""},{"key":"theme","type":["String"],"desc":"骨架图风格,有基础、头像组合等两大类","label":""}],"externalClasses":["t-class","t-class-avatar","t-class-image","t-class-text"],"tpl":"","path":"./skeleton/skeleton"},"t-slider":{"key":"t-slider","label":"滑块","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-slider.png","properties":[{"key":"colors","type":["Array"],"desc":"颜色,[已选择, 未选择]","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"disabledColor","type":["Array"],"desc":"禁用状态滑动条的颜色,[已选, 未选]","label":""},{"key":"label","type":["String","Boolean"],"desc":"滑块当前值文本。
值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
值为 `${value}%` 则表示组件会根据占位符渲染文案;
值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值","label":""},{"key":"marks","type":["Object","Array"],"desc":"刻度标记,示例:`[0, 10, 40, 200]` 或者 `{ 5: '5¥', 10: '10%' }`","label":""},{"key":"max","type":["Number"],"desc":"滑块范围最大值","label":""},{"key":"min","type":["Number"],"desc":"滑块范围最小值","label":""},{"key":"range","type":["Boolean"],"desc":"双游标滑块","label":""},{"key":"showExtremeValue","type":["Boolean"],"desc":"是否边界值","label":""},{"key":"step","type":["Number"],"desc":"步长","label":""},{"key":"value","type":["Number","Array"],"desc":"滑块值","label":""}],"externalClasses":["t-class","t-class-bar","t-class-bar-active","t-class-bar-disabled","t-class-cursor"],"events":[{"key":"bind:change","desc":"滑块值变化时触发","label":""},{"key":"bind:dragend","desc":"结束拖动时触发","label":""},{"key":"bind:dragstart","desc":"开始拖动时触发","label":""}],"tpl":"","path":"./slider/slider"},"t-step-item":{"key":"t-step-item","label":"步骤","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-steps.png","properties":[{"key":"content","type":["String"],"desc":"步骤描述","label":""},{"key":"icon","type":["String"],"desc":"图标。传入 slot 代表使用插槽,其他字符串代表使用内置图标","label":""},{"key":"status","type":["String"],"desc":"当前步骤的状态","label":""},{"key":"subStepItems","type":["Array"],"desc":"子步骤条,仅支持 layout = 'vertical' 时","label":""},{"key":"title","type":["String"],"desc":"标题","label":""}],"externalClasses":["t-class","t-class-content","t-class-title","t-class-description","t-class-extra"],"tpl":"","path":"./step-item/step-item"},"t-stepper":{"key":"t-stepper","label":"步进器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-stepper.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"禁用全部操作","label":""},{"key":"disableInput","type":["Boolean"],"desc":"禁用输入框","label":""},{"key":"inputWidth","type":["Number"],"desc":"输入框宽度","label":""},{"key":"max","type":["Number"],"desc":"最大值","label":""},{"key":"min","type":["Number"],"desc":"最小值","label":""},{"key":"step","type":["Number"],"desc":"步长","label":""},{"key":"theme","type":["String"],"desc":"组件风格","label":""},{"key":"value","type":["String","Number"],"desc":"值","label":""}],"externalClasses":["t-class","t-class-input","t-class-add","t-class-minus"],"events":[{"key":"bind:blur","desc":"输入框失去焦点时触发","label":""},{"key":"bind:change","desc":"数值发生变更时触发","label":""},{"key":"bind:overlimit","desc":"数值超出限制时触发","label":""}],"tpl":"","path":"./stepper/stepper"},"t-steps":{"key":"t-steps","label":"步骤条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-steps.png","properties":[{"key":"current","type":["String","Number"],"desc":"当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成","label":""},{"key":"currentStatus","type":["String"],"desc":"用于控制 current 指向的步骤条的状态","label":""},{"key":"layout","type":["String"],"desc":"步骤条方向,有两种:横向和纵向","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"separator","type":["String"],"desc":"步骤条分割符","label":""},{"key":"theme","type":["String"],"desc":"步骤条风格","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:change","desc":"当前步骤发生变化时触发","label":""}],"tpl":"","require":{"t-step-item":"./step-item/step-item"},"path":"./steps/steps"},"t-sticky":{"key":"t-sticky","label":"吸顶容器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-sticky.png","properties":[{"key":"container","type":["String"],"desc":"函数返回容器对应的 NodesRef 节点,将对应节点指定为组件的外部容器,滚动时组件会始终保持在容器范围内,当组件即将超出容器底部时,会返回原位置。","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"offsetTop","type":["String","Number"],"desc":"吸顶时与顶部的距离,单位`px`","label":""},{"key":"zIndex","type":["Number"],"desc":"吸顶时的 z-index","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:scroll","desc":"滚动时触发,scrollTop: 距离顶部位置,isFixed: 是否吸顶","label":""}],"tpl":"","path":"./sticky/sticky"},"t-swipe-cell":{"key":"t-swipe-cell","label":"滑动操作","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-swipecell.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用滑动","label":""},{"key":"expanded","type":["String"],"desc":"操作项是否呈现为打开态","label":""},{"key":"left","type":["Array"],"desc":"左侧滑动操作项。所有行为同 `right`","label":""},{"key":"right","type":["Array"],"desc":"右侧滑动操作项。有两种定义方式,一种是使用数组,二种是使用插槽。`right.text` 表示操作文本,`right.className` 表示操作项类名,`right.style` 表示操作项样式,`right.onClick` 表示点击操作项后执行的回调函数。示例:`[{ text: '删除', style: 'background-color: red', onClick: () => {} }]`","label":""}],"events":[{"key":"bind:click","desc":"操作项点击时触发(插槽写法组件不触发,业务侧自定义内容和事件)","label":""}],"tpl":"删除","require":{"t-cell":"./cell/cell"},"path":"./swipe-cell/swipe-cell"},"t-swiper":{"key":"t-swiper","label":"轮播","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-swiper.png","properties":[{"key":"animation","type":["String"],"desc":"轮播切换动画效果类型","label":""},{"key":"autoplay","type":["Boolean"],"desc":"是否自动播放","label":""},{"key":"current","type":["Number"],"desc":"当前轮播在哪一项(下标)","label":""},{"key":"direction","type":["String"],"desc":"轮播滑动方向,包括横向滑动和纵向滑动两个方向","label":""},{"key":"duration","type":["Number"],"desc":"滑动动画时长","label":""},{"key":"height","type":["Number"],"desc":"当使用垂直方向滚动时的高度","label":""},{"key":"interval","type":["Number"],"desc":"轮播间隔时间","label":""},{"key":"loop","type":["Boolean"],"desc":"是否循环播放","label":""},{"key":"navigation","type":["Object"],"desc":"导航器全部配置","label":""}],"events":[{"key":"bind:change","desc":"轮播切换时触发","label":""}],"tpl":"","require":{"t-swiper-item":"./swiper/swiper-item"},"path":"./swiper/swiper"},"t-switch":{"key":"t-switch","label":"开关","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-switch.png","properties":[{"key":"colors","type":["Array"],"desc":"自定义颜色,[打开时的颜色,关闭时的颜色]。组件默认颜色为 ['#0052d9', 'rgba(0, 0, 0, .26']。示例:[blue, gray]","label":""},{"key":"customValue","type":["Array"],"desc":"开关内容,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"label","type":["String"],"desc":"开关的标签","label":""},{"key":"loading","type":["Boolean"],"desc":"是否处于加载中状态","label":""},{"key":"size","type":["String"],"desc":"开关尺寸","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"开关值","label":""}],"events":[{"key":"bind:change","desc":"数据发生变化时触发","label":""}],"tpl":"","path":"./switch/switch"},"t-tab-bar-item":{"key":"t-tab-bar-item","label":"标签栏选项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabbar.png","properties":[{"key":"badgeProps","type":["Object"],"desc":"图标右上角提示信息","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"subTabBar","type":["Array"],"desc":"二级菜单","label":""},{"key":"value","type":["String","Number"],"desc":"标识符","label":""}],"tpl":"{{item.label}}","path":"./tab-bar-item/tab-bar-item"},"t-tab-bar":{"key":"t-tab-bar","label":"标签栏","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabbar.png","properties":[{"key":"bordered","type":["Boolean"],"desc":"是否显示外边框","label":""},{"key":"color","type":["Array"],"desc":"标签颜色设置。示例:[选中标签的颜色, 未选中的标签颜色]","label":""},{"key":"fixed","type":["Boolean"],"desc":"是否固定在底部","label":""},{"key":"safeAreaInsetBottom","type":["Boolean"],"desc":"是否为 iPhoneX 留出底部安全距离","label":""},{"key":"split","type":["Boolean"],"desc":"是否需要分割线","label":""},{"key":"value","type":["String","Number","Array"],"desc":"当前选中标签的索引","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:change","desc":"选中标签切换时触发","label":""}],"tpl":"{{item.label}}","require":{"t-tab-bar-item":"./tab-bar-item/tab-bar-item"},"path":"./tab-bar/tab-bar"},"t-tab-panel":{"key":"t-tab-panel","label":"选项卡面板","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabs.png","properties":[{"key":"destroyOnHide","type":["Boolean"],"desc":"选项卡内容隐藏时是否销毁","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用当前选项卡","label":""},{"key":"label","type":["String"],"desc":"选项卡名称","label":""},{"key":"panel","type":["String"],"desc":"用于自定义选项卡面板内容","label":""},{"key":"value","type":["String","Number"],"desc":"选项卡的值,唯一标识","label":""}],"tpl":"标签一内容","path":"./tab-panel/tab-panel"},"t-tabs":{"key":"t-tabs","label":"选项卡","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabs.png","properties":[{"key":"animation","type":["Object"],"desc":"动画效果设置。其中 duration 表示动画时长","label":""},{"key":"placement","type":["String"],"desc":"选项卡位置","label":""},{"key":"showBottomLine","type":["Boolean"],"desc":"是否展示底部激活线条","label":""},{"key":"stickyProps","type":["Object"],"desc":"是否支持吸顶","label":""},{"key":"value","type":["String","Number"],"desc":"激活的选项卡值","label":""}],"externalClasses":["t-class","t-class-item","t-class-active","t-class-track"],"events":[{"key":"bind:change","desc":"激活的选项卡发生变化时触发","label":""}],"tpl":"标签一内容标签二内容","require":{"t-tab-panel":"./tab-panel/tab-panel"},"path":"./tabs/tabs"},"t-tag":{"key":"t-tag","label":"标签","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tag.png","properties":[{"key":"closable","type":["Boolean"],"desc":"标签是否可关闭","label":""},{"key":"disabled","type":["Boolean"],"desc":"标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态","label":""},{"key":"icon","type":["String"],"desc":"标签中的图标,可自定义图标呈现","label":""},{"key":"maxWidth","type":["String","Number"],"desc":"标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80","label":""},{"key":"shape","type":["String"],"desc":"标签类型,有三种:方形、圆角方形、标记型","label":""},{"key":"size","type":["String"],"desc":"标签尺寸","label":""},{"key":"theme","type":["String"],"desc":"组件风格,用于描述组件不同的应用场景","label":""},{"key":"variant","type":["String"],"desc":"标签风格变体","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:click","desc":"点击时触发","label":""},{"key":"bind:close","desc":"如果关闭按钮存在,点击关闭按钮时触发","label":""}],"tpl":"重要","path":"./tag/tag"},"t-textarea":{"key":"t-textarea","label":"文本输入框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-textarea.png","properties":[{"key":"adjustPosition","type":["Boolean"],"desc":"键盘弹起时,是否自动上推页面","label":""},{"key":"autofocus","type":["Boolean"],"desc":"自动聚焦,拉起键盘","label":""},{"key":"autosize","type":["Boolean"],"desc":"是否自动增高,值为 autosize 时,style.height 不生效","label":""},{"key":"confirmHold","type":["Boolean"],"desc":"点击键盘右下角按钮时是否保持键盘不收起点","label":""},{"key":"confirmType","type":["String"],"desc":"设置键盘右下角按钮的文字,仅在 type='text'时生效","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用文本框","label":""},{"key":"focus","type":["Boolean"],"desc":"自动聚焦","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"maxcharacter","type":["Number"],"desc":"用户最多可以输入的字符个数,一个中文汉字表示两个字符长度","label":""},{"key":"maxlength","type":["Number"],"desc":"用户最多可以输入的字符个数","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"value","type":["String"],"desc":"文本框值","label":""}],"externalClasses":["t-class","t-class-textarea","t-class-placeholder","t-class-name"],"events":[{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"输入内容变化时触发","label":""},{"key":"bind:enter","desc":"点击完成时触发","label":""},{"key":"bind:focus","desc":"获得焦点时触发","label":""},{"key":"bind:line-change","desc":"行高发生变化时触发","label":""}],"tpl":"","path":"./textarea/textarea"},"t-toast":{"key":"t-toast","label":"轻提示","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-toast.png","properties":[{"key":"direction","type":["String"],"desc":"图标排列方式","label":""},{"key":"duration","type":["Number"],"desc":"弹窗显示毫秒数","label":""},{"key":"icon","type":["String"],"desc":"自定义图标","label":""},{"key":"message","type":["String"],"desc":"弹窗显示文字","label":""},{"key":"overlayProps","type":["Object"],"desc":"遮罩层属性,透传至 Overlay","label":""},{"key":"placement","type":["String"],"desc":"弹窗展示位置","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透,即不允许点击和滚动","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"theme","type":["String"],"desc":"提示类型","label":""}],"externalClasses":["t-class"],"tpl":"","path":"./toast/toast"},"t-transition":{"key":"t-transition","label":"动画","icon":"","properties":[{"key":"appear","type":["Boolean"],"desc":"首次出现是否展示动画","label":""},{"key":"customClass","type":["String"],"desc":"自定义容器类名","label":""},{"key":"destoryOnClose","type":["Boolean"],"desc":"隐藏时是否销毁内容","label":""},{"key":"duration","type":["Number"],"desc":"指定过渡时间","label":""},{"key":"name","type":["String"],"desc":"过渡类名","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"tpl":"","path":"./transition/transition"},"t-upload":{"key":"t-upload","label":"上传","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-upload.png","properties":[{"key":"addContent","type":["String"],"desc":"添加按钮内容。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"allowUploadDuplicateFile","type":["Boolean"],"desc":"是否允许重复上传相同文件名的文件","label":""},{"key":"config","type":["Object"],"desc":"图片上传配置,视频上传配置,文件上传配置等,包含图片尺寸、图片来源、视频来源、视频拍摄最长时间等。更多细节查看小程序官网。[图片上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)。[视频上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html)","label":""},{"key":"deleteBtn","type":["String"],"desc":"删除图标。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"fileListDisplay","type":["String"],"desc":"用于完全自定义文件列表内容","label":""},{"key":"files","type":["Array"],"desc":"已上传文件列表","label":""},{"key":"gridConfig","type":["Object"],"desc":"upload组件每行上传图片列数以及图片的宽度和高度","label":""},{"key":"gutter","type":["Number"],"desc":"预览窗格的 `gutter` 大小,单位 rpx","label":""},{"key":"imageProps","type":["Object"],"desc":"透传 Image 组件全部属性","label":""},{"key":"max","type":["Number"],"desc":"用于控制文件上传数量,值为 0 则不限制","label":""},{"key":"mediaType","type":["Array"],"desc":"支持上传的文件类型,图片或视频","label":""},{"key":"requestMethod","type":["String"],"desc":"自定义上传方法","label":""},{"key":"sizeLimit","type":["Number","Object"],"desc":"图片文件大小限制,单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }`","label":""}],"events":[{"key":"bind:add","desc":"上传成功后触发,仅包含本次选择的照片;`url` 表示选定视频的临时文件路径 (本地路径)。`duration` 表示选定视频的时间长度。`size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""},{"key":"bind:complete","desc":"上传成功或失败后触发","label":""},{"key":"bind:fail","desc":"上传失败后触发","label":""},{"key":"bind:remove","desc":"移除文件时触发","label":""},{"key":"bind:select-change","desc":"选择文件或图片之后,上传之前,触发该事件。
`files` 表示之前已经上传完成的文件列表。
`currentSelectedFiles` 表示本次上传选中的文件列表","label":""},{"key":"bind:success","desc":"上传成功后触发,包含所有上传的文件;`url` 表示选定视频的临时文件路径 (本地路径)。`duration` 表示选定视频的时间长度。`size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""}],"tpl":"","path":"./upload/upload"}},"common":{"properties":{},"events":{}},"menu":[{"key":"menu-basic","label":"基础","submenu":[{"key":"subMenu-button","label":"Button 按钮","components":["t-button"]},{"key":"subMenu-divider","label":"Divider 分割线","components":["t-divider"]},{"key":"subMenu-fab","label":"Fab 悬浮按钮","components":["t-fab"]},{"key":"subMenu-icon","label":"Icon 图标","components":["t-icon"]}]},{"key":"menu-nav","label":"导航","submenu":[{"key":"subMenu-drawer","label":"Drawer 抽屉","components":["t-drawer"]},{"key":"subMenu-indexes","label":"Indexes 索引","components":["t-indexes"]},{"key":"subMenu-navbar","label":"Navbar 导航条","components":["t-navbar"]},{"key":"subMenu-steps","label":"Steps 步骤条","components":["t-steps"]},{"key":"subMenu-tabbar","label":"TabBar 标签栏","components":["t-tab-bar"]},{"key":"subMenu-tabs","label":"Tabs 选项卡","components":["t-tabs"]}]},{"key":"menu-input","label":"输入","submenu":[{"key":"subMenu-checkbox","label":"CheckBox 复选框","components":["t-checkbox"]},{"key":"subMenu-dateTimePicker","label":"DateTimePicker 时间选择器","components":["t-date-time-picker"]},{"key":"subMenu-input","label":"Input 输入框","components":["t-input"]},{"key":"subMenu-picker","label":"Picker 选择器","components":["t-picker"]},{"key":"subMenu-radio","label":"Radio 单选框","components":["t-radio"]},{"key":"subMenu-rate","label":"Rate 评分","components":["t-rate"]},{"key":"subMenu-search","label":"Search 搜索框","components":["t-search"]},{"key":"subMenu-slider","label":"Slider 滑动选择器","components":["t-slider"]},{"key":"subMenu-stepper","label":"Stepper 步进器","components":["t-stepper"]},{"key":"subMenu-switch","label":"Switch 开关","components":["t-switch"]},{"key":"subMenu-textarea","label":"Textarea 多行文本框","components":["t-textarea"]},{"key":"subMenu-upload","label":"UpLoad 上传","components":["t-upload"]}]},{"key":"menu-data","label":"数据展示","submenu":[{"key":"subMenu-avatar","label":"Avatar 头像","components":["t-avatar"]},{"key":"subMenu-badge","label":"Badge 徽标","components":["t-badge"]},{"key":"subMenu-cell","label":"Cell 单元格","components":["t-cell"]},{"key":"subMenu-collapse","label":"Collapse 折叠面板","components":["t-collapse"]},{"key":"subMenu-dropdown-menu","label":"DropdownMenu 下拉菜单","components":["t-dropdown-menu"]},{"key":"subMenu-empty","label":"Empty 空状态","components":["t-empty"]},{"key":"subMenu-footer","label":"Footer 页脚","components":["t-footer"]},{"key":"subMenu-grid","label":"Grid 宫格","components":["t-grid"]},{"key":"subMenu-image","label":"Image 图片","components":["t-image"]},{"key":"subMenu-skeleton","label":"Skeleton 骨架屏","components":["t-skeleton"]},{"key":"subMenu-sticky","label":"Sticky 吸顶容器","components":["t-sticky"]},{"key":"subMenu-swiper","label":"Swiper 轮播图","components":["t-swiper"]},{"key":"subMenu-tag","label":"Tag 标签","components":["t-tag"]}]},{"key":"menu-info","label":"消息提醒","submenu":[{"key":"subMenu-actionsheet","label":"ActionSheet 动作面板","components":["t-action-sheet"]},{"key":"subMenu-back-top","label":"BackTop 返回顶部","components":["t-back-top"]},{"key":"subMenu-dialog","label":"Dialog 弹出框","components":["t-dialog"]},{"key":"subMenu-loading","label":"Loading 加载","components":["t-loading"]},{"key":"subMenu-message","label":"Message 消息通知","components":["t-message"]},{"key":"subMenu-popup","label":"Popup 弹出层","components":["t-popup"]},{"key":"subMenu-progress","label":"Progress 进度条","components":["t-progress"]},{"key":"subMenu-pullDownRefresh","label":"PullDownRefresh 下拉刷新","components":["t-pull-down-refresh"]},{"key":"subMenu-swipeCell","label":"SwipeCell 滑动操作","components":["t-swipe-cell"]},{"key":"subMenu-toast","label":"Toast 轻提示","components":["t-toast"]}]}]}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts
new file mode 100644
index 0000000..02e0cf5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts
@@ -0,0 +1,85 @@
+import { SuperComponent } from '../common/src/index';
+export default class ActionSheet extends SuperComponent {
+ static show: (options: import("./show").ActionSheetShowOption) => WechatMiniprogram.Component.TrivialInstance;
+ behaviors: string[];
+ externalClasses: string[];
+ properties: {
+ align?: {
+ type: StringConstructor;
+ value?: "left" | "center";
+ };
+ cancelText?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ count?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ items: {
+ type: ArrayConstructor;
+ value?: (string | import("./type").ActionSheetItem)[];
+ required?: boolean;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: import("../popup").TdPopupProps;
+ };
+ showCancel?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: "list" | "grid";
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ gridThemeItems: any[];
+ currentSwiperIndex: number;
+ defaultPopUpProps: {};
+ defaultPopUpzIndex: number;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'visible, items'(visible: boolean): void;
+ };
+ methods: {
+ init(): void;
+ memoInitialData(): void;
+ splitGridThemeActions(): void;
+ show(options: any): void;
+ close(): void;
+ onPopupVisibleChange({ detail }: {
+ detail: any;
+ }): void;
+ onSwiperChange(e: WechatMiniprogram.TouchEvent): void;
+ onSelect(event: WechatMiniprogram.TouchEvent): void;
+ onCancel(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js
new file mode 100644
index 0000000..c40d3c7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{chunk}from"../common/utils";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{ActionSheetTheme,show}from"./show";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-action-sheet`;let ActionSheet=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-cancel`],this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,gridThemeItems:[],currentSwiperIndex:0,defaultPopUpProps:{},defaultPopUpzIndex:11500},this.controlledProps=[{key:"visible",event:"visible-change"}],this.observers={"visible, items"(e){e&&this.init()}},this.methods={init(){this.memoInitialData(),this.splitGridThemeActions()},memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)},splitGridThemeActions(){this.data.theme===ActionSheetTheme.Grid&&this.setData({gridThemeItems:chunk(this.data.items,this.data.count)})},show(e){this.setData(Object.assign(Object.assign(Object.assign({},this.initialData),e),{visible:!0})),this.splitGridThemeActions(),this.autoClose=!0,this._trigger("visible-change",{visible:!0})},close(){this.triggerEvent("close",{trigger:"command"}),this._trigger("visible-change",{visible:!1})},onPopupVisibleChange({detail:e}){e.visible||(this.triggerEvent("close",{trigger:"overlay"}),this._trigger("visible-change",{visible:!1})),this.autoClose&&(this.setData({visible:!1}),this.autoClose=!1)},onSwiperChange(e){const{current:t}=e.detail;this.setData({currentSwiperIndex:t})},onSelect(e){const{currentSwiperIndex:t,items:i,gridThemeItems:s,count:o,theme:r}=this.data,{index:n}=e.currentTarget.dataset,a=r===ActionSheetTheme.Grid,h=a?s[t][n]:i[n],c=a?n+t*o:n;h&&(this.triggerEvent("selected",{selected:h,index:c}),h.disabled||(this.triggerEvent("close",{trigger:"select"}),this._trigger("visible-change",{visible:!1})))},onCancel(){this.triggerEvent("cancel"),this.autoClose&&(this.setData({visible:!1}),this.autoClose=!1)}}}};ActionSheet.show=show,ActionSheet=__decorate([wxComponent()],ActionSheet);export default ActionSheet;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json
new file mode 100644
index 0000000..ca2efb1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-popup":"../popup/popup","t-grid":"../grid/grid","t-grid-item":"../grid-item/grid-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml
new file mode 100644
index 0000000..cabb001
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml
@@ -0,0 +1 @@
+{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxs b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxs
new file mode 100644
index 0000000..af7a695
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxs
@@ -0,0 +1,19 @@
+var getListThemeItemClass = function (props) {
+ var classPrefix = props.classPrefix;
+ var item = props.item;
+ var prefix = props.prefix;
+ var classList = [classPrefix + '__list-item'];
+ if (item.disabled) {
+ classList.push(prefix + '-is-disabled');
+ }
+ return classList.join(' ');
+};
+
+var isImage = function (name) {
+ return name.indexOf('/') !== -1;
+};
+
+module.exports = {
+ getListThemeItemClass: getListThemeItemClass,
+ isImage: isImage,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxss b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxss
new file mode 100644
index 0000000..e9cc05f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-action-sheet__content{color:var(--td-action-sheet-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-top-left-radius:var(--td-action-sheet-border-radius,var(--td-radius-extra-large,24rpx));border-top-right-radius:var(--td-action-sheet-border-radius,var(--td-radius-extra-large,24rpx));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));overflow:hidden}.t-action-sheet__content--grid{padding-top:16rpx}.t-action-sheet__content:focus{outline:0}.t-action-sheet__grid{padding-bottom:16rpx}.t-action-sheet__grid--swiper{padding-bottom:48rpx}.t-action-sheet__description{color:var(--td-action-sheet-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));line-height:44rpx;font-size:28rpx;text-align:var(--td-action-sheet-text-align,center);padding:24rpx 32rpx;position:relative}.t-action-sheet__description:focus{outline:0}.t-action-sheet__description::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-action-sheet-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-action-sheet__description::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-action-sheet__description--left{text-align:left}.t-action-sheet__description--left::after{left:32rpx}.t-action-sheet__list-item{display:flex;align-items:center;justify-content:center;position:relative;height:var(--td-action-sheet-list-item-height,112rpx);padding:0 32rpx}.t-action-sheet__list-item::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-action-sheet-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-action-sheet__list-item::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-action-sheet__list-item:focus{outline:0}.t-action-sheet__list-item--left{justify-content:start}.t-action-sheet__list-item--left::after{left:32rpx}.t-action-sheet__list-item--disabled{color:var(--td-action-sheet-list-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-action-sheet__list-item-text{font-size:var(--td-font-size-m,32rpx);word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-action-sheet__list-item-icon{margin-right:16rpx}.t-action-sheet__list-item-icon--suffix{margin-left:auto}.t-action-sheet__swiper-wrap{margin-top:8rpx;position:relative}.t-action-sheet__footer{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-action-sheet__gap-list{height:16rpx;background-color:var(--td-action-sheet-gap-color,var(--td-bg-color-page,var(--td-gray-color-1,#f3f3f3)))}.t-action-sheet__gap-grid{height:1rpx;background-color:var(--td-action-sheet-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-action-sheet__cancel{display:flex;align-items:center;justify-content:center;color:var(--td-action-sheet-cancel-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));height:var(--td-action-sheet-cancel-height,96rpx)}.t-action-sheet__dots{position:absolute;left:50%;bottom:32rpx;transform:translateX(-50%);display:flex;flex-direction:row}.t-action-sheet__dots-item{width:16rpx;height:16rpx;background-color:#dcdcdc;border-radius:50%;margin:0 16rpx;transition:all .4s ease-in}.t-action-sheet__dots-item.t-is-active{background-color:#0052d9}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/index.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.d.ts
new file mode 100644
index 0000000..5c41389
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.d.ts
@@ -0,0 +1,8 @@
+///
+import { ActionSheetItem, ActionSheetTheme, ActionSheetShowOption } from './show';
+export { ActionSheetItem, ActionSheetTheme, ActionSheetShowOption };
+declare const _default: {
+ show(options: ActionSheetShowOption): WechatMiniprogram.Component.TrivialInstance;
+ close(options: ActionSheetShowOption): void;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/index.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.js
new file mode 100644
index 0000000..61d7ee7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.js
@@ -0,0 +1 @@
+import{show,close,ActionSheetTheme}from"./show";export{ActionSheetTheme};export default{show:e=>show(e),close:e=>close(e)};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/props.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.d.ts
new file mode 100644
index 0000000..0fff787
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.d.ts
@@ -0,0 +1,3 @@
+import { TdActionSheetProps } from './type';
+declare const props: TdActionSheetProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/props.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.js
new file mode 100644
index 0000000..25c1215
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"center"},cancelText:{type:String,value:""},count:{type:Number,value:8},description:{type:String,value:""},items:{type:Array,required:!0},popupProps:{type:Object,value:{}},showCancel:{type:Boolean,value:!0},showOverlay:{type:Boolean,value:!0},theme:{type:String,value:"list"},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/show.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.d.ts
new file mode 100644
index 0000000..7076439
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.d.ts
@@ -0,0 +1,26 @@
+///
+///
+import { ActionSheetItem } from './type';
+export { ActionSheetItem };
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+export declare enum ActionSheetTheme {
+ List = "list",
+ Grid = "grid"
+}
+interface ActionSheetProps {
+ align: 'center' | 'left';
+ cancelText?: string;
+ count?: number;
+ description: string;
+ items: Array;
+ showCancel?: boolean;
+ theme?: ActionSheetTheme;
+ visible: boolean;
+ defaultVisible?: boolean;
+}
+export interface ActionSheetShowOption extends Omit {
+ context?: Context;
+ selector?: string;
+}
+export declare const show: (options: ActionSheetShowOption) => WechatMiniprogram.Component.TrivialInstance;
+export declare const close: (options: ActionSheetShowOption) => void;
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/show.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.js
new file mode 100644
index 0000000..36f15fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{getInstance}from"../common/utils";export var ActionSheetTheme;!function(t){t.List="list",t.Grid="grid"}(ActionSheetTheme||(ActionSheetTheme={}));export const show=function(t){const e=Object.assign({},t),{context:o,selector:n="#t-action-sheet"}=e,c=__rest(e,["context","selector"]),s=getInstance(o,n);if(s)return s.show(Object.assign({},c)),s;console.error("未找到组件,请确认 selector && context 是否正确")};export const close=function(t){const{context:e,selector:o="#t-action-sheet"}=Object.assign({},t),n=getInstance(e,o);n&&n.close()};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/template/grid.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/grid.wxml
new file mode 100644
index 0000000..29334a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/grid.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/template/list.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/list.wxml
new file mode 100644
index 0000000..a1e8bc9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/list.wxml
@@ -0,0 +1 @@
+{{item.label || item}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/type.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.d.ts
new file mode 100644
index 0000000..8eb7822
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.d.ts
@@ -0,0 +1,59 @@
+import { PopupProps } from '../popup/index';
+export interface TdActionSheetProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'center' | 'left';
+ };
+ cancelText?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ count?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ items: {
+ type: ArrayConstructor;
+ value?: Array;
+ required?: boolean;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ showCancel?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'list' | 'grid';
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export interface ActionSheetItem {
+ label: string;
+ color?: string;
+ disabled?: boolean;
+ icon?: string;
+ suffixIcon?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/type.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.d.ts
new file mode 100644
index 0000000..e131442
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class AvatarGroup extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdAvatarGroupProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ hasChild: boolean;
+ length: number;
+ className: string;
+ };
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ lifetimes: {
+ attached(): void;
+ ready(): void;
+ };
+ observers: {
+ 'cascading, size'(): void;
+ };
+ methods: {
+ setClass(): void;
+ handleMax(): void;
+ onCollapsedItemClick(e: WechatMiniprogram.CustomEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.js b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.js
new file mode 100644
index 0000000..1033214
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import avatarGroupProps from"./props";const{prefix:prefix}=config,name=`${prefix}-avatar-group`;let AvatarGroup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-image`],this.properties=avatarGroupProps,this.data={prefix:prefix,classPrefix:name,hasChild:!0,length:0,className:""},this.options={multipleSlots:!0},this.relations={"../avatar/avatar":{type:"descendant"}},this.lifetimes={attached(){this.setClass()},ready(){this.setData({length:this.$children.length}),this.handleMax()}},this.observers={"cascading, size"(){this.setClass()}},this.methods={setClass(){const{cascading:e,size:t}=this.properties,s=e.split("-")[0],a=[name,`${prefix}-class`,`${name}-offset-${s}`,`${name}-offset-${s}-${t.indexOf("px")>-1?"medium":t||"medium"}`];this.setData({className:a.join(" ")})},handleMax(){const{max:e}=this.data,t=this.$children.length;if(!e||e>t)return;this.$children.splice(e,t-e).forEach((e=>{e.hide()}))},onCollapsedItemClick(e){this.triggerEvent("collapsed-item-click",e.detail)}}}};AvatarGroup=__decorate([wxComponent()],AvatarGroup);export default AvatarGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.json b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.json
new file mode 100644
index 0000000..a51c00f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"shared","usingComponents":{"t-avatar":"../avatar/avatar"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxml b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxml
new file mode 100644
index 0000000..95519ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxml
@@ -0,0 +1 @@
+{{collapseAvatar}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxss b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxss
new file mode 100644
index 0000000..3e354ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-avatar-group{display:inline-flex;flex-wrap:wrap;align-items:center}.t-avatar-group-offset-left .t-avatar__wrapper,.t-avatar-group-offset-right .t-avatar__wrapper{padding:var(--td-avatar-group-line-spacing,4rpx) 0}.t-avatar-group-offset-left-small,.t-avatar-group-offset-right-small{--td-avatar-margin-left:var(--td-avatar-group-margin-left-small, -16rpx)}.t-avatar-group-offset-left-medium,.t-avatar-group-offset-right-medium{--td-avatar-margin-left:var(--td-avatar-group-margin-left-medium, -16rpx)}.t-avatar-group-offset-left-large,.t-avatar-group-offset-right-large{--td-avatar-margin-left:var(--td-avatar-group-margin-left-large, -16rpx)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(1){z-index:calc(var(--td-avatar-group-init-z-index,50) - 1)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(2){z-index:calc(var(--td-avatar-group-init-z-index,50) - 2)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(3){z-index:calc(var(--td-avatar-group-init-z-index,50) - 3)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(4){z-index:calc(var(--td-avatar-group-init-z-index,50) - 4)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(5){z-index:calc(var(--td-avatar-group-init-z-index,50) - 5)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(6){z-index:calc(var(--td-avatar-group-init-z-index,50) - 6)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(7){z-index:calc(var(--td-avatar-group-init-z-index,50) - 7)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(8){z-index:calc(var(--td-avatar-group-init-z-index,50) - 8)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(9){z-index:calc(var(--td-avatar-group-init-z-index,50) - 9)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(10){z-index:calc(var(--td-avatar-group-init-z-index,50) - 10)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(11){z-index:calc(var(--td-avatar-group-init-z-index,50) - 11)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(12){z-index:calc(var(--td-avatar-group-init-z-index,50) - 12)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(13){z-index:calc(var(--td-avatar-group-init-z-index,50) - 13)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(14){z-index:calc(var(--td-avatar-group-init-z-index,50) - 14)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(15){z-index:calc(var(--td-avatar-group-init-z-index,50) - 15)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(16){z-index:calc(var(--td-avatar-group-init-z-index,50) - 16)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(17){z-index:calc(var(--td-avatar-group-init-z-index,50) - 17)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(18){z-index:calc(var(--td-avatar-group-init-z-index,50) - 18)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(19){z-index:calc(var(--td-avatar-group-init-z-index,50) - 19)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(20){z-index:calc(var(--td-avatar-group-init-z-index,50) - 20)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(21){z-index:calc(var(--td-avatar-group-init-z-index,50) - 21)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(22){z-index:calc(var(--td-avatar-group-init-z-index,50) - 22)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(23){z-index:calc(var(--td-avatar-group-init-z-index,50) - 23)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(24){z-index:calc(var(--td-avatar-group-init-z-index,50) - 24)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(25){z-index:calc(var(--td-avatar-group-init-z-index,50) - 25)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(26){z-index:calc(var(--td-avatar-group-init-z-index,50) - 26)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(27){z-index:calc(var(--td-avatar-group-init-z-index,50) - 27)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(28){z-index:calc(var(--td-avatar-group-init-z-index,50) - 28)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(29){z-index:calc(var(--td-avatar-group-init-z-index,50) - 29)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(30){z-index:calc(var(--td-avatar-group-init-z-index,50) - 30)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(31){z-index:calc(var(--td-avatar-group-init-z-index,50) - 31)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(32){z-index:calc(var(--td-avatar-group-init-z-index,50) - 32)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(33){z-index:calc(var(--td-avatar-group-init-z-index,50) - 33)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(34){z-index:calc(var(--td-avatar-group-init-z-index,50) - 34)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(35){z-index:calc(var(--td-avatar-group-init-z-index,50) - 35)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(36){z-index:calc(var(--td-avatar-group-init-z-index,50) - 36)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(37){z-index:calc(var(--td-avatar-group-init-z-index,50) - 37)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(38){z-index:calc(var(--td-avatar-group-init-z-index,50) - 38)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(39){z-index:calc(var(--td-avatar-group-init-z-index,50) - 39)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(40){z-index:calc(var(--td-avatar-group-init-z-index,50) - 40)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(41){z-index:calc(var(--td-avatar-group-init-z-index,50) - 41)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(42){z-index:calc(var(--td-avatar-group-init-z-index,50) - 42)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(43){z-index:calc(var(--td-avatar-group-init-z-index,50) - 43)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(44){z-index:calc(var(--td-avatar-group-init-z-index,50) - 44)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(45){z-index:calc(var(--td-avatar-group-init-z-index,50) - 45)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(46){z-index:calc(var(--td-avatar-group-init-z-index,50) - 46)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(47){z-index:calc(var(--td-avatar-group-init-z-index,50) - 47)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(48){z-index:calc(var(--td-avatar-group-init-z-index,50) - 48)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(49){z-index:calc(var(--td-avatar-group-init-z-index,50) - 49)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(50){z-index:calc(var(--td-avatar-group-init-z-index,50) - 50)}.t-avatar-group__collapse--default,.t-avatar-group__collapse--slot{z-index:0;font-weight:600}.t-avatar-group__collapse--slot{float:left}.t-avatar-group__collapse--slot:not(:empty)+.t-avatar-group__collapse--default{display:none;float:left}.t-avatar-group__collapse--slot:empty+.t-avatar-group__collapse--default{display:block;float:left}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.d.ts
new file mode 100644
index 0000000..892b866
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdAvatarGroupProps } from './type';
+declare const props: TdAvatarGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/props.js b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.js
new file mode 100644
index 0000000..b7a3a48
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.js
@@ -0,0 +1 @@
+const props={cascading:{type:String,value:"left-up"},collapseAvatar:{type:String},max:{type:Number},shape:{type:String},size:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.d.ts
new file mode 100644
index 0000000..7f233f4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.d.ts
@@ -0,0 +1,24 @@
+import { ShapeEnum } from '../common/common';
+export interface TdAvatarGroupProps {
+ cascading?: {
+ type: StringConstructor;
+ value?: CascadingValue;
+ };
+ collapseAvatar?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: ShapeEnum;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export declare type CascadingValue = 'left-up' | 'right-up';
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/type.js b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.d.ts
new file mode 100644
index 0000000..4ecd9f6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.d.ts
@@ -0,0 +1,22 @@
+///
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Avatar extends SuperComponent {
+ options: WechatMiniprogram.Component.ComponentOptions;
+ externalClasses: string[];
+ properties: import("./type").TdAvatarProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ isShow: boolean;
+ zIndex: number;
+ systemInfo: WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
+ };
+ relations: RelationsOptions;
+ observers: {
+ icon(icon: any): void;
+ };
+ methods: {
+ hide(): void;
+ onLoadError(e: WechatMiniprogram.CustomEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.js b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.js
new file mode 100644
index 0000000..44d3c60
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import avatarProps from"./props";import{setIcon,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-avatar`;let Avatar=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-image`,`${prefix}-class-icon`,`${prefix}-class-alt`,`${prefix}-class-content`],this.properties=avatarProps,this.data={prefix:prefix,classPrefix:name,isShow:!0,zIndex:0,systemInfo:systemInfo},this.relations={"../avatar-group/avatar-group":{type:"ancestor",linked(t){this.parent=t,this.setData({shape:this.data.shape||t.data.shape||"circle",size:this.data.size||t.data.size,bordered:!0})}}},this.observers={icon(t){const s=setIcon("icon",t,"");this.setData(Object.assign({},s))}},this.methods={hide(){this.setData({isShow:!1})},onLoadError(t){this.properties.hideOnLoadFailed&&this.setData({isShow:!1}),this.triggerEvent("error",t.detail)}}}};Avatar=__decorate([wxComponent()],Avatar);export default Avatar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.json b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.json
new file mode 100644
index 0000000..0bc94ec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"shared","usingComponents":{"t-icon":"../icon/icon","t-badge":"../badge/badge","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxml b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxml
new file mode 100644
index 0000000..38f77b0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxs b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxs
new file mode 100644
index 0000000..240a956
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxs
@@ -0,0 +1,30 @@
+module.exports = {
+ getClass: function (classPrefix, size, shape, bordered) {
+ var hasPx = (size || '').indexOf('px') > -1;
+ var borderSize = hasPx ? 'medium' : size;
+ var classNames = [
+ classPrefix,
+ classPrefix + (shape === 'round' ? '--round' : '--circle'),
+ bordered ? classPrefix + '--border' + ' ' + classPrefix + '--border-' + borderSize : '',
+ hasPx ? '' : classPrefix + '--' + size,
+ ];
+ return classNames.join(' ');
+ },
+
+ getSize: function (size = 'medium', systemInfo) {
+ var res = getRegExp('^([0-9]+)(px|rpx)$').exec(size);
+
+ if (res && res.length >= 3) {
+ var px = res[1];
+ if (res[2] === 'rpx') {
+ px = Math.floor((systemInfo.windowWidth * res[1]) / 750);
+ }
+
+ return 'width:' + size + ';height:' + size + ';font-size:' + ((px / 8) * 3 + 2) + 'px';
+ }
+ },
+
+ getStyles: function (isShow) {
+ return isShow ? '' : 'display: none;';
+ },
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxss b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxss
new file mode 100644
index 0000000..1d11ffc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-avatar{display:flex;align-items:center;justify-content:center;box-sizing:border-box;background-color:var(--td-avatar-bg-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)));color:var(--td-avatar-content-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-avatar__wrapper{display:inline-flex;position:relative;vertical-align:top;margin-left:var(--td-avatar-margin-left,0)}.t-avatar--large{width:var(--td-avatar-large-width,128rpx);height:var(--td-avatar-large-width,128rpx);font-size:var(--td-avatar-text-large-font-size,var(--td-font-size-xl,40rpx))}.t-avatar--large .t-avatar__icon{font-size:var(--td-avatar-icon-large-font-size,64rpx)}.t-avatar--medium{width:var(--td-avatar-medium-width,96rpx);height:var(--td-avatar-medium-width,96rpx);font-size:var(--td-avatar-text-medium-font-size,var(--td-font-size-m,32rpx))}.t-avatar--medium .t-avatar__icon{font-size:var(--td-avatar-icon-medium-font-size,48rpx)}.t-avatar--small{width:var(--td-avatar-small-width,80rpx);height:var(--td-avatar-small-width,80rpx);font-size:var(--td-avatar-text-small-font-size,var(--td-font-size-base,28rpx))}.t-avatar--small .t-avatar__icon{font-size:var(--td-avatar-icon-small-font-size,40rpx)}.t-avatar .t-image,.t-avatar__image{width:100%;height:100%}.t-avatar--circle{border-radius:var(--td-avatar-circle-border-radius,var(--td-radius-circle,50%));overflow:hidden}.t-avatar--round{border-radius:var(--td-avatar-round-border-radius,var(--td-radius-default,12rpx));overflow:hidden}.t-avatar__icon,.t-avatar__text{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.t-avatar__icon:empty,.t-avatar__text:empty{width:0;height:0}.t-avatar--border{border-color:var(--td-avatar-border-color,#fff);border-style:solid}.t-avatar--border-small{border-width:var(--td-avatar-border-width-small,2rpx)}.t-avatar--border-medium{border-width:var(--td-avatar-border-width-medium,4rpx)}.t-avatar--border-large{border-width:var(--td-avatar-border-width-large,6rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar/props.d.ts
new file mode 100644
index 0000000..f3e7907
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdAvatarProps } from './type';
+declare const props: TdAvatarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/props.js b/miniprogram_npm/tdesign-miniprogram/avatar/props.js
new file mode 100644
index 0000000..e586fb3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/props.js
@@ -0,0 +1 @@
+const props={alt:{type:String,value:""},badgeProps:{type:Object},bordered:{type:Boolean,value:!1},hideOnLoadFailed:{type:Boolean,value:!1},icon:{type:null},image:{type:String,value:""},imageProps:{type:Object},shape:{type:String},size:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar/type.d.ts
new file mode 100644
index 0000000..79cac9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/type.d.ts
@@ -0,0 +1,41 @@
+import { BadgeProps } from '../badge/index';
+import { ImageProps } from '../image/index';
+import { ShapeEnum } from '../common/common';
+export interface TdAvatarProps {
+ alt?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hideOnLoadFailed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: ImageProps;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: ShapeEnum;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/type.js b/miniprogram_npm/tdesign-miniprogram/avatar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/back-top.d.ts b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.d.ts
new file mode 100644
index 0000000..ced948c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.d.ts
@@ -0,0 +1,26 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class BackTop extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdBackTopProps;
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ _icon: any;
+ hidden: boolean;
+ };
+ observers: {
+ icon(): void;
+ scrollTop(value: number): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ setIcon(v: any): void;
+ toTop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/back-top.js b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.js
new file mode 100644
index 0000000..9a9becb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-back-top`;let BackTop=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-text`],this.options={multipleSlots:!0},this.properties=props,this.relations={"../pull-down-refresh/pull-down-refresh":{type:"ancestor"}},this.data={prefix:prefix,classPrefix:name,_icon:null,hidden:!0},this.observers={icon(){this.setIcon()},scrollTop(o){const{visibilityHeight:t}=this.properties;this.setData({hidden:o{{text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/back-top.wxss b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.wxss
new file mode 100644
index 0000000..eed10f4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-back-top{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:transparent;overflow:hidden;box-sizing:border-box;transition:height .2s;height:auto}.t-back-top--fixed{position:fixed;right:var(--td-spacer,16rpx);bottom:calc(var(--td-spacer-2,32rpx) + env(safe-area-inset-bottom))}.t-back-top--round,.t-back-top--round-dark{width:96rpx;height:96rpx;border-radius:var(--td-back-top-round-border-radius,var(--td-radius-circle,50%))}.t-back-top--half-round,.t-back-top--round{color:var(--td-back-top-round-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border:1rpx solid var(--td-back-top-round-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));background-color:var(--td-back-top-round-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-back-top--half-round-dark,.t-back-top--round-dark{color:var(--td-back-top-round-dark-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-back-top-round-dark-bg-color,var(--td-gray-color-13,#242424))}.t-back-top--half-round,.t-back-top--half-round-dark{width:120rpx;height:80rpx;border-radius:0;border-top-left-radius:var(--td-back-top-half-round-border-radius,var(--td-radius-round,999px));border-bottom-left-radius:var(--td-back-top-half-round-border-radius,var(--td-radius-round,999px));flex-direction:row;right:0}.t-back-top__text--half-round,.t-back-top__text--half-round-dark,.t-back-top__text--round,.t-back-top__text--round-dark{font-size:var(--td-font-size,20rpx);line-height:24rpx}.t-back-top__text--half-round,.t-back-top__text--half-round-dark{width:48rpx}.t-back-top__icon:not(:empty)+.t-back-top__text--half-round,.t-back-top__icon:not(:empty)+.t-back-top__text--half-round-dark{margin-left:8rpx}.t-back-top__icon{display:flex;justify-content:center;align-items:center;font-size:44rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/props.d.ts b/miniprogram_npm/tdesign-miniprogram/back-top/props.d.ts
new file mode 100644
index 0000000..5ac1e9f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/props.d.ts
@@ -0,0 +1,3 @@
+import { TdBackTopProps } from './type';
+declare const props: TdBackTopProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/props.js b/miniprogram_npm/tdesign-miniprogram/back-top/props.js
new file mode 100644
index 0000000..f1233c8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/props.js
@@ -0,0 +1 @@
+const props={fixed:{type:Boolean,value:!0},icon:{type:null,value:!0},scrollTop:{type:Number,value:0},style:{type:String,value:""},text:{type:String,value:""},theme:{type:String,value:"round"},visibilityHeight:{type:Number,value:200}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/type.d.ts b/miniprogram_npm/tdesign-miniprogram/back-top/type.d.ts
new file mode 100644
index 0000000..9071651
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdBackTopProps {
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ scrollTop?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'round' | 'half-round' | 'round-dark' | 'half-round-dark';
+ };
+ visibilityHeight?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/type.js b/miniprogram_npm/tdesign-miniprogram/back-top/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/badge.d.ts
new file mode 100644
index 0000000..2680a17
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdBadgeProps } from './type';
+export interface BadgeProps extends TdBadgeProps {
+}
+export default class Badge extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: TdBadgeProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ value: string;
+ labelID: string;
+ descriptionID: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.js b/miniprogram_npm/tdesign-miniprogram/badge/badge.js
new file mode 100644
index 0000000..90075aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{uniqueFactory}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-badge`,getUniqueID=uniqueFactory("badge");let Badge=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-count`,`${prefix}-class-content`],this.properties=props,this.data={prefix:prefix,classPrefix:name,value:"",labelID:"",descriptionID:""},this.lifetimes={ready(){const e=getUniqueID();this.setData({labelID:`${e}_label`,descriptionID:`${e}_description`})}}}};Badge=__decorate([wxComponent()],Badge);export default Badge;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.json b/miniprogram_npm/tdesign-miniprogram/badge/badge.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.wxml b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxml
new file mode 100644
index 0000000..81e7b25
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxml
@@ -0,0 +1 @@
+{{content}}{{ _this.getBadgeValue({dot, count, maxCount}) }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.wxs b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxs
new file mode 100644
index 0000000..613263c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxs
@@ -0,0 +1,71 @@
+var getBadgeValue = function (props) {
+ if (props.dot) {
+ return '';
+ }
+ if (isNaN(props.count) || isNaN(props.maxCount)) {
+ return props.count;
+ }
+ return parseInt(props.count) > props.maxCount ? props.maxCount + '+' : props.count;
+};
+
+var hasUnit = function (unit) {
+ return (
+ unit.indexOf('px') > 0 ||
+ unit.indexOf('rpx') > 0 ||
+ unit.indexOf('em') > 0 ||
+ unit.indexOf('rem') > 0 ||
+ unit.indexOf('%') > 0 ||
+ unit.indexOf('vh') > 0 ||
+ unit.indexOf('vm') > 0
+ );
+};
+
+var getBadgeStyles = function (props) {
+ var styleStr = '';
+ if (props.color) {
+ styleStr += 'background:' + props.color + ';';
+ }
+ if (props.offset[0]) {
+ styleStr +=
+ 'left: calc(100% + ' + (hasUnit(props.offset[0].toString()) ? props.offset[0] : props.offset[0] + 'px') + ');';
+ }
+ if (props.offset[1]) {
+ styleStr += 'top:' + (hasUnit(props.offset[1].toString()) ? props.offset[1] : props.offset[1] + 'px') + ';';
+ }
+ return styleStr;
+};
+
+var getBadgeOuterClass = function (props) {
+ var baseClass = 't-badge';
+ var classNames = [baseClass, props.shape === 'ribbon' ? baseClass + '__ribbon-outer' : ''];
+ return classNames.join(' ');
+};
+
+var getBadgeInnerClass = function (props) {
+ var baseClass = 't-badge';
+ var classNames = [
+ baseClass + '--basic',
+ props.dot ? baseClass + '--dot' : '',
+ baseClass + '--' + props.size,
+ baseClass + '--' + props.shape,
+ !props.dot && props.count ? baseClass + '--count' : '',
+ ];
+ return classNames.join(' ');
+};
+
+var isShowBadge = function (props) {
+ if (props.dot) {
+ return true;
+ }
+ if (!props.showZero && !isNaN(props.count) && parseInt(props.count) === 0) {
+ return false;
+ }
+ if (props.count == null) return false;
+ return true;
+};
+
+module.exports.getBadgeValue = getBadgeValue;
+module.exports.getBadgeStyles = getBadgeStyles;
+module.exports.getBadgeOuterClass = getBadgeOuterClass;
+module.exports.getBadgeInnerClass = getBadgeInnerClass;
+module.exports.isShowBadge = isShowBadge;
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.wxss b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxss
new file mode 100644
index 0000000..170baba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-badge{position:relative;display:inline-flex;align-items:start}.t-badge--basic{z-index:100;padding:0 var(--td-badge-basic-padding,8rpx);font-size:var(--td-badge-font-size,var(--td-font-size-xs,var(--td-font-size,20rpx)));color:var(--td-badge-text-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));text-align:center;height:var(--td-badge-basic-height,32rpx);line-height:var(--td-badge-basic-height,32rpx);font-weight:var(--td-badge-font-weight,600);border-radius:var(--td-badge-border-radius,4rpx)}.t-badge--dot{height:var(--td-badge-dot-size,16rpx);border-radius:50%;min-width:var(--td-badge-dot-size,16rpx);padding:0}.t-badge--count{min-width:var(--td-badge-basic-width,32rpx);white-space:nowrap;box-sizing:border-box}.t-badge--circle{border-radius:calc(var(--td-badge-basic-height,32rpx)/ 2)}.t-badge__ribbon-outer{position:absolute;top:0;right:0}.t-badge--ribbon{position:relative;display:inline-block;transform-origin:center center;transform:translate(calc(50% - var(--td-badge-basic-height,32rpx) + 1rpx),calc(-50% + var(--td-badge-basic-height,32rpx) - 1rpx)) rotate(45deg);border-radius:0}.t-badge--ribbon::after,.t-badge--ribbon::before{content:'';position:absolute;width:0;height:0;bottom:0;border-bottom:var(--td-badge-basic-height,32rpx) solid var(--td-badge-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));font-size:0}.t-badge--ribbon::before{left:calc(-1 * var(--td-badge-basic-height,32rpx) + 1rpx);border-left:var(--td-badge-basic-height,32rpx) solid transparent}.t-badge--ribbon::after{right:calc(-1 * var(--td-badge-basic-height,32rpx) + 1rpx);border-right:var(--td-badge-basic-height,32rpx) solid transparent}.t-badge--bubble{border-radius:var(--td-badge-bubble-border-radius,20rpx 20rpx 20rpx 1px)}.t-badge--large{font-size:var(--td-badge-large-font-size,var(--td-font-size-s,24rpx));height:var(--td-badge-large-height,40rpx);min-width:var(--td-badge-large-height,40rpx);line-height:var(--td-badge-large-height,40rpx);padding:0 var(--td-badge-large-padding,10rpx)}.t-badge--large.t-badge--circle{border-radius:calc(var(--td-badge-large-height,40rpx)/ 2)}.t-badge__content:not(:empty)+.t-has-count{transform-origin:center center;transform:translate(-50%,-50%);position:absolute;left:100%;top:0}.t-badge__content-text{display:block;line-height:48rpx;color:var(--td-badge-content-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/index.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/index.d.ts
new file mode 100644
index 0000000..85b119a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './badge';
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/index.js b/miniprogram_npm/tdesign-miniprogram/badge/index.js
new file mode 100644
index 0000000..0ab74dd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./badge";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/props.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/props.d.ts
new file mode 100644
index 0000000..e1702ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/props.d.ts
@@ -0,0 +1,3 @@
+import { TdBadgeProps } from './type';
+declare const props: TdBadgeProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/props.js b/miniprogram_npm/tdesign-miniprogram/badge/props.js
new file mode 100644
index 0000000..c470449
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/props.js
@@ -0,0 +1 @@
+const props={color:{type:String,value:""},content:{type:String,value:""},count:{type:null,value:0},dot:{type:Boolean,value:!1},externalClasses:{type:Array},maxCount:{type:Number,value:99},offset:{type:Array},shape:{type:String,value:"circle"},showZero:{type:Boolean,value:!1},size:{type:String,value:"medium"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/type.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/type.d.ts
new file mode 100644
index 0000000..2029271
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/type.d.ts
@@ -0,0 +1,42 @@
+export interface TdBadgeProps {
+ color?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ count?: {
+ type: null;
+ value?: string | number;
+ };
+ dot?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-content', 't-class-count'];
+ };
+ maxCount?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ offset?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'circle' | 'square' | 'bubble' | 'ribbon';
+ };
+ showZero?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'medium' | 'large';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/type.js b/miniprogram_npm/tdesign-miniprogram/badge/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.d.ts b/miniprogram_npm/tdesign-miniprogram/button/button.d.ts
new file mode 100644
index 0000000..4e88efd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdButtonProps } from './type';
+export interface ButtonProps extends TdButtonProps {
+}
+export default class Button extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ properties: TdButtonProps;
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ className: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'theme, size, plain, block, shape, disabled, loading, variant'(): void;
+ icon(icon: any): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ setClass(): void;
+ getuserinfo(e: any): void;
+ contact(e: any): void;
+ getphonenumber(e: any): void;
+ error(e: any): void;
+ opensetting(e: any): void;
+ launchapp(e: any): void;
+ chooseavatar(e: any): void;
+ agreeprivacyauthorization(e: any): void;
+ handleTap(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.js b/miniprogram_npm/tdesign-miniprogram/button/button.js
new file mode 100644
index 0000000..1ca405a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{canIUseFormFieldButton}from"../common/version";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-button`;let Button=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-loading`],this.behaviors=canIUseFormFieldButton()?["wx://form-field-button"]:[],this.properties=props,this.options={multipleSlots:!0},this.data={prefix:prefix,className:"",classPrefix:name},this.observers={"theme, size, plain, block, shape, disabled, loading, variant"(){this.setClass()},icon(t){this.setData({_icon:calcIcon(t,"")})}},this.lifetimes={attached(){this.setClass()}},this.methods={setClass(){const t=[name,`${prefix}-class`,`${name}--${this.data.variant||"base"}`,`${name}--${this.data.theme||"default"}`,`${name}--${this.data.shape||"rectangle"}`,`${name}--size-${this.data.size||"medium"}`];this.data.block&&t.push(`${name}--block`),this.data.disabled&&t.push(`${name}--disabled`),this.data.ghost&&t.push(`${name}--ghost`),this.setData({className:t.join(" ")})},getuserinfo(t){this.triggerEvent("getuserinfo",t.detail)},contact(t){this.triggerEvent("contact",t.detail)},getphonenumber(t){this.triggerEvent("getphonenumber",t.detail)},error(t){this.triggerEvent("error",t.detail)},opensetting(t){this.triggerEvent("opensetting",t.detail)},launchapp(t){this.triggerEvent("launchapp",t.detail)},chooseavatar(t){this.triggerEvent("chooseavatar",t.detail)},agreeprivacyauthorization(t){this.triggerEvent("agreeprivacyauthorization",t.detail)},handleTap(t){this.data.disabled||this.data.loading||this.triggerEvent("tap",t)}}}};Button=__decorate([wxComponent()],Button);export default Button;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.json b/miniprogram_npm/tdesign-miniprogram/button/button.json
new file mode 100644
index 0000000..18ba7f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-loading":"../loading/loading"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.wxml b/miniprogram_npm/tdesign-miniprogram/button/button.wxml
new file mode 100644
index 0000000..d6a05ec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.wxss b/miniprogram_npm/tdesign-miniprogram/button/button.wxss
new file mode 100644
index 0000000..b33d7f8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-button--size-extra-small{font-size:var(--td-button-extra-small-font-size,var(--td-font-size-base,28rpx));padding-left:var(--td-button-extra-small-padding-horizontal,16rpx);padding-right:var(--td-button-extra-small-padding-horizontal,16rpx);height:var(--td-button-extra-small-height,56rpx);line-height:var(--td-button-extra-small-height,56rpx)}.t-button--size-extra-small .t-button__icon{font-size:var(--td-button-extra-small-icon-font-size,36rpx)}.t-button--size-small{font-size:var(--td-button-small-font-size,var(--td-font-size-base,28rpx));padding-left:var(--td-button-small-padding-horizontal,24rpx);padding-right:var(--td-button-small-padding-horizontal,24rpx);height:var(--td-button-small-height,64rpx);line-height:var(--td-button-small-height,64rpx)}.t-button--size-small .t-button__icon{font-size:var(--td-button-small-icon-font-size,36rpx)}.t-button--size-medium{font-size:var(--td-button-medium-font-size,var(--td-font-size-m,32rpx));padding-left:var(--td-button-medium-padding-horizontal,32rpx);padding-right:var(--td-button-medium-padding-horizontal,32rpx);height:var(--td-button-medium-height,80rpx);line-height:var(--td-button-medium-height,80rpx)}.t-button--size-medium .t-button__icon{font-size:var(--td-button-medium-icon-font-size,40rpx)}.t-button--size-large{font-size:var(--td-button-large-font-size,var(--td-font-size-m,32rpx));padding-left:var(--td-button-large-padding-horizontal,40rpx);padding-right:var(--td-button-large-padding-horizontal,40rpx);height:var(--td-button-large-height,96rpx);line-height:var(--td-button-large-height,96rpx)}.t-button--size-large .t-button__icon{font-size:var(--td-button-large-icon-font-size,48rpx)}.t-button--default{color:var(--td-button-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:var(--td-button-default-bg-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-default-border-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-button--default::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-default-border-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-button--default.t-button--hover{z-index:0}.t-button--default.t-button--hover,.t-button--default.t-button--hover::after{background-color:var(--td-button-default-active-bg-color,var(--td-bg-color-component-active,var(--td-gray-color-6,#a6a6a6)));border-color:var(--td-button-default-active-border-color,var(--td-bg-color-component-active,var(--td-gray-color-6,#a6a6a6)))}.t-button--default.t-button--disabled{color:var(--td-button-default-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-button-default-disabled-bg,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-button--default.t-button--disabled,.t-button--default.t-button--disabled::after{border-color:var(--td-button-default-disabled-border-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-button--primary{color:var(--td-button-primary-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-button-primary-bg-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-button-primary-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--primary::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-primary-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--primary.t-button--hover{z-index:0}.t-button--primary.t-button--hover,.t-button--primary.t-button--hover::after{background-color:var(--td-button-primary-active-bg-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)));border-color:var(--td-button-primary-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--primary.t-button--disabled{color:var(--td-button-primary-disabled-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-button-primary-disabled-bg,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--primary.t-button--disabled,.t-button--primary.t-button--disabled::after{border-color:var(--td-button-primary-disabled-border-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--light{color:var(--td-button-light-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-button-light-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));border-color:var(--td-button-light-border-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--light::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-light-border-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--light.t-button--hover{z-index:0}.t-button--light.t-button--hover,.t-button--light.t-button--hover::after{background-color:var(--td-button-light-active-bg-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)));border-color:var(--td-button-light-active-border-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)))}.t-button--light.t-button--disabled{color:var(--td-button-light-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)));background-color:var(--td-button-light-disabled-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--light.t-button--disabled,.t-button--light.t-button--disabled::after{border-color:var(--td-button-light-disabled-border-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--danger{color:var(--td-button-danger-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-button-danger-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-button-danger-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--danger::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-danger-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--danger.t-button--hover{z-index:0}.t-button--danger.t-button--hover,.t-button--danger.t-button--hover::after{background-color:var(--td-button-danger-active-bg-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)));border-color:var(--td-button-danger-active-border-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--danger.t-button--disabled{color:var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff));background-color:var(--td-button-danger-disabled-bg,var(--td-error-color-3,#ffb9b0))}.t-button--danger.t-button--disabled,.t-button--danger.t-button--disabled::after{border-color:var(--td-button-danger-disabled-border-color,var(--td-error-color-3,#ffb9b0))}.t-button{display:inline-flex;align-items:center;justify-content:center;position:relative;white-space:nowrap;text-align:center;background-image:none;transition:all .3s;touch-action:manipulation;border-radius:var(--td-button-border-radius,var(--td-radius-default,12rpx));outline:0;font-family:PingFang SC,Microsoft YaHei,Arial Regular;font-weight:var(--td-button-font-weight,600);vertical-align:top;box-sizing:border-box;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-appearance:none}.t-button::after{border-radius:calc(var(--td-button-border-radius,var(--td-radius-default,12rpx)) * 2)}.t-button--text{color:var(--td-button-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:transparent}.t-button--text,.t-button--text::after{border:0}.t-button--text.t-button--hover,.t-button--text.t-button--hover::after{background-color:var(--td-button-default-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--primary{color:var(--td-button-primary-text-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:transparent}.t-button--text.t-button--primary.t-button--hover,.t-button--text.t-button--primary.t-button--hover::after{background-color:var(--td-button-primary-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--primary.t-button--disabled{color:var(--td-button-primary-text-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-button--text.t-button--danger{color:var(--td-button-danger-text-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:transparent}.t-button--text.t-button--danger.t-button--hover,.t-button--text.t-button--danger.t-button--hover::after{background-color:var(--td-button-danger-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--danger.t-button--disabled{color:var(--td-button-danger-text-disabled-color,var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff)));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-button--text.t-button--light{color:var(--td-button-light-text-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:transparent}.t-button--text.t-button--light.t-button--hover,.t-button--text.t-button--light.t-button--hover::after{background-color:var(--td-button-light-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--disabled{color:var(--td-button-default-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-button--outline{color:var(--td-button-default-outline-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-button--outline,.t-button--outline::after{border-color:var(--td-button-default-outline-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--hover,.t-button--outline.t-button--hover::after{background-color:var(--td-button-default-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-default-outline-active-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--disabled{color:var(--td-button-default-outline-disabled-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--disabled,.t-button--outline.t-button--disabled::after{border-color:var(--td-button-default-outline-disabled-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--primary{color:var(--td-button-primary-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--outline.t-button--primary,.t-button--outline.t-button--primary::after{border-color:var(--td-button-primary-outline-border-color,var(--td-button-primary-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-button--outline.t-button--primary.t-button--hover{color:var(--td-button-primary-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--primary.t-button--hover::after{background-color:var(--td-button-primary-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-primary-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--primary.t-button--disabled{background-color:transparent;color:var(--td-button-primary-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--outline.t-button--primary.t-button--disabled,.t-button--outline.t-button--primary.t-button--disabled::after{border-color:var(--td-button-primary-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--outline.t-button--danger{color:var(--td-button-danger-outline-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--outline.t-button--danger,.t-button--outline.t-button--danger::after{border-color:var(--td-button-danger-outline-border-color,var(--td-button-danger-outline-color,var(--td-error-color,var(--td-error-color-6,#d54941))))}.t-button--outline.t-button--danger.t-button--hover{color:var(--td-button-danger-outline-active-border-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--outline.t-button--danger.t-button--hover::after{background-color:var(--td-button-danger-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-danger-outline-active-border-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--outline.t-button--danger.t-button--disabled{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-button-danger-outline-disabled-color,var(--td-error-color-3,#ffb9b0))}.t-button--outline.t-button--danger.t-button--disabled,.t-button--outline.t-button--danger.t-button--disabled::after{border-color:var(--td-button-danger-outline-disabled-color,var(--td-error-color-3,#ffb9b0))}.t-button--outline.t-button--light{color:var(--td-button-light-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-button-light-outline-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--outline.t-button--light,.t-button--outline.t-button--light::after{border-color:var(--td-button-light-outline-border-color,var(--td-button-light-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-button--outline.t-button--light.t-button--hover{color:var(--td-button-light-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--light.t-button--hover,.t-button--outline.t-button--light.t-button--hover::after{background-color:var(--td-button-light-outline-active-bg-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)));border-color:var(--td-button-light-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--light.t-button--disabled{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-button-light-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--outline.t-button--light.t-button--disabled,.t-button--outline.t-button--light.t-button--disabled::after{border-color:var(--td-button-light-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--dashed{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));border-style:dashed;border-width:2rpx}.t-button--dashed::after{border:0}.t-button--dashed.t-button--hover,.t-button--dashed.t-button--hover::after{background-color:var(--td-button-default-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-default-outline-active-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--dashed.t-button--primary{color:var(--td-button-primary-dashed-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--dashed.t-button--primary,.t-button--dashed.t-button--primary::after{border-color:var(--td-button-primary-dashed-border-color,var(--td-button-primary-dashed-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-button--dashed.t-button--primary.t-button--disabled{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-button-primary-dashed-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--dashed.t-button--primary.t-button--disabled,.t-button--dashed.t-button--primary.t-button--disabled::after{border-color:var(--td-button-primary-dashed-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--dashed.t-button--danger{color:var(--td-button-danger-dashed-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--dashed.t-button--danger,.t-button--dashed.t-button--danger::after{border-color:var(--td-button-danger-dashed-border-color,var(--td-button-danger-dashed-color,var(--td-error-color,var(--td-error-color-6,#d54941))))}.t-button--dashed.t-button--danger.t-button--disabled{background-color:transparent;color:var(--td-button-danger-dashed-disabled-color,var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff)))}.t-button--dashed.t-button--danger.t-button--disabled::after{border-color:var(--td-button-danger-dashed-disabled-color,var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff)))}.t-button--ghost{background-color:transparent;color:var(--td-button-ghost-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-button--ghost,.t-button--ghost::after{border-color:var(--td-button-ghost-border-color,var(--td-button-ghost-color,var(--td-text-color-anti,var(--td-font-white-1,#fff))))}.t-button--ghost.t-button--default.t-button--hover{color:var(--td-button-ghost-hover-color,var(--td-font-white-2,rgba(255,255,255,.55)))}.t-button--ghost.t-button--default.t-button--hover,.t-button--ghost.t-button--default.t-button--hover::after{background-color:transparent;border-color:var(--td-button-ghost-hover-color,var(--td-font-white-2,rgba(255,255,255,.55)))}.t-button--ghost.t-button--primary{color:var(--td-button-ghost-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--ghost.t-button--primary,.t-button--ghost.t-button--primary::after{border-color:var(--td-button-ghost-primary-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--ghost.t-button--primary.t-button--hover{color:var(--td-button-ghost-primary-hover-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--ghost.t-button--primary.t-button--hover,.t-button--ghost.t-button--primary.t-button--hover::after{background-color:transparent;border-color:var(--td-button-ghost-primary-hover-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--ghost.t-button--primary.t-button--text.t-button--hover,.t-button--ghost.t-button--primary.t-button--text.t-button--hover::after{background-color:var(--td-gray-color-10,#4b4b4b)}.t-button--ghost.t-button--primary.t-button--disabled{background-color:transparent;color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--primary.t-button--disabled,.t-button--ghost.t-button--primary.t-button--disabled::after{border-color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--danger{color:var(--td-button-ghost-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--ghost.t-button--danger,.t-button--ghost.t-button--danger::after{border-color:var(--td-button-ghost-danger-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--ghost.t-button--danger.t-button--hover{color:var(--td-button-ghost-danger-hover-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--ghost.t-button--danger.t-button--hover,.t-button--ghost.t-button--danger.t-button--hover::after{background-color:transparent;border-color:var(--td-button-ghost-danger-hover-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--ghost.t-button--danger.t-button--text.t-button--hover,.t-button--ghost.t-button--danger.t-button--text.t-button--hover::after{background-color:var(--td-gray-color-10,#4b4b4b)}.t-button--ghost.t-button--danger.t-button--disabled{background-color:transparent;color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--danger.t-button--disabled,.t-button--ghost.t-button--danger.t-button--disabled::after{border-color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--default.t-button--text.t-button--hover,.t-button--ghost.t-button--default.t-button--text.t-button--hover::after{background-color:var(--td-gray-color-10,#4b4b4b)}.t-button--ghost.t-button--default.t-button--disabled{background-color:transparent;color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--default.t-button--disabled,.t-button--ghost.t-button--default.t-button--disabled::after{border-color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button__icon+.t-button__content:not(:empty),.t-button__loading+.t-button__content:not(:empty){margin-left:8rpx}.t-button__icon{border-radius:var(--td-button-icon-border-radius,8rpx)}.t-button--round.t-button--size-large{border-radius:calc(var(--td-button-large-height,96rpx)/ 2)}.t-button--round.t-button--size-large::after{border-radius:var(--td-button-large-height,96rpx)}.t-button--round.t-button--size-medium{border-radius:calc(var(--td-button-medium-height,80rpx)/ 2)}.t-button--round.t-button--size-medium::after{border-radius:var(--td-button-medium-height,80rpx)}.t-button--round.t-button--size-small{border-radius:calc(var(--td-button-small-height,64rpx)/ 2)}.t-button--round.t-button--size-small::after{border-radius:var(--td-button-small-height,64rpx)}.t-button--round.t-button--size-extra-small{border-radius:calc(var(--td-button-extra-small-height,56rpx)/ 2)}.t-button--round.t-button--size-extra-small::after{border-radius:var(--td-button-extra-small-height,56rpx)}.t-button--square{padding:0}.t-button--square.t-button--size-large{width:var(--td-button-large-height,96rpx)}.t-button--square.t-button--size-medium{width:var(--td-button-medium-height,80rpx)}.t-button--square.t-button--size-small{width:var(--td-button-small-height,64rpx)}.t-button--square.t-button--size-extra-small{width:var(--td-button-extra-small-height,56rpx)}.t-button--circle{padding:0;border-radius:50%}.t-button--circle.t-button--size-large{width:var(--td-button-large-height,96rpx)}.t-button--circle.t-button--size-large::after{border-radius:50%}.t-button--circle.t-button--size-medium{width:var(--td-button-medium-height,80rpx)}.t-button--circle.t-button--size-medium::after{border-radius:50%}.t-button--circle.t-button--size-small{width:var(--td-button-small-height,64rpx)}.t-button--circle.t-button--size-small::after{border-radius:50%}.t-button--circle.t-button--size-extra-small{width:var(--td-button-extra-small-height,56rpx)}.t-button--circle.t-button--size-extra-small::after{border-radius:50%}.t-button--block{display:flex;width:100%}.t-button--disabled{cursor:not-allowed}.t-button__loading--wrapper{display:flex;align-items:center;justify-content:center}.t-button.t-button--hover::after{z-index:-1}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/index.d.ts b/miniprogram_npm/tdesign-miniprogram/button/index.d.ts
new file mode 100644
index 0000000..beb0ad5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './button';
diff --git a/miniprogram_npm/tdesign-miniprogram/button/index.js b/miniprogram_npm/tdesign-miniprogram/button/index.js
new file mode 100644
index 0000000..aba62c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./button";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/props.d.ts b/miniprogram_npm/tdesign-miniprogram/button/props.d.ts
new file mode 100644
index 0000000..00dc5fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/props.d.ts
@@ -0,0 +1,3 @@
+import { TdButtonProps } from './type';
+declare const props: TdButtonProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/button/props.js b/miniprogram_npm/tdesign-miniprogram/button/props.js
new file mode 100644
index 0000000..f940974
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/props.js
@@ -0,0 +1 @@
+const props={appParameter:{type:String,value:""},block:{type:Boolean,value:!1},content:{type:String},customDataset:{type:null},disabled:{type:null,value:void 0},ghost:{type:Boolean,value:!1},hoverClass:{type:String,value:""},hoverStartTime:{type:Number,value:20},hoverStayTime:{type:Number,value:70},hoverStopPropagation:{type:Boolean,value:!1},icon:{type:null},lang:{type:String},loading:{type:Boolean,value:!1},loadingProps:{type:Object},openType:{type:String},phoneNumberNoQuotaToast:{type:Boolean,value:!0},sendMessageImg:{type:String,value:"截图"},sendMessagePath:{type:String,value:"当前分享路径"},sendMessageTitle:{type:String,value:"当前标题"},sessionFrom:{type:String,value:""},shape:{type:String,value:"rectangle"},showMessageCard:{type:Boolean,value:!1},size:{type:String,value:"medium"},style:{type:String,value:""},tId:{type:String,value:""},theme:{type:String,value:"default"},type:{type:String},variant:{type:String,value:"base"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/type.d.ts b/miniprogram_npm/tdesign-miniprogram/button/type.d.ts
new file mode 100644
index 0000000..5a07a2a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/type.d.ts
@@ -0,0 +1,115 @@
+import { LoadingProps } from '../loading/index';
+export interface TdButtonProps {
+ appParameter?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ customDataset?: {
+ type: null;
+ value?: null;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ ghost?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hoverClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ hoverStartTime?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ hoverStayTime?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ hoverStopPropagation?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ lang?: {
+ type: StringConstructor;
+ value?: 'en' | 'zh_CN' | 'zh_TW';
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ loadingProps?: {
+ type: ObjectConstructor;
+ value?: LoadingProps;
+ };
+ openType?: {
+ type: StringConstructor;
+ value?: 'contact' | 'share' | 'getPhoneNumber' | 'getUserInfo' | 'launchApp' | 'openSetting' | 'feedback' | 'chooseAvatar' | 'agreePrivacyAuthorization';
+ };
+ phoneNumberNoQuotaToast?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ sendMessageImg?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ sendMessagePath?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ sendMessageTitle?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ sessionFrom?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'rectangle' | 'square' | 'round' | 'circle';
+ };
+ showMessageCard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'extra-small' | 'small' | 'medium' | 'large';
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ tId?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'primary' | 'danger' | 'light';
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'submit' | 'reset';
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'base' | 'outline' | 'dashed' | 'text';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/button/type.js b/miniprogram_npm/tdesign-miniprogram/button/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar-header.wxml b/miniprogram_npm/tdesign-miniprogram/calendar/calendar-header.wxml
new file mode 100644
index 0000000..57bf570
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar-header.wxml
@@ -0,0 +1 @@
+{{ title }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.d.ts
new file mode 100644
index 0000000..29f5038
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.d.ts
@@ -0,0 +1,63 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { TdCalendarProps } from './type';
+export interface CalendarProps extends TdCalendarProps {
+}
+export default class Calendar extends SuperComponent {
+ behaviors: string[];
+ externalClasses: string[];
+ options: WechatMiniprogram.Component.ComponentOptions;
+ properties: TdCalendarProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ months: any[];
+ scrollIntoView: string;
+ innerConfirmBtn: {};
+ realLocalText: {};
+ currentMonth: {};
+ actionButtons: {
+ preYearBtnDisable: boolean;
+ prevMonthBtnDisable: boolean;
+ nextMonthBtnDisable: boolean;
+ nextYearBtnDisable: boolean;
+ };
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ lifetimes: {
+ created(): void;
+ ready(): void;
+ };
+ observers: {
+ type(v: any): void;
+ confirmBtn(v: any): void;
+ 'firstDayOfWeek,minDate,maxDate'(firstDayOfWeek: any, minDate: any, maxDate: any): void;
+ value(v: any): void;
+ visible(v: any): void;
+ format(v: any): void;
+ };
+ methods: {
+ initialValue(): void;
+ scrollIntoView(): void;
+ getCurrentYearAndMonth(v: Date): {
+ year: number;
+ month: number;
+ };
+ updateActionButton(value: Date): void;
+ updateCurrentMonth(): void;
+ calcCurrentMonth(newValue?: any): void;
+ calcMonths(): void;
+ close(trigger: any): void;
+ onVisibleChange(): void;
+ handleClose(): void;
+ handleSelect(e: any): void;
+ onTplButtonTap(): void;
+ toTime(val: any): any;
+ onScroll(e: any): void;
+ getCurrentDate(): any;
+ handleSwitchModeChange(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.js b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.js
new file mode 100644
index 0000000..ce3c02d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import TCalendar from"../common/shared/calendar/index";import useCustomNavbar from"../mixins/using-custom-navbar";import{getPrevMonth,getPrevYear,getNextMonth,getNextYear}from"./utils";const{prefix:prefix}=config,name=`${prefix}-calendar`,defaultLocaleText={title:"请选择日期",weekdays:["日","一","二","三","四","五","六"],monthTitle:"{year} 年 {month}",months:["1 月","2 月","3 月","4 月","5 月","6 月","7 月","8 月","9 月","10 月","11 月","12 月"],confirm:"确认"};let Calendar=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,months:[],scrollIntoView:"",innerConfirmBtn:{},realLocalText:{},currentMonth:{},actionButtons:{preYearBtnDisable:!1,prevMonthBtnDisable:!1,nextMonthBtnDisable:!1,nextYearBtnDisable:!1}},this.controlledProps=[{key:"value",event:"confirm"},{key:"value",event:"change"}],this.lifetimes={created(){this.base=new TCalendar(this.properties)},ready(){const t=Object.assign(Object.assign({},defaultLocaleText),this.properties.localeText);this.initialValue(),this.setData({days:this.base.getDays(t.weekdays),realLocalText:t}),this.calcMonths(),this.updateCurrentMonth(),this.data.usePopup||this.scrollIntoView()}},this.observers={type(t){this.base.type=t},confirmBtn(t){"string"==typeof t?this.setData({innerConfirmBtn:"slot"===t?"slot":{content:t}}):"object"==typeof t&&this.setData({innerConfirmBtn:t})},"firstDayOfWeek,minDate,maxDate"(t,e,a){t&&(this.base.firstDayOfWeek=t),e&&(this.base.minDate=e),a&&(this.base.maxDate=a),this.calcMonths()},value(t){this.base.value=t,this.calcMonths(),this.updateCurrentMonth()},visible(t){t&&(this.scrollIntoView(),this.base.value=this.data.value,this.calcMonths())},format(t){const{usePopup:e,visible:a}=this.data;this.base.format=t,e&&!a||this.calcMonths()}},this.methods={initialValue(){const{value:t,type:e,minDate:a}=this.data;if(!t){const t=new Date,n=a||new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),s="single"===e?n:[n];"range"===e&&(s[1]=n+864e5),this.setData({value:s}),this.base.value=s}},scrollIntoView(){const{value:t}=this.data;if(!t)return;const e=new Date(Array.isArray(t)?t[0]:t);e&&this.setData({scrollIntoView:`year_${e.getFullYear()}_month_${e.getMonth()}`})},getCurrentYearAndMonth(t){const e=new Date(t);return{year:e.getFullYear(),month:e.getMonth()}},updateActionButton(t){const e=this.getCurrentYearAndMonth(this.base.minDate),a=this.getCurrentYearAndMonth(this.base.maxDate),n=new Date(e.year,e.month,1).getTime(),s=new Date(a.year,a.month,1).getTime(),r=getPrevYear(t).getTime(),i=getPrevMonth(t).getTime(),o=getNextMonth(t).getTime(),h=getNextYear(t).getTime(),l=rs||h>s,u=o>s;this.setData({actionButtons:{preYearBtnDisable:l,prevMonthBtnDisable:c,nextYearBtnDisable:m,nextMonthBtnDisable:u}})},updateCurrentMonth(){"none"!==this.data.switchMode&&this.calcCurrentMonth()},calcCurrentMonth(t){const e=t||this.getCurrentDate(),{year:a,month:n}=this.getCurrentYearAndMonth(e),s=this.data.months.filter((t=>t.year===a&&t.month===n));this.updateActionButton(e),this.setData({currentMonth:s.length>0?s:[this.data.months[0]]})},calcMonths(){const t=this.base.getMonths();this.setData({months:t})},close(t){this.data.autoClose&&this.setData({visible:!1}),this.triggerEvent("close",{trigger:t})},onVisibleChange(){this.close("overlay")},handleClose(){this.close("close-btn")},handleSelect(t){const{date:e,year:a,month:n}=t.currentTarget.dataset;if("disabled"===e.type)return;const s=this.base.select({cellType:e.type,year:a,month:n,date:e.day}),r=this.toTime(s);this.calcMonths(),this.updateCurrentMonth(),null==this.data.confirmBtn&&("single"!==this.data.type&&2!==s.length||(this.setData({visible:!1}),this._trigger("change",{value:r}))),this.triggerEvent("select",{value:r})},onTplButtonTap(){const t=this.base.getTrimValue(),e=this.toTime(t);this.close("confirm-btn"),this._trigger("confirm",{value:e})},toTime:t=>t?Array.isArray(t)?t.map((t=>t.getTime())):t.getTime():null,onScroll(t){this.triggerEvent("scroll",t.detail)},getCurrentDate(){var t,e;let a=Array.isArray(this.base.value)?this.base.value[0]:this.base.value;if(this.data.currentMonth.length>0){const n=null===(t=this.data.currentMonth[0])||void 0===t?void 0:t.year,s=null===(e=this.data.currentMonth[0])||void 0===e?void 0:e.month;a=new Date(n,s,1).getTime()}return a},handleSwitchModeChange(t){const{type:e,disabled:a}=t.currentTarget.dataset;if(a)return;const n=this.getCurrentDate(),s={"pre-year":()=>getPrevYear(n),"pre-month":()=>getPrevMonth(n),"next-month":()=>getNextMonth(n),"next-year":()=>getNextYear(n)}[e]();if(!s)return;const{year:r,month:i}=this.getCurrentYearAndMonth(s);this.triggerEvent("panel-change",{year:r,month:i+1}),this.calcCurrentMonth(s)}}}};Calendar=__decorate([wxComponent()],Calendar);export default Calendar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.json b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.json
new file mode 100644
index 0000000..8a91a83
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup","t-button":"../button/button","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxml b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxml
new file mode 100644
index 0000000..e963b1f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxs b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxs
new file mode 100644
index 0000000..ad5d507
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxs
@@ -0,0 +1,44 @@
+function getDateLabel(monthItem, dateItem) {
+ var weekdayText = ['日', '一', '二', '三', '四', '五', '六'];
+ var weekday = (monthItem.weekdayOfFirstDay + dateItem.day - 1) % 7;
+ var label = monthItem.month + 1 + '月' + dateItem.day + '日, 星期' + weekdayText[weekday];
+ if (dateItem.type === 'start') {
+ label = '开始日期:' + label;
+ }
+ if (dateItem.type === 'end') {
+ label = '结束日期:' + label;
+ }
+ if (isDateSelected(dateItem)) {
+ label = '已选中, ' + label;
+ }
+ if (dateItem.prefix) {
+ label += ', ' + dateItem.prefix;
+ }
+ if (dateItem.suffix) {
+ label += ', ' + dateItem.suffix;
+ }
+ return label;
+}
+
+function isDateSelected(dateItem) {
+ return ['start', 'end', 'selected', 'centre'].indexOf(dateItem.type) >= 0;
+}
+
+function getMonthTitle(year, month, pattern = '') {
+ // prettier-ignore
+ var REGEXP = getRegExp('\{year\}|\{month\}', 'g');
+
+ return pattern.replace(REGEXP, function (match) {
+ var replacements = {
+ '{year}': year,
+ '{month}': month < 10 ? '0' + month : month,
+ };
+ return replacements[match] || match;
+ });
+}
+
+module.exports = {
+ getDateLabel: getDateLabel,
+ isDateSelected: isDateSelected,
+ getMonthTitle: getMonthTitle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxss b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxss
new file mode 100644
index 0000000..8673bfd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-calendar{width:inherit;position:relative;z-index:9999;background:var(--td-calendar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));overflow-x:hidden}.t-calendar--popup{border-top-left-radius:var(--td-calendar-radius,24rpx);border-top-right-radius:var(--td-calendar-radius,24rpx)}.t-calendar__title{display:flex;align-items:center;justify-content:center;font-size:var(--td-calendar-title-font-size,18px);font-weight:600;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));height:52rpx;padding:32rpx}.t-calendar__title:focus{outline:0}.t-calendar__close-btn{position:absolute;top:32rpx;right:32rpx;margin:-24rpx;padding:24rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);grid-column-gap:8rpx;padding:0 32rpx;text-align:center;line-height:92rpx}.t-calendar__days-item{height:92rpx;font-size:28rpx;color:var(--td-calendar-days-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-calendar__content{min-height:400rpx;display:flex;flex-direction:column}.t-calendar__month{font-size:28rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:600;padding:32rpx 0 0}.t-calendar__months{height:712rpx;padding:0 32rpx 32rpx;box-sizing:border-box}.t-calendar__months::-webkit-scrollbar{display:none}.t-calendar__dates{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-column-gap:8rpx}.t-calendar__dates-item{position:relative;display:flex;align-items:center;justify-content:center;font-size:32rpx;border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx));height:120rpx;line-height:48rpx;font-weight:600;margin-top:16rpx;color:var(--td-calendar-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.t-calendar__dates-item-prefix,.t-calendar__dates-item-suffix{position:absolute;font-size:20rpx;line-height:32rpx;width:100%;text-align:center;font-weight:400}.t-calendar__dates-item-prefix{top:8rpx}.t-calendar__dates-item-suffix{bottom:8rpx;color:var(--td-calendar-item-suffix-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-calendar__dates-item-suffix--end,.t-calendar__dates-item-suffix--selected,.t-calendar__dates-item-suffix--start{color:var(--td-calendar-selected-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-calendar__dates-item-suffix--disabled{color:var(--td-calendar-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-calendar__dates-item--end,.t-calendar__dates-item--selected,.t-calendar__dates-item--start{background:var(--td-calendar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));color:var(--td-calendar-selected-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx))}.t-calendar__dates-item--start{border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx)) 0 0 var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx))}.t-calendar__dates-item--end{border-radius:0 var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx)) var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx)) 0}.t-calendar__dates-item--start+.t-calendar__dates-item--end::before{content:'';display:block;position:absolute;top:0;width:8rpx;height:100%;background:var(--td-calendar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-calendar__dates-item--start+.t-calendar__dates-item--end:before{left:-8rpx}.t-calendar__dates-item--centre{border-radius:0;background-color:var(--td-calendar-item-centre-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-calendar__dates-item--centre::after,.t-calendar__dates-item--centre::before{content:'';display:block;position:absolute;top:0;width:8rpx;height:100%;background-color:var(--td-calendar-item-centre-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-calendar__dates-item--centre:before{left:-8rpx}.t-calendar__dates-item--centre:after{right:-8rpx}.t-calendar__dates-item--disabled{color:var(--td-calendar-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));cursor:default}.t-calendar__footer{padding:32rpx}.t-calendar-switch-mode--none>.t-calendar__months{height:60vh}.t-calendar-header{display:flex;justify-content:space-between;align-items:center;line-height:44rpx}.t-calendar-header__with-action{padding:0rpx 32rpx 16rpx 32rpx;box-sizing:border-box;position:relative}.t-calendar-header__with-action::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-border-color,var(--td-gray-color-3,#e7e7e7))}.t-calendar-header__with-action::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-calendar-header__with-action .t-calendar-header__title{flex:1;text-align:center;font-size:28rpx;font-weight:600}.t-calendar-header__action{display:flex;font-size:40rpx;color:var(--td-calendar-switch-mode-icon-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-calendar-header__icon{padding:16rpx}.t-calendar-header__icon--disabled{color:var(--td-calendar-switch-mode-icon-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-calendar-header__title{text-align:left}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/index.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/index.d.ts
new file mode 100644
index 0000000..cf0e3b8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/index.d.ts
@@ -0,0 +1,2 @@
+export * from './type';
+export * from './calendar';
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/index.js b/miniprogram_npm/tdesign-miniprogram/calendar/index.js
new file mode 100644
index 0000000..2dc1889
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./calendar";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/props.d.ts
new file mode 100644
index 0000000..a42879c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCalendarProps } from './type';
+declare const props: TdCalendarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/props.js b/miniprogram_npm/tdesign-miniprogram/calendar/props.js
new file mode 100644
index 0000000..046bd84
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!0},confirmBtn:{type:null,value:""},firstDayOfWeek:{type:Number,value:0},format:{type:null},localeText:{type:Object},maxDate:{type:Number},minDate:{type:Number},switchMode:{type:String,value:"none"},title:{type:String},type:{type:String,value:"single"},usePopup:{type:Boolean,value:!0},usingCustomNavbar:{type:Boolean,value:!1},value:{type:null,value:null},defaultValue:{type:null},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/template.wxml b/miniprogram_npm/tdesign-miniprogram/calendar/template.wxml
new file mode 100644
index 0000000..1f6655e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/template.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/type.d.ts
new file mode 100644
index 0000000..5df9dff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/type.d.ts
@@ -0,0 +1,80 @@
+import { ButtonProps } from '../button/index';
+export interface TdCalendarProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmBtn?: {
+ type: null;
+ value?: string | ButtonProps | null;
+ };
+ firstDayOfWeek?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ format?: {
+ type: undefined;
+ value?: CalendarFormatType;
+ };
+ localeText?: {
+ type: ObjectConstructor;
+ value?: CalendarLocaleText;
+ };
+ maxDate?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ minDate?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ switchMode?: {
+ type: StringConstructor;
+ value?: 'none' | 'month' | 'year-month';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'single' | 'multiple' | 'range';
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: number | number[];
+ };
+ defaultValue?: {
+ type: null;
+ value?: number | number[];
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type CalendarFormatType = (day: TDate) => TDate;
+export declare type TDateType = 'selected' | 'disabled' | 'start' | 'centre' | 'end' | '';
+export interface TDate {
+ date: Date;
+ day: number;
+ type: TDateType;
+ className?: string;
+ prefix?: string;
+ suffix?: string;
+}
+export interface CalendarLocaleText {
+ title?: string;
+ weekdays?: string[];
+ monthTitle?: string;
+ months?: string[];
+ confirm?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/type.js b/miniprogram_npm/tdesign-miniprogram/calendar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/utils.d.ts
new file mode 100644
index 0000000..800daa0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/utils.d.ts
@@ -0,0 +1,6 @@
+export declare function getMonthByOffset(date: Date, offset: number): Date;
+export declare function getYearByOffset(date: Date, offset: number): Date;
+export declare const getPrevMonth: (date: Date) => Date;
+export declare const getNextMonth: (date: Date) => Date;
+export declare const getPrevYear: (date: Date) => Date;
+export declare const getNextYear: (date: Date) => Date;
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/utils.js b/miniprogram_npm/tdesign-miniprogram/calendar/utils.js
new file mode 100644
index 0000000..81fc01c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/utils.js
@@ -0,0 +1 @@
+export function getMonthByOffset(t,e){const n=new Date(t);return n.setMonth(n.getMonth()+e),n.setDate(1),n}export function getYearByOffset(t,e){const n=new Date(t);return n.setFullYear(n.getFullYear()+e),n.setDate(1),n}export const getPrevMonth=t=>getMonthByOffset(t,-1);export const getNextMonth=t=>getMonthByOffset(t,1);export const getPrevYear=t=>getYearByOffset(t,-1);export const getNextYear=t=>getYearByOffset(t,1);
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.d.ts b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.d.ts
new file mode 100644
index 0000000..7aa5bde
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.d.ts
@@ -0,0 +1,59 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { TdCascaderProps } from './type';
+export interface CascaderProps extends TdCascaderProps {
+}
+export default class Cascader extends SuperComponent {
+ externalClasses: string[];
+ options: WechatMiniprogram.Component.ComponentOptions;
+ properties: TdCascaderProps>;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ state: {
+ contentHeight: number;
+ stepHeight: number;
+ tabsHeight: number;
+ subTitlesHeight: number;
+ stepsInitHeight: number;
+ };
+ data: {
+ prefix: string;
+ name: string;
+ stepIndex: number;
+ selectedIndexes: any[];
+ selectedValue: any[];
+ scrollTopList: any[];
+ steps: any[];
+ _optionsHeight: number;
+ };
+ observers: {
+ visible(v: any): void;
+ value(): void;
+ options(): void;
+ selectedIndexes(): void;
+ stepIndex(): Promise;
+ };
+ methods: {
+ updateOptionsHeight(steps: number): void;
+ initOptionsHeight(steps: number): Promise;
+ initWithValue(): void;
+ getIndexesByValue(options: import("../common/common").TreeOptionData[], value: any): any[];
+ updateScrollTop(): void;
+ hide(trigger: any): void;
+ onVisibleChange(): void;
+ onClose(): void;
+ onStepClick(e: any): void;
+ onTabChange(e: any): void;
+ genItems(): {
+ selectedValue: any[];
+ steps: any[];
+ items: {
+ [x: string]: any;
+ }[][];
+ };
+ handleSelect(e: any): void;
+ triggerChange(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.js b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.js
new file mode 100644
index 0000000..831c2ee
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-cascader`;function parseOptions(e,t){var s,i;const l=null!==(s=null==t?void 0:t.label)&&void 0!==s?s:"label",n=null!==(i=null==t?void 0:t.value)&&void 0!==i?i:"value";return e.map((e=>({[l]:e[l],[n]:e[n]})))}const defaultState={contentHeight:0,stepHeight:0,tabsHeight:0,subTitlesHeight:0,stepsInitHeight:0};let Cascader=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0,pureDataPattern:/^options$/},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.state=Object.assign({},defaultState),this.data={prefix:prefix,name:name,stepIndex:0,selectedIndexes:[],selectedValue:[],scrollTopList:[],steps:[],_optionsHeight:0},this.observers={visible(e){if(e){const e=this.selectComponent("#tabs");null==e||e.setTrack(),null==e||e.getTabHeight().then((e=>{this.state.tabsHeight=e.height})),this.initOptionsHeight(this.data.steps.length),this.updateScrollTop(),this.initWithValue()}else this.state=Object.assign({},defaultState)},value(){this.initWithValue()},options(){const{selectedValue:e,steps:t,items:s}=this.genItems();this.setData({steps:t,items:s,selectedValue:e,stepIndex:s.length-1})},selectedIndexes(){const{visible:e,theme:t}=this.properties,{selectedValue:s,steps:i,items:l}=this.genItems(),n={steps:i,selectedValue:s,stepIndex:l.length-1};JSON.stringify(l)!==JSON.stringify(this.data.items)&&Object.assign(n,{items:l}),this.setData(n),e&&"step"===t&&this.updateOptionsHeight(i.length)},stepIndex(){return __awaiter(this,void 0,void 0,(function*(){const{visible:e}=this.data;e&&this.updateScrollTop()}))}},this.methods={updateOptionsHeight(e){const{contentHeight:t,stepsInitHeight:s,stepHeight:i,subTitlesHeight:l}=this.state;this.setData({_optionsHeight:t-s-l-(e-1)*i})},initOptionsHeight(e){return __awaiter(this,void 0,void 0,(function*(){const{theme:t,subTitles:s}=this.properties,{height:i}=yield getRect(this,`.${name}__content`);if(this.state.contentHeight=i,"step"===t&&(yield Promise.all([getRect(this,`.${name}__steps`),getRect(this,`.${name}__step`)]).then((([t,s])=>{this.state.stepsInitHeight=t.height-(e-1)*s.height,this.state.stepHeight=s.height}))),s.length>0){const{height:e}=yield getRect(this,`.${name}__options-title`);this.state.subTitlesHeight=e}const l=this.state.contentHeight-this.state.subTitlesHeight;this.setData({_optionsHeight:"step"===t?l-this.state.stepsInitHeight-(e-1)*this.state.stepHeight:l-this.state.tabsHeight})}))},initWithValue(){if(null!=this.data.value&&""!==this.data.value){const e=this.getIndexesByValue(this.data.options,this.data.value);e&&this.setData({selectedIndexes:e})}else this.setData({selectedIndexes:[]})},getIndexesByValue(e,t){var s,i,l;const{keys:n}=this.data;for(let a=0,h=e.length;a{var l;const n=e.height/(null===(l=t[0])||void 0===l?void 0:l.length);this.setData({[`scrollTopList[${i}]`]:n*s[i]})}))},hide(e){this.setData({visible:!1}),this.triggerEvent("close",{trigger:e})},onVisibleChange(){this.hide("overlay")},onClose(){this.data.checkStrictly&&this.triggerChange(),this.hide("close-btn")},onStepClick(e){const{index:t}=e.currentTarget.dataset;this.setData({stepIndex:t})},onTabChange(e){const{value:t}=e.detail;this.setData({stepIndex:t})},genItems(){var e,t,s,i,l;const{options:n,selectedIndexes:a,keys:h,placeholder:o}=this.data,d=[],r=[],c=[parseOptions(n,h)];if(n.length>0){let o=n;for(let n=0,u=a.length;n{var t;return e[null!==(t=null==c?void 0:c.value)&&void 0!==t?t:"value"]===h}));let v=d.slice(0,a).reduce(((e,t,s)=>{var i;return 0===s?e[t]:e[null!==(i=null==c?void 0:c.children)&&void 0!==i?i:"children"][t]}),u);if(v=0===a?v[g]:v[null!==(t=null==c?void 0:c.children)&&void 0!==t?t:"children"][g],v.disabled)return;if(this.triggerEvent("pick",{value:v[null!==(s=null==c?void 0:c.value)&&void 0!==s?s:"value"],label:v[null!==(i=null==c?void 0:c.label)&&void 0!==i?i:"label"],index:g,level:a}),d[a]=g,o&&p.includes(String(h)))return d.length=a,void this.setData({selectedIndexes:d});d.length=a+1;const{items:m}=this.genItems();(null===(n=null==v?void 0:v[null!==(l=null==c?void 0:c.children)&&void 0!==l?l:"children"])||void 0===n?void 0:n.length)>=0?this.setData({selectedIndexes:d,[`items[${a+1}]`]:m[a+1]}):(this.setData({selectedIndexes:d},this.triggerChange),this.hide("finish"))},triggerChange(){var e;const{items:t,selectedValue:s,selectedIndexes:i}=this.data;this._trigger("change",{value:null!==(e=s[s.length-1])&&void 0!==e?e:"",selectedOptions:t.map(((e,t)=>e[i[t]])).filter(Boolean)})}}}};Cascader=__decorate([wxComponent()],Cascader);export default Cascader;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.json b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.json
new file mode 100644
index 0000000..98d4316
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-popup":"../popup/popup","t-tabs":"../tabs/tabs","t-tab-panel":"../tab-panel/tab-panel","t-radio-group":"../radio-group/radio-group"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxml b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxml
new file mode 100644
index 0000000..acb0917
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxml
@@ -0,0 +1 @@
+{{title}}{{ item }}{{subTitles[stepIndex]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxss b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxss
new file mode 100644
index 0000000..5783fc2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-cascader{display:flex;flex-direction:column;background-color:var(--td-cascader-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));color:var(--td-cascader-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-radius:var(--td-radius-extra-large,24rpx) var(--td-radius-extra-large,24rpx) 0 0;--td-radio-icon-checked-color:var(--td-cascader-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));--td-tab-item-active-color:var(--td-cascader-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));--td-tab-track-color:var(--td-cascader-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)))}.t-cascader__close-btn{right:32rpx;top:24rpx;position:absolute}.t-cascader__title{position:relative;font-weight:700;text-align:center;line-height:var(--td-cascader-title-height,26rpx);padding:var(--td-cascader-title-padding,var(--td-spacer-2,32rpx));font-size:var(--td-cascder-title-font-size,36rpx)}.t-cascader__content{width:100%;height:var(--td-cascader-content-height,78vh);display:flex;flex-direction:column}.t-cascader__options{width:100vw}.t-cascader__options-title{color:var(--td-cascader-options-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-font-size-base,28rpx);line-height:44rpx;padding-top:40rpx;padding-left:var(--td-spacer-2,32rpx);box-sizing:border-box}.t-cascader__options-container{flex:1;display:flex;transition:all ease .3s}.t-cascader__step{display:flex;align-items:center;height:var(--td-cascader-step-height,88rpx)}.t-cascader__steps{padding:0 32rpx 10rpx;position:relative}.t-cascader__steps::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-cascader-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)))}.t-cascader__steps::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-cascader__step-dot{position:relative;width:var(--td-cascader-step-dot-size,16rpx);height:var(--td-cascader-step-dot-size,16rpx);border-radius:50%;border:2rpx solid var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));box-sizing:border-box}.t-cascader__step-dot:not(.t-cascader__step-dot--last)::after{content:'';display:block;position:absolute;left:50%;top:calc(var(--td-cascader-step-dot-size,16rpx) + 14rpx);height:36rpx;width:2rpx;background:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));transform:translateX(-50%)}.t-cascader__step-dot--active{background:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-cascader__step-label{padding-left:var(--td-spacer-2,32rpx);font-size:var(--td-font-size-m,32rpx)}.t-cascader__step-label--active{color:var(--td-cascader-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:600}.t-cascader__step-arrow{color:var(--td-cascader-step-arrow-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));margin-left:auto}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/props.d.ts b/miniprogram_npm/tdesign-miniprogram/cascader/props.d.ts
new file mode 100644
index 0000000..9009f89
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCascaderProps } from './type';
+declare const props: TdCascaderProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/props.js b/miniprogram_npm/tdesign-miniprogram/cascader/props.js
new file mode 100644
index 0000000..b051517
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/props.js
@@ -0,0 +1 @@
+const props={checkStrictly:{type:Boolean,value:!1},closeBtn:{type:Boolean,value:!0},keys:{type:Object},options:{type:Array,value:[]},placeholder:{type:String,value:"选择选项"},subTitles:{type:Array,value:[]},theme:{type:String,value:"step"},title:{type:String},value:{type:null,value:null},defaultValue:{type:null,value:null},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/type.d.ts b/miniprogram_npm/tdesign-miniprogram/cascader/type.d.ts
new file mode 100644
index 0000000..37edc3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/type.d.ts
@@ -0,0 +1,47 @@
+import { TreeOptionData, KeysType } from '../common/common';
+export interface TdCascaderProps {
+ checkStrictly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ closeBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ subTitles?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'step' | 'tab';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/type.js b/miniprogram_npm/tdesign-miniprogram/cascader/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.d.ts b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.d.ts
new file mode 100644
index 0000000..30d14dc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.d.ts
@@ -0,0 +1,13 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class CellGroup extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ properties: import("./type").TdCellGroupProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ methods: {
+ updateLastChid(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.js b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.js
new file mode 100644
index 0000000..a9f01fc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-cell-group`;let CellGroup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-title`],this.relations={"../cell/cell":{type:"child",linked(){this.updateLastChid()},unlinked(){this.updateLastChid()}}},this.properties=props,this.data={prefix:prefix,classPrefix:name},this.methods={updateLastChid(){const e=this.$children;e.forEach(((t,o)=>t.setData({isLastChild:o===e.length-1})))}}}};CellGroup=__decorate([wxComponent()],CellGroup);export default CellGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.json b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxml b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxml
new file mode 100644
index 0000000..a7caad1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxml
@@ -0,0 +1 @@
+{{ title }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxss b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxss
new file mode 100644
index 0000000..04fd57a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-cell-group{position:relative}.t-cell-group__title{font-family:PingFangSC-Regular;font-size:var(--td-cell-group-title-font-size,28rpx);color:var(--td-cell-group-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));text-align:left;line-height:var(--td-cell-group-title-line-height,90rpx);background-color:var(--td-cell-group-title-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));padding-left:var(--td-cell-group-title-padding-left,32rpx)}.t-cell-group--bordered::before{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;top:0;border-top:1px solid var(--td-cell-group-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:0 0;transform-origin:top;z-index:1}.t-cell-group--bordered::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;bottom:0;border-bottom:1px solid var(--td-cell-group-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:bottom;z-index:1}.t-cell-group--card{margin:0 32rpx;border-radius:var(--td-radius-large,18rpx);overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/cell-group/props.d.ts
new file mode 100644
index 0000000..4c4a9d0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCellGroupProps } from './type';
+declare const props: TdCellGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/props.js b/miniprogram_npm/tdesign-miniprogram/cell-group/props.js
new file mode 100644
index 0000000..8a43b88
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/props.js
@@ -0,0 +1 @@
+const props={bordered:{type:Boolean,value:!1},theme:{type:String,value:"default"},title:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/cell-group/type.d.ts
new file mode 100644
index 0000000..f7aedeb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/type.d.ts
@@ -0,0 +1,14 @@
+export interface TdCellGroupProps {
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'card';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/type.js b/miniprogram_npm/tdesign-miniprogram/cell-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.d.ts b/miniprogram_npm/tdesign-miniprogram/cell/cell.d.ts
new file mode 100644
index 0000000..d6a8910
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Cell extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdCellProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ isLastChild: boolean;
+ };
+ observers: {
+ leftIcon(v: any): void;
+ rightIcon(v: any): void;
+ arrow(v: any): void;
+ };
+ setIcon(name: any, value: any, defaultValue: any): void;
+ onClick(e: any): void;
+ jumpLink(urlKey?: string, link?: string): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.js b/miniprogram_npm/tdesign-miniprogram/cell/cell.js
new file mode 100644
index 0000000..ea134d9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-cell`;let Cell=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-title`,`${prefix}-class-description`,`${prefix}-class-note`,`${prefix}-class-hover`,`${prefix}-class-image`,`${prefix}-class-left`,`${prefix}-class-left-icon`,`${prefix}-class-center`,`${prefix}-class-right`,`${prefix}-class-right-icon`],this.relations={"../cell-group/cell-group":{type:"parent"}},this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,isLastChild:!1},this.observers={leftIcon(e){this.setIcon("_leftIcon",e,"")},rightIcon(e){this.setIcon("_rightIcon",e,"")},arrow(e){this.setIcon("_arrow",e,"chevron-right")}}}setIcon(e,t,s){this.setData({[e]:calcIcon(t,s)})}onClick(e){this.triggerEvent("click",e.detail),this.jumpLink()}jumpLink(e="url",t="jumpType"){const s=this.data[e],i=this.data[t];s&&wx[i]({url:s})}};Cell=__decorate([wxComponent()],Cell);export default Cell;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.json b/miniprogram_npm/tdesign-miniprogram/cell/cell.json
new file mode 100644
index 0000000..dd7b01e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.wxml b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxml
new file mode 100644
index 0000000..d0029e0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxml
@@ -0,0 +1 @@
+{{ title}} *{{description}}{{note}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.wxss b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxss
new file mode 100644
index 0000000..b76a9ec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-cell{position:relative;display:flex;box-sizing:border-box;width:100%;padding:var(--td-cell-vertical-padding,32rpx) var(--td-cell-horizontal-padding,32rpx);line-height:var(--td-cell-line-height,48rpx);height:var(--td-cell-height,auto);background-color:var(--td-cell-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-cell::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;bottom:0;border-bottom:var(--td-cell-border-width,1px) solid var(--td-cell-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:bottom;left:var(--td-cell-border-left-space,var(--td-cell-horizontal-padding,32rpx));right:var(--td-cell-border-right-space,0)}.t-cell--borderless::after{display:none}.t-cell__description{font-size:var(--td-cell-description-font-size,var(--td-font-size-base,28rpx));line-height:var(--td-cell-description-line-height,44rpx);color:var(--td-cell-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-cell__description-text{margin-top:calc(var(--td-spacer,16rpx)/ 2)}.t-cell__note{display:flex;align-items:center;justify-content:flex-end;color:var(--td-cell-note-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-cell-note-font-size,var(--td-font-size-m,32rpx))}.t-cell__title{margin-right:var(--td-spacer-2,32rpx)}.t-cell__note,.t-cell__title{flex:1 1 auto}.t-cell__note:empty,.t-cell__title:empty{display:none}.t-cell__title-text{display:flex;font-size:var(--td-cell-title-font-size,var(--td-font-size-m,32rpx));color:var(--td-cell-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:400}.t-cell__left,.t-cell__right{align-self:stretch}.t-cell__left:not(:empty){margin-right:var(--td-spacer-1,24rpx)}.t-cell__left-icon{color:var(--td-cell-left-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-size:var(--td-cell-left-icon-font-size,48rpx)}.t-cell__left-image{height:var(--td-cell-image-height,96rpx);width:var(--td-cell-image-width,96rpx)}.t-cell__note:not(:empty)+.t-cell__right{margin-left:calc(var(--td-spacer,16rpx)/ 2)}.t-cell__right{display:flex}.t-cell__right-icon{color:var(--td-cell-right-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-cell-right-icon-font-size,48rpx)}.t-cell__right--middle{align-items:center}.t-cell__right--top{align-items:flex-start}.t-cell__right--bottom{align-items:flex-end}.t-cell--hover{background-color:var(--td-cell-hover-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-cell--required{font-size:var(--td-cell-required-font-size,var(--td-font-size-m,32rpx));color:var(--td-cell-required-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/props.d.ts b/miniprogram_npm/tdesign-miniprogram/cell/props.d.ts
new file mode 100644
index 0000000..ad657e5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCellProps } from './type';
+declare const props: TdCellProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/props.js b/miniprogram_npm/tdesign-miniprogram/cell/props.js
new file mode 100644
index 0000000..23dca76
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"middle"},arrow:{type:null,value:!1},bordered:{type:Boolean,value:!0},description:{type:String},hover:{type:Boolean},image:{type:String},jumpType:{type:String,value:"navigateTo"},leftIcon:{type:null},note:{type:String},required:{type:Boolean,value:!1},rightIcon:{type:null},title:{type:String},url:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/type.d.ts b/miniprogram_npm/tdesign-miniprogram/cell/type.d.ts
new file mode 100644
index 0000000..7ba2258
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/type.d.ts
@@ -0,0 +1,54 @@
+export interface TdCellProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'top' | 'middle' | 'bottom';
+ };
+ arrow?: {
+ type: null;
+ value?: boolean | object;
+ };
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ hover?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ jumpType?: {
+ type: StringConstructor;
+ value?: 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo';
+ };
+ leftIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ note?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ required?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ rightIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ url?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/type.js b/miniprogram_npm/tdesign-miniprogram/cell/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.d.ts b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.d.ts
new file mode 100644
index 0000000..cbea034
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.d.ts
@@ -0,0 +1,29 @@
+import { SuperComponent } from '../common/src/index';
+export default class CheckTag extends SuperComponent {
+ data: {
+ prefix: string;
+ classPrefix: string;
+ className: string;
+ };
+ properties: import("./type").TdCheckTagProps;
+ externalClasses: string[];
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ options: {
+ multipleSlots: boolean;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ observers: {
+ 'size, disabled, checked'(): void;
+ icon(v: any): void;
+ };
+ methods: {
+ setClass(): void;
+ onClick(): void;
+ onClose(e: WechatMiniprogram.BaseEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.js b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.js
new file mode 100644
index 0000000..53dbaaa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{classNames,calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-tag`;let CheckTag=class extends SuperComponent{constructor(){super(...arguments),this.data={prefix:prefix,classPrefix:name,className:""},this.properties=props,this.externalClasses=[`${prefix}-class`],this.controlledProps=[{key:"checked",event:"change"}],this.options={multipleSlots:!0},this.lifetimes={attached(){this.setClass()}},this.observers={"size, disabled, checked"(){this.setClass()},icon(e){this.setData({_icon:calcIcon(e)})}},this.methods={setClass(){const{classPrefix:e}=this.data,{size:s,variant:t,disabled:i,checked:a,shape:c}=this.properties,o=classNames([e,`${e}--checkable`,i?`${e}--disabled`:"",a?`${e}--checked`:"",`${e}--${a?"primary":"default"}`,`${e}--${s}`,`${e}--${t}`,`${e}--${c}`]);this.setData({className:o})},onClick(){if(this.data.disabled)return;const{checked:e}=this.data;this._trigger("click"),this._trigger("change",{checked:!e})},onClose(e){this.data.disabled||this._trigger("close",e)}}}};CheckTag=__decorate([wxComponent()],CheckTag);export default CheckTag;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.json b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxml b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxml
new file mode 100644
index 0000000..640d0bc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxml
@@ -0,0 +1 @@
+{{checked ? content[0] : content[1]}}{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxss b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxss
new file mode 100644
index 0000000..d1357d3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tag{display:inline-flex;align-items:center;border:2rpx solid transparent;box-sizing:border-box;border-radius:var(--td-tag-square-border-radius,8rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx));user-select:none;vertical-align:middle}.t-tag__text{word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-tag__icon{display:flex;align-items:center}.t-tag__icon:not(:empty)+.t-tag__text:not(:empty){margin-left:8rpx}.t-tag--small{height:var(--td-tag-small-height,40rpx);line-height:var(--td-tag-small-height,40rpx);padding:0 var(--td-tag-small-padding,11rpx);font-size:var(--td-tag-small-font-size,var(--td-font-size,20rpx))}.t-tag--small .t-icon,.t-tag--small .t-icon-close{font-size:var(--td-tag-small-icon-size,24rpx)}.t-tag--medium{height:var(--td-tag-medium-height,48rpx);line-height:var(--td-tag-medium-height,48rpx);padding:0 var(--td-tag-medium-padding,15rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx))}.t-tag--medium .t-icon,.t-tag--medium .t-icon-close{font-size:var(--td-tag-medium-icon-size,28rpx)}.t-tag--large{height:var(--td-tag-large-height,56rpx);line-height:var(--td-tag-large-height,56rpx);padding:0 var(--td-tag-large-padding,15rpx);font-size:var(--td-tag-large-font-size,var(--td-font-size-base,28rpx))}.t-tag--large .t-icon,.t-tag--large .t-icon-close{font-size:var(--td-tag-large-icon-size,32rpx)}.t-tag--extra-large{height:var(--td-tag-extra-large-height,80rpx);line-height:var(--td-tag-extra-large-height,80rpx);padding:0 var(--td-tag-extra-large-padding,31rpx);font-size:var(--td-tag-extra-large-font-size,var(--td-font-size-base,28rpx))}.t-tag--extra-large .t-icon,.t-tag--extra-large .t-icon-close{font-size:var(--td-tag-extra-large-icon-size,32rpx)}.t-tag.t-tag--square{border-radius:var(--td-tag-square-border-radius,8rpx)}.t-tag.t-tag--round{border-radius:var(--td-tag-round-border-radius,999px)}.t-tag.t-tag--mark{border-radius:0 var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px)) var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px)) 0}.t-tag--dark.t-tag--default{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-tag--dark.t-tag--primary{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tag--dark.t-tag--success{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-tag--dark.t-tag--warning{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-tag--dark.t-tag--danger{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-tag--dark.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--primary{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--success{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--warning{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--danger{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--light.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light-outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light-outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light-outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light-outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-tag.t-tag--closable.t-tag--disabled{cursor:not-allowed;color:var(--td-tag-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-tag-disabled-background-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)));border-color:var(--td-tag-disabled-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/props.d.ts b/miniprogram_npm/tdesign-miniprogram/check-tag/props.d.ts
new file mode 100644
index 0000000..57c816f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCheckTagProps } from './type';
+declare const props: TdCheckTagProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/props.js b/miniprogram_npm/tdesign-miniprogram/check-tag/props.js
new file mode 100644
index 0000000..6d29e68
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/props.js
@@ -0,0 +1 @@
+const props={checked:{type:null,value:void 0},defaultChecked:{type:null,value:void 0},closable:{type:Boolean,value:!1},content:{type:null},disabled:{type:Boolean,value:!1},icon:{type:null},shape:{type:String,value:"square"},size:{type:String,value:"medium"},variant:{type:String,value:"dark"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/type.d.ts b/miniprogram_npm/tdesign-miniprogram/check-tag/type.d.ts
new file mode 100644
index 0000000..c047f1b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/type.d.ts
@@ -0,0 +1,39 @@
+import { SizeEnum } from '../common/common';
+export interface TdCheckTagProps {
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ closable?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: null;
+ value?: string | number | string[];
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'square' | 'round' | 'mark';
+ };
+ size?: {
+ type: StringConstructor;
+ value?: SizeEnum;
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'dark' | 'light' | 'outline' | 'light-outline';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/type.js b/miniprogram_npm/tdesign-miniprogram/check-tag/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.d.ts
new file mode 100644
index 0000000..fe1681b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.d.ts
@@ -0,0 +1,38 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class CheckBoxGroup extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ checkboxOptions: any[];
+ };
+ properties: import("./type").TdCheckboxGroupProps;
+ observers: {
+ value(): void;
+ options(): void;
+ disabled(v: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ $checkAll: any;
+ methods: {
+ getChildren(): any;
+ updateChildren(): void;
+ updateValue({ value, checked, checkAll, item, indeterminate }: {
+ value: any;
+ checked: any;
+ checkAll: any;
+ item: any;
+ indeterminate: any;
+ }): void;
+ initWithOptions(): void;
+ handleInnerChildChange(e: any): void;
+ setCheckall(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.js b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.js
new file mode 100644
index 0000000..42d9154
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-checkbox-group`;let CheckBoxGroup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.relations={"../checkbox/checkbox":{type:"descendant"}},this.data={prefix:prefix,classPrefix:name,checkboxOptions:[]},this.properties=props,this.observers={value(){this.updateChildren()},options(){this.initWithOptions()},disabled(e){var t;(null===(t=this.data.options)||void 0===t?void 0:t.length)?this.initWithOptions():this.getChildren().forEach((t=>{t.setDisabled(e)}))}},this.lifetimes={ready(){this.setCheckall()}},this.controlledProps=[{key:"value",event:"change"}],this.$checkAll=null,this.methods={getChildren(){let e=this.$children;return e.length||(e=this.selectAllComponents(`.${prefix}-checkbox-option`)),e||[]},updateChildren(){const e=this.getChildren(),{value:t}=this.data;e.length>0&&(e.forEach((e=>{!e.data.checkAll&&e.setData({checked:null==t?void 0:t.includes(e.data.value)})})),e.some((e=>e.data.checkAll))&&this.setCheckall())},updateValue({value:e,checked:t,checkAll:l,item:i,indeterminate:a}){let{value:s}=this.data;const{max:n}=this.data,c=new Set(this.getChildren().map((e=>e.data.value)));if(s=s.filter((e=>c.has(e))),!n||!t||s.length!==n){if(l){const e=this.getChildren();s=!t&&a?e.filter((({data:e})=>!(e.disabled&&!s.includes(e.value)))).map((e=>e.data.value)):e.filter((({data:e})=>e.disabled?s.includes(e.value):t&&!e.checkAll)).map((({data:e})=>e.value))}else if(t)s=s.concat(e);else{const t=s.findIndex((t=>t===e));s.splice(t,1)}this._trigger("change",{value:s,context:i})}},initWithOptions(){const{options:e,value:t,keys:l}=this.data;if(!(null==e?void 0:e.length)||!Array.isArray(e))return;const i=e.map((e=>{var i,a,s;return["number","string"].includes(typeof e)?{label:`${e}`,value:e,checked:null==t?void 0:t.includes(e)}:Object.assign(Object.assign({},e),{label:e[null!==(i=null==l?void 0:l.label)&&void 0!==i?i:"label"],value:e[null!==(a=null==l?void 0:l.value)&&void 0!==a?a:"value"],checked:null==t?void 0:t.includes(e[null!==(s=null==l?void 0:l.value)&&void 0!==s?s:"value"])})}));this.setData({checkboxOptions:i})},handleInnerChildChange(e){var t;const{item:l}=e.target.dataset,{checked:i}=e.detail,a={};l.checkAll&&(a.indeterminate=null===(t=this.$checkAll)||void 0===t?void 0:t.data.indeterminate),this.updateValue(Object.assign(Object.assign(Object.assign({},l),{checked:i,item:l}),a))},setCheckall(){const e=this.getChildren();if(this.$checkAll||(this.$checkAll=e.find((e=>e.data.checkAll))),!this.$checkAll)return;const{value:t}=this.data,l=new Set(null==t?void 0:t.filter((e=>e!==this.$checkAll.data.value))),i=e.every((e=>!!e.data.checkAll||l.has(e.data.value)));this.$checkAll.setData({checked:l.size>0,indeterminate:!i})}}}};CheckBoxGroup=__decorate([wxComponent()],CheckBoxGroup);export default CheckBoxGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.json b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.json
new file mode 100644
index 0000000..e58cba0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-checkbox":"../checkbox/checkbox"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxml b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxml
new file mode 100644
index 0000000..9c5e723
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxss b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.d.ts
new file mode 100644
index 0000000..f6e5bf5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCheckboxGroupProps } from './type';
+declare const props: TdCheckboxGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.js b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.js
new file mode 100644
index 0000000..68ffc3f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.js
@@ -0,0 +1 @@
+const props={borderless:{type:Boolean,value:!1},disabled:{type:null,value:void 0},keys:{type:Object},max:{type:Number,value:void 0},name:{type:String,value:""},options:{type:Array,value:[]},value:{type:Array,value:null},defaultValue:{type:Array,value:[]}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.d.ts
new file mode 100644
index 0000000..568a469
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.d.ts
@@ -0,0 +1,43 @@
+import { KeysType } from '../common/common';
+export interface TdCheckboxGroupProps {
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ value?: {
+ type: ArrayConstructor;
+ value?: T;
+ };
+ defaultValue?: {
+ type: ArrayConstructor;
+ value?: T;
+ };
+}
+export declare type CheckboxOption = string | number | CheckboxOptionObj;
+export interface CheckboxOptionObj {
+ label?: string;
+ value?: string | number;
+ disabled?: boolean;
+ checkAll?: true;
+}
+export declare type CheckboxGroupValue = Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.js b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.d.ts
new file mode 100644
index 0000000..3cfb0f9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.d.ts
@@ -0,0 +1,100 @@
+import { SuperComponent, ComponentsOptionsType, RelationsOptions } from '../common/src/index';
+export default class CheckBox extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ relations: RelationsOptions;
+ options: ComponentsOptionsType;
+ properties: {
+ theme: {
+ type: StringConstructor;
+ value: string;
+ };
+ tId: {
+ type: StringConstructor;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checkAll?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string[] | "rectangle" | "circle" | "line";
+ };
+ indeterminate?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: "left" | "right";
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: string | number | boolean;
+ };
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ _disabled: boolean;
+ };
+ observers: {
+ disabled(v: any): void;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ methods: {
+ handleTap(e: WechatMiniprogram.TouchEvent): void;
+ setDisabled(disabled: Boolean): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.js b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.js
new file mode 100644
index 0000000..e4b6e08
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import Props from"./props";const{prefix:prefix}=config,name=`${prefix}-checkbox`;let CheckBox=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-label`,`${prefix}-class-icon`,`${prefix}-class-content`,`${prefix}-class-border`],this.behaviors=["wx://form-field"],this.relations={"../checkbox-group/checkbox-group":{type:"ancestor",linked(e){const{value:t,disabled:s,borderless:a}=e.data,i=new Set(t),o=i.has(this.data.value),c={_disabled:null==this.data.disabled?s:this.data.disabled};a&&(c.borderless=!0),c.checked=this.data.checked||o,this.data.checked&&e.updateValue(this.data),this.data.checkAll&&(c.checked=i.size>0),this.setData(c)}}},this.options={multipleSlots:!0},this.properties=Object.assign(Object.assign({},Props),{theme:{type:String,value:"default"},tId:{type:String}}),this.data={prefix:prefix,classPrefix:name,_disabled:!1},this.observers={disabled(e){this.setData({_disabled:e})}},this.controlledProps=[{key:"checked",event:"change"}],this.methods={handleTap(e){const{_disabled:t,readonly:s,contentDisabled:a}=this.data,{target:i}=e.currentTarget.dataset;if(t||s||"text"===i&&a)return;const{value:o,label:c}=this.data,d=!this.data.checked,r=this.$parent;r?r.updateValue(Object.assign(Object.assign({},this.data),{checked:d,item:{label:c,value:o,checked:d}})):this._trigger("change",{context:{value:o,label:c},checked:d})},setDisabled(e){this.setData({_disabled:this.data.disabled||e})}}}};CheckBox=__decorate([wxComponent()],CheckBox);export default CheckBox;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.json b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxml b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxml
new file mode 100644
index 0000000..71439ca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxml
@@ -0,0 +1 @@
+{{label}}{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxss b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxss
new file mode 100644
index 0000000..e3aace5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-checkbox{display:inline-flex;vertical-align:middle;position:relative;font-size:var(--td-checkbox-font-size,32rpx);background:var(--td-checkbox-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-checkbox:focus{outline:0}.t-checkbox--block{display:flex;padding:var(--td-checkbox-vertical-padding,32rpx)}.t-checkbox--right{flex-direction:row-reverse}.t-checkbox .limit-title-row{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.t-checkbox .image-center{position:absolute;top:50%;transform:translateY(-50%)}.t-checkbox__icon-left{margin-right:20rpx;width:40rpx}.t-checkbox__icon-right{right:0;display:contents;position:absolute;top:50%;transform:translateY(-50%)}.t-checkbox__icon-image{width:var(--td-checkbox-icon-size,48rpx);height:var(--td-checkbox-icon-size,48rpx);vertical-align:top}.t-checkbox__icon{position:relative;display:block;width:var(--td-checkbox-icon-size,48rpx);height:var(--td-checkbox-icon-size,48rpx);color:var(--td-checkbox-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));font-size:var(--td-checkbox-icon-size,48rpx);margin-top:calc((var(--td-checkbox-title-line-height,48rpx) - var(--td-checkbox-icon-size,48rpx))/ 2)}.t-checkbox__icon:empty{display:none}.t-checkbox__icon--checked{color:var(--td-checkbox-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-checkbox__icon--disabled{cursor:not-allowed;color:var(--td-checkbox-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-checkbox__icon--left{margin-right:16rpx}.t-checkbox__icon-circle{width:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx) * 2);height:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx) * 2);border:calc(4rpx * 2) solid var(--td-checkbox-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box}.t-checkbox__icon-circle--disabled{background:var(--td-checkbox-icon-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-checkbox__icon-rectangle{width:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx * 2) * 2);height:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx * 2) * 2);border:calc(4rpx * 2) solid var(--td-checkbox-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box}.t-checkbox__icon-rectangle--disabled{background:var(--td-checkbox-icon-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-checkbox__icon-line::after,.t-checkbox__icon-line::before{content:'';display:block;position:absolute;width:5rpx;border-radius:2rpx;background:var(--td-checkbox-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));transform-origin:top center}.t-checkbox__icon-line::before{height:16rpx;left:8rpx;top:22rpx;transform:rotate(-45deg)}.t-checkbox__icon-line::after{height:26rpx;right:8rpx;top:14rpx;transform:rotate(45deg)}.t-checkbox__icon-line--disabled::after,.t-checkbox__icon-line--disabled::before{background:var(--td-checkbox-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-checkbox__content{flex:1}.t-checkbox__title{color:var(--td-checkbox-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:var(--td-checkbox-title-line-height,48rpx);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.t-checkbox__title--disabled{color:var(--td-checkbox-title-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-checkbox__description{color:var(--td-checkbox-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;font-size:28rpx;line-height:var(--td-checkbox-description-line-height,44rpx)}.t-checkbox__description--disabled{color:var(--td-checkbox-description-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-checkbox__title+.t-checkbox__description:not(:empty){margin-top:8rpx}.t-checkbox__border{position:absolute;bottom:0;left:96rpx;right:0;height:1px;background:var(--td-checkbox-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5)}.t-checkbox__border--right{left:32rpx}.t-checkbox--tag{font-size:28rpx;padding-top:16rpx;padding-bottom:16rpx;text-align:center;background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));border-radius:12rpx}.t-checkbox--tag.t-checkbox--checked{color:var(--td-checkbox-tag-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-checkbox-tag-active-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-checkbox--tag .t-checkbox__title--checked{color:var(--td-checkbox-tag-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-checkbox--tag .t-checkbox__content{margin-right:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/props.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox/props.d.ts
new file mode 100644
index 0000000..81c619e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCheckboxProps } from './type';
+declare const props: TdCheckboxProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/props.js b/miniprogram_npm/tdesign-miniprogram/checkbox/props.js
new file mode 100644
index 0000000..dc20895
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/props.js
@@ -0,0 +1 @@
+const props={block:{type:Boolean,value:!0},borderless:{type:Boolean,value:!1},checkAll:{type:Boolean,value:!1},checked:{type:Boolean,value:null},defaultChecked:{type:Boolean,value:!1},content:{type:String},contentDisabled:{type:Boolean},disabled:{type:null,value:void 0},icon:{type:null,value:"circle"},indeterminate:{type:Boolean,value:!1},label:{type:String},maxContentRow:{type:Number,value:5},maxLabelRow:{type:Number,value:3},name:{type:String,value:""},placement:{type:String,value:"left"},readonly:{type:Boolean,value:!1},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/type.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox/type.d.ts
new file mode 100644
index 0000000..1250d5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/type.d.ts
@@ -0,0 +1,70 @@
+export interface TdCheckboxProps {
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checkAll?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: 'circle' | 'line' | 'rectangle' | string[];
+ };
+ indeterminate?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: string | number | boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/type.js b/miniprogram_npm/tdesign-miniprogram/checkbox/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.d.ts b/miniprogram_npm/tdesign-miniprogram/col/col.d.ts
new file mode 100644
index 0000000..ecebf64
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.d.ts
@@ -0,0 +1,10 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Col extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdColProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ relations: RelationsOptions;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.js b/miniprogram_npm/tdesign-miniprogram/col/col.js
new file mode 100644
index 0000000..0c5f5d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-col`;let Col=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.relations={"../row/row":{type:"parent"}}}};Col=__decorate([wxComponent()],Col);export default Col;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.json b/miniprogram_npm/tdesign-miniprogram/col/col.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.wxml b/miniprogram_npm/tdesign-miniprogram/col/col.wxml
new file mode 100644
index 0000000..a095548
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.wxs b/miniprogram_npm/tdesign-miniprogram/col/col.wxs
new file mode 100644
index 0000000..1822c0b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.wxs
@@ -0,0 +1,17 @@
+var utils = require('../common/utils.wxs');
+
+function getColStyles(gutter, style, customStyle) {
+ var _style = '';
+ if (gutter) {
+ _style = utils._style({
+ 'padding-right': utils.addUnit(gutter / 2),
+ 'padding-left': utils.addUnit(gutter / 2),
+ });
+ }
+
+ return utils._style([style, customStyle]) + _style;
+}
+
+module.exports = {
+ getColStyles: getColStyles,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.wxss b/miniprogram_npm/tdesign-miniprogram/col/col.wxss
new file mode 100644
index 0000000..d0374a4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-col{display:block;box-sizing:border-box;min-height:1px}.t-col--1{width:4.16666667%}.t-col--offset-1{margin-left:4.16666667%}.t-col--2{width:8.33333333%}.t-col--offset-2{margin-left:8.33333333%}.t-col--3{width:12.5%}.t-col--offset-3{margin-left:12.5%}.t-col--4{width:16.66666667%}.t-col--offset-4{margin-left:16.66666667%}.t-col--5{width:20.83333333%}.t-col--offset-5{margin-left:20.83333333%}.t-col--6{width:25%}.t-col--offset-6{margin-left:25%}.t-col--7{width:29.16666667%}.t-col--offset-7{margin-left:29.16666667%}.t-col--8{width:33.33333333%}.t-col--offset-8{margin-left:33.33333333%}.t-col--9{width:37.5%}.t-col--offset-9{margin-left:37.5%}.t-col--10{width:41.66666667%}.t-col--offset-10{margin-left:41.66666667%}.t-col--11{width:45.83333333%}.t-col--offset-11{margin-left:45.83333333%}.t-col--12{width:50%}.t-col--offset-12{margin-left:50%}.t-col--13{width:54.16666667%}.t-col--offset-13{margin-left:54.16666667%}.t-col--14{width:58.33333333%}.t-col--offset-14{margin-left:58.33333333%}.t-col--15{width:62.5%}.t-col--offset-15{margin-left:62.5%}.t-col--16{width:66.66666667%}.t-col--offset-16{margin-left:66.66666667%}.t-col--17{width:70.83333333%}.t-col--offset-17{margin-left:70.83333333%}.t-col--18{width:75%}.t-col--offset-18{margin-left:75%}.t-col--19{width:79.16666667%}.t-col--offset-19{margin-left:79.16666667%}.t-col--20{width:83.33333333%}.t-col--offset-20{margin-left:83.33333333%}.t-col--21{width:87.5%}.t-col--offset-21{margin-left:87.5%}.t-col--22{width:91.66666667%}.t-col--offset-22{margin-left:91.66666667%}.t-col--23{width:95.83333333%}.t-col--offset-23{margin-left:95.83333333%}.t-col--24{width:100%}.t-col--offset-24{margin-left:100%}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/props.d.ts b/miniprogram_npm/tdesign-miniprogram/col/props.d.ts
new file mode 100644
index 0000000..15de965
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/props.d.ts
@@ -0,0 +1,3 @@
+import { TdColProps } from './type';
+declare const props: TdColProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/col/props.js b/miniprogram_npm/tdesign-miniprogram/col/props.js
new file mode 100644
index 0000000..c12761e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/props.js
@@ -0,0 +1 @@
+const props={offset:{type:null},span:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/type.d.ts b/miniprogram_npm/tdesign-miniprogram/col/type.d.ts
new file mode 100644
index 0000000..af55fa4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/type.d.ts
@@ -0,0 +1,10 @@
+export interface TdColProps {
+ offset?: {
+ type: null;
+ value?: string | number;
+ };
+ span?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/col/type.js b/miniprogram_npm/tdesign-miniprogram/col/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.d.ts
new file mode 100644
index 0000000..4ae0ff4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+import type { TdCollapsePanelProps } from './type';
+export interface CollapsePanelProps extends TdCollapsePanelProps {
+}
+export default class CollapsePanel extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ properties: TdCollapsePanelProps;
+ data: {
+ prefix: string;
+ expanded: boolean;
+ classPrefix: string;
+ classBasePrefix: string;
+ ultimateExpandIcon: boolean;
+ ultimateDisabled: boolean;
+ };
+ observers: {
+ disabled(v: any): void;
+ };
+ methods: {
+ updateExpanded(activeValues?: any[]): void;
+ updateStyle(expanded: boolean): Promise;
+ onClick(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.js b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.js
new file mode 100644
index 0000000..d106071
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-collapse-panel`;let CollapsePanel=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-header`],this.options={multipleSlots:!0},this.relations={"../collapse/collapse":{type:"ancestor",linked(e){const{value:t,expandIcon:a,disabled:s}=e.properties;this.setData({ultimateExpandIcon:null==this.properties.expandIcon?a:this.properties.expandIcon,ultimateDisabled:null==this.properties.disabled?s:this.properties.disabled}),this.updateExpanded(t)}}},this.properties=props,this.data={prefix:prefix,expanded:!1,classPrefix:name,classBasePrefix:prefix,ultimateExpandIcon:!1,ultimateDisabled:!1},this.observers={disabled(e){this.setData({ultimateDisabled:!!e})}},this.methods={updateExpanded(e=[]){if(!this.$parent)return;const{value:t}=this.properties,{defaultExpandAll:a}=this.$parent.data,s=a?!this.data.expanded:e.includes(t);s!==this.properties.expanded&&(this.setData({expanded:s}),this.updateStyle(s))},updateStyle(e){return getRect(this,`.${name}__content`).then((e=>e.height)).then((t=>{const a=wx.createAnimation({duration:0,timingFunction:"ease-in-out"});e?a.height(t).top(0).step({duration:300}).height("auto").step():a.height(t).top(1).step({duration:1}).height(0).step({duration:300}),this.setData({animation:a.export()})}))},onClick(){const{ultimateDisabled:e}=this.data,{value:t}=this.properties;e||(this.$parent.data.defaultExpandAll?this.updateExpanded():this.$parent.switch(t))}}}};CollapsePanel=__decorate([wxComponent()],CollapsePanel);export default CollapsePanel;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.json b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.json
new file mode 100644
index 0000000..e599fc8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-cell":"../cell/cell"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxml b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxml
new file mode 100644
index 0000000..b9b5334
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxss b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxss
new file mode 100644
index 0000000..ec504b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-collapse-panel{background-color:var(--td-collapse-panel-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-collapse-panel--disabled{pointer-events:none}.t-collapse-panel--disabled .t-collapse-panel__content,.t-collapse-panel--disabled .t-collapse-panel__header{opacity:.3}.t-collapse-panel--top{display:flex;flex-direction:column-reverse}.t-collapse-panel__header{position:relative;display:flex;justify-content:space-between;align-items:center;padding-left:var(--td-collapse-horizontal-padding,32rpx);height:var(--td-collapse-header-height,auto);color:var(--td-collapse-header-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-collapse-panel__header--top{position:relative}.t-collapse-panel__header--top::after{content:'';display:block;position:absolute;top:0;bottom:unset;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__header--top::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__header--bottom{position:relative}.t-collapse-panel__header--bottom::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__header--bottom::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__header::after{left:32rpx}.t-collapse-panel__header-right{display:inline-flex;align-items:center;height:100%}.t-collapse-panel__header-icon{height:100%;padding-left:8px;width:44px;padding-right:8px;color:var(--td-collapse-icon-color,var(--td-font-gray-3,rgba(0,0,0,.4)))}.t-collapse-panel__extra{font-size:var(--td-collapse-extra-font-size,var(--td-font-size-m,32rpx))}.t-collapse-panel__body{position:relative}.t-collapse-panel__body::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__body::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__wrapper{height:0;overflow:hidden}.t-collapse-panel__content{color:var(--td-collapse-content-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-collapse-content-font-size,var(--td-font-size-base,28rpx));padding:var(--td-collapse-content-padding,32rpx);line-height:var(--td-collapse-content-line-height,1.5)}.t-collapse-panel__content--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}.t-collapse-panel__content--expanded.t-collapse-panel__content--bottom{position:relative}.t-collapse-panel__content--expanded.t-collapse-panel__content--bottom::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__content--expanded.t-collapse-panel__content--bottom::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__content--expanded.t-collapse-panel__content--top{position:relative}.t-collapse-panel__content--expanded.t-collapse-panel__content--top::after{content:'';display:block;position:absolute;top:0;bottom:unset;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__content--expanded.t-collapse-panel__content--top::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__arrow--top{transform:rotate(180deg)}.class-title{font-size:var(--td-collapse-title-font-size,var(--td-font-size-m,32rpx))}.class-title--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}.class-note--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}.class-right-icon--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.d.ts
new file mode 100644
index 0000000..829dbea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCollapsePanelProps } from './type';
+declare const props: TdCollapsePanelProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.js b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.js
new file mode 100644
index 0000000..028b453
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.js
@@ -0,0 +1 @@
+const props={content:{type:String},disabled:{type:null,value:void 0},expandIcon:{type:null,value:void 0},externalClasses:{type:Array},header:{type:String},headerLeftIcon:{type:String},headerRightContent:{type:String},placement:{type:String,value:"bottom"},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.d.ts
new file mode 100644
index 0000000..9834253
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.d.ts
@@ -0,0 +1,38 @@
+export interface TdCollapsePanelProps {
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ expandIcon?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-header', 't-class-content'];
+ };
+ header?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ headerLeftIcon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ headerRightContent?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'bottom' | 'top';
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.js b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.d.ts
new file mode 100644
index 0000000..9fcf0ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.d.ts
@@ -0,0 +1,24 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+import type { CollapseValue, TdCollapseProps } from './type';
+export interface CollapseProps extends TdCollapseProps {
+}
+export default class Collapse extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ properties: TdCollapseProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'value, expandMutex '(): void;
+ };
+ methods: {
+ updateExpanded(): void;
+ switch(panelValue: CollapseValue): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.js b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.js
new file mode 100644
index 0000000..b140f52
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-collapse`;let Collapse=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.relations={"../collapse-panel/collapse-panel":{type:"descendant"}},this.controlledProps=[{key:"value",event:"change"}],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.observers={"value, expandMutex "(){this.updateExpanded()}},this.methods={updateExpanded(){this.$children.forEach((e=>{e.updateExpanded(this.properties.value)}))},switch(e){const{expandMutex:t,value:o}=this.properties;let p=[];p=o.indexOf(e)>-1?o.filter((t=>t!==e)):t?[e]:o.concat(e),this._trigger("change",{value:p})}}}};Collapse=__decorate([wxComponent()],Collapse);export default Collapse;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.json b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxml b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxml
new file mode 100644
index 0000000..93bde30
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxss b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxss
new file mode 100644
index 0000000..24dc13c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-collapse--card{margin:0 32rpx;border-radius:var(--td-radius-large,18rpx);overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/index.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/index.d.ts
new file mode 100644
index 0000000..69a68c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/index.d.ts
@@ -0,0 +1,4 @@
+export { default as Collapse } from './collapse';
+export * from './type';
+export * from './props';
+export { CollapseProps } from './collapse';
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/index.js b/miniprogram_npm/tdesign-miniprogram/collapse/index.js
new file mode 100644
index 0000000..67a070a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/index.js
@@ -0,0 +1 @@
+export{default as Collapse}from"./collapse";export*from"./type";export*from"./props";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/props.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/props.d.ts
new file mode 100644
index 0000000..8ab2059
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCollapseProps } from './type';
+declare const props: TdCollapseProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/props.js b/miniprogram_npm/tdesign-miniprogram/collapse/props.js
new file mode 100644
index 0000000..0eb56f5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/props.js
@@ -0,0 +1 @@
+const props={defaultExpandAll:{type:Boolean,value:!1},disabled:{type:Boolean},expandIcon:{type:Boolean,value:!0},expandMutex:{type:Boolean,value:!1},theme:{type:String,value:"default"},value:{type:Array,value:null},defaultValue:{type:Array,value:[]}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/type.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/type.d.ts
new file mode 100644
index 0000000..8599bc1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/type.d.ts
@@ -0,0 +1,31 @@
+export interface TdCollapseProps {
+ defaultExpandAll?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ expandIcon?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ expandMutex?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'card';
+ };
+ value?: {
+ type: ArrayConstructor;
+ value?: CollapseValue;
+ };
+ defaultValue?: {
+ type: ArrayConstructor;
+ value?: CollapseValue;
+ };
+}
+export declare type CollapseValue = Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/type.js b/miniprogram_npm/tdesign-miniprogram/collapse/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.d.ts
new file mode 100644
index 0000000..751ec5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.d.ts
@@ -0,0 +1,104 @@
+import { SuperComponent } from '../common/src/index';
+import type { Coordinate } from './interfaces';
+import { Color } from './utils';
+export default class ColorPicker extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdColorPickerProps;
+ observers: {
+ format(): void;
+ swatchColors(value: any): void;
+ type(value: any): void;
+ 'usePopup, visible'(usePopup: boolean, visible: boolean): void;
+ value(v: string): void;
+ };
+ color: Color;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ panelRect: {
+ width: number;
+ height: number;
+ };
+ sliderRect: {
+ width: number;
+ left: number;
+ };
+ saturationInfo: {
+ saturation: number;
+ value: number;
+ };
+ saturationThumbStyle: {
+ left: number;
+ top: number;
+ };
+ sliderInfo: {
+ value: number;
+ };
+ hueSliderStyle: {
+ left: number;
+ };
+ alphaSliderStyle: {
+ left: number;
+ };
+ innerValue: string;
+ showPrimaryColorPreview: boolean;
+ previewColor: string;
+ formatList: any[];
+ innerSwatchList: any;
+ isMultiple: boolean;
+ defaultOverlayProps: {};
+ };
+ lifetimes: {
+ ready(): void;
+ attached(): void;
+ detached(): void;
+ };
+ methods: {
+ init(): void;
+ updateEleRect(e: WechatMiniprogram.TouchEvent): void;
+ getEleReact(): void;
+ clickSwatch(e: any): void;
+ setCoreStyle(): void;
+ emitColorChange(trigger: any): void;
+ defaultEmptyColor(): string;
+ updateColor(): void;
+ getSaturationAndValueByCoordinate(coordinate: Coordinate): {
+ saturation: number;
+ value: number;
+ };
+ getSaturationThumbStyle({ saturation, value }: {
+ saturation: any;
+ value: any;
+ }): {
+ color: any;
+ left: string;
+ top: string;
+ };
+ getSliderThumbStyle({ value, maxValue }: {
+ value: any;
+ maxValue: any;
+ }): {
+ left: string;
+ color: any;
+ };
+ onChangeSaturation({ saturation, value }: {
+ saturation: any;
+ value: any;
+ }): void;
+ formatValue(): any;
+ onChangeSlider({ value, isAlpha }: {
+ value: any;
+ isAlpha: any;
+ }): void;
+ handleSaturationDrag(e: any): void;
+ handleSliderDrag(e: any, isAlpha?: boolean): void;
+ handleDiffDrag(e: any): void;
+ onTouchStart(e: any): void;
+ onTouchMove(e: any): void;
+ onTouchEnd(e: any): void;
+ close(trigger: string): void;
+ onVisibleChange(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.js b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.js
new file mode 100644
index 0000000..8cd8529
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{SATURATION_PANEL_DEFAULT_HEIGHT,SATURATION_PANEL_DEFAULT_WIDTH,SLIDER_DEFAULT_WIDTH,DEFAULT_COLOR,ALPHA_MAX,HUE_MAX,DEFAULT_SYSTEM_SWATCH_COLORS}from"./constants";import{getRect,debounce}from"../common/utils";import{Color,getColorObject}from"./utils";const{prefix:prefix}=config,name=`${prefix}-color-picker`,getCoordinate=(t,e,a)=>{var o;const{pageX:i,pageY:r,clientY:l}=t.changedTouches[0]||{},s=a?e.top:null===(o=t.currentTarget)||void 0===o?void 0:o.offsetTop;return{x:Math.min(Math.max(0,i-e.left),e.width),y:Math.min(Math.max(0,(a?l:r)-s),e.height)}},getFormatList=(t,e)=>{const a={HSV:Object.values(e.getHsva()),HSVA:Object.values(e.getHsva()),HSL:Object.values(e.getHsla()),HSLA:Object.values(e.getHsla()),HSB:Object.values(e.getHsla()),RGB:Object.values(e.getRgba()),RGBA:Object.values(e.getRgba()),CMYK:[...Object.values(e.getCmyk()),0],CSS:[e.css,0],HEX:[e.hex,0]},o=a[t];return o?[...o.slice(0,o.length-1),`${Math.round(100*e.alpha)}%`]:a.RGB},genSwatchList=t=>void 0===t?DEFAULT_SYSTEM_SWATCH_COLORS:t&&t.length?t:[];let ColorPicker=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.observers={format(){this.setCoreStyle()},swatchColors(t){this.setData({innerSwatchList:genSwatchList(t)})},type(t){this.setData({isMultiple:"multiple"===t})},"usePopup, visible"(t,e){this.timer&&clearTimeout(this.timer),t&&e&&(this.timer=setTimeout((()=>{this.getEleReact()}),350))},value(t){t&&this.init()}},this.color=new Color(props.defaultValue.value||props.value.value||DEFAULT_COLOR),this.data={prefix:prefix,classPrefix:name,panelRect:{width:SATURATION_PANEL_DEFAULT_WIDTH,height:SATURATION_PANEL_DEFAULT_HEIGHT},sliderRect:{width:SLIDER_DEFAULT_WIDTH,left:0},saturationInfo:{saturation:0,value:0},saturationThumbStyle:{left:0,top:0},sliderInfo:{value:0},hueSliderStyle:{left:0},alphaSliderStyle:{left:0},innerValue:props.defaultValue.value||props.value.value,showPrimaryColorPreview:!1,previewColor:props.defaultValue.value||props.value.value,formatList:getFormatList(props.format.value,this.color),innerSwatchList:genSwatchList(props.swatchColors.value),isMultiple:"multiple"===props.type.value,defaultOverlayProps:{}},this.lifetimes={ready(){this.init()},attached(){this.debouncedUpdateEleRect=debounce((t=>this.updateEleRect(t)),150)},detached(){clearTimeout(this.timer)}},this.methods={init(){const{value:t,defaultValue:e}=this.properties,a=t||e;a&&this.setData({innerValue:a}),this.color=new Color(a||DEFAULT_COLOR),this.updateColor(),this.getEleReact()},updateEleRect(t){if(!t)return;const{scrollTop:e}=t.detail,{width:a,height:o,left:i,initTop:r}=this.data.panelRect;this.setData({panelRect:{width:a,height:o,left:i,top:r-e,initTop:r}})},getEleReact(){Promise.all([getRect(this,`.${name}__saturation`),getRect(this,`.${name}__slider`)]).then((([t,e])=>{this.setData({panelRect:{width:t.width||SATURATION_PANEL_DEFAULT_WIDTH,height:t.height||SATURATION_PANEL_DEFAULT_HEIGHT,left:t.left||0,top:t.top||0,initTop:t.top||0},sliderRect:{left:e.left||0,width:e.width||SLIDER_DEFAULT_WIDTH}},(()=>{this.setCoreStyle()}))}))},clickSwatch(t){const e=t.currentTarget.dataset.value;this.color.update(e),this.emitColorChange("preset"),this.setCoreStyle()},setCoreStyle(){this.setData({sliderInfo:{value:this.color.hue},hueSliderStyle:this.getSliderThumbStyle({value:this.color.hue,maxValue:HUE_MAX}),alphaSliderStyle:this.getSliderThumbStyle({value:100*this.color.alpha,maxValue:ALPHA_MAX}),saturationInfo:{saturation:this.color.saturation,value:this.color.value},saturationThumbStyle:this.getSaturationThumbStyle({saturation:this.color.saturation,value:this.color.value}),previewColor:this.color.rgba,formatList:getFormatList(this.properties.format,this.color)})},emitColorChange(t){this.setData({innerValue:this.formatValue()}),this.triggerEvent("change",{value:this.formatValue(),context:{trigger:t,color:getColorObject(this.color)}})},defaultEmptyColor:()=>DEFAULT_COLOR,updateColor(){const t=this.data.innerValue||this.defaultEmptyColor();this.color.update(t)},getSaturationAndValueByCoordinate(t){const{width:e,height:a}=this.data.panelRect,{x:o,y:i}=t;let r=o/e,l=1-i/a;return r=Math.min(1,Math.max(0,r)),l=Math.min(1,Math.max(0,l)),{saturation:r,value:l}},getSaturationThumbStyle({saturation:t,value:e}){const{width:a,height:o}=this.data.panelRect,i=Math.round((1-e)*o),r=Math.round(t*a);return{color:this.color.rgb,left:`${r}px`,top:`${i}px`}},getSliderThumbStyle({value:t,maxValue:e}){const{width:a}=this.data.sliderRect;if(!a)return;return{left:`${Math.round(t/e*100)}%`,color:this.color.rgb}},onChangeSaturation({saturation:t,value:e}){const{saturation:a,value:o}=this.color;let i="palette-saturation-brightness";if(e!==o&&t!==a)this.color.saturation=t,this.color.value=e,i="palette-saturation-brightness";else if(t!==a)this.color.saturation=t,i="palette-saturation";else{if(e===o)return;this.color.value=e,i="palette-brightness"}this.triggerEvent("palette-bar-change",{color:getColorObject(this.color)}),this.emitColorChange(i),this.setCoreStyle()},formatValue(){return this.color.getFormatsColorMap()[this.properties.format]||this.color.css},onChangeSlider({value:t,isAlpha:e}){e?this.color.alpha=t/100:this.color.hue=t,this.emitColorChange(e?"palette-alpha-bar":"palette-hue-bar"),this.setCoreStyle()},handleSaturationDrag(t){const{usePopup:e,fixed:a}=this.properties,o=getCoordinate(t,this.data.panelRect,e||a),{saturation:i,value:r}=this.getSaturationAndValueByCoordinate(o);this.onChangeSaturation({saturation:i,value:r})},handleSliderDrag(t,e=!1){const{width:a}=this.data.sliderRect,o=getCoordinate(t,this.data.sliderRect),{x:i}=o,r=e?ALPHA_MAX:HUE_MAX;let l=Math.round(i/a*r*100)/100;l<0&&(l=0),l>r&&(l=r),this.onChangeSlider({value:l,isAlpha:e})},handleDiffDrag(t){switch(t.target.dataset.type||t.currentTarget.dataset.type){case"saturation":this.handleSaturationDrag(t);break;case"hue-slider":this.handleSliderDrag(t);break;case"alpha-slider":this.handleSliderDrag(t,!0)}},onTouchStart(t){this.handleDiffDrag(t)},onTouchMove(t){this.handleDiffDrag(t)},onTouchEnd(t){wx.nextTick((()=>{this.handleDiffDrag(t)}))},close(t){this.properties.autoClose&&this.setData({visible:!1}),this.triggerEvent("close",{trigger:t})},onVisibleChange(){this.close("overlay")}}}};ColorPicker=__decorate([wxComponent()],ColorPicker);export default ColorPicker;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.json b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.json
new file mode 100644
index 0000000..4139673
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.json
@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxml b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxml
new file mode 100644
index 0000000..b064e62
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxss b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxss
new file mode 100644
index 0000000..7a77351
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-color-picker__panel{padding:0;width:var(--td-color-picker-panel-width,750rpx);background:var(--td-color-picker-background,#fff);border-top-left-radius:var(--td-color-picker-panel-radius,24rpx);border-top-right-radius:var(--td-color-picker-panel-radius,24rpx);user-select:none}.t-color-picker__body{padding:var(--td-color-picker-panel-padding,32rpx);padding-bottom:56rpx}.t-color-picker__thumb{position:absolute;z-index:1;outline:0;width:var(--td-color-picker-slider-thumb-size,48rpx);height:var(--td-color-picker-slider-thumb-size,48rpx);border-radius:var(--td-color-picker-border-radius-circle,50%);box-shadow:var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12));color:var(--td-text-color-brand,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));box-sizing:border-box}.t-color-picker__thumb::after,.t-color-picker__thumb::before{content:'';position:absolute;border-radius:var(--td-color-picker-border-radius-circle,50%);box-sizing:border-box;display:block;border:1px solid #dcdcdc}.t-color-picker__thumb::before{left:0;top:0;width:100%;height:100%;background-color:#fff}.t-color-picker__thumb::after{left:3px;top:3px;width:calc(100% - 6px);height:calc(100% - 6px);padding:var(--td-color-picker-slider-thumb-padding,6rpx);background:currentcolor}.t-color-picker__saturation{height:var(--td-color-picker-saturation-height,288rpx);border-radius:var(--td-color-picker-saturation-radius,12rpx);position:relative;overflow:hidden;background:0 0}.t-color-picker__saturation::after,.t-color-picker__saturation::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%}.t-color-picker__saturation::before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation::after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{width:var(--td-color-picker-saturation-thumb-size,48rpx);height:var(--td-color-picker-saturation-thumb-size,48rpx);border-radius:var(--td-color-picker-border-radius-circle,50%);transform:translate(-50%,-50%)}.t-color-picker__slider-wrapper{border-radius:calc(var(--td-color-picker-slider-height,16rpx)/ 2);padding:var(--td-color-picker-slider-wrapper-padding,0 18rpx);position:relative}.t-color-picker__slider-wrapper--hue-type{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);margin:16rpx 0}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti,var(--td-font-white-1,#fff));margin:40rpx 0 16rpx 0;background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-size:6px 6px;background-position:0 0,3px 3px}.t-color-picker__slider-wrapper--alpha-type .t-color-picker__rail{background:linear-gradient(to right,transparent,currentcolor)}.t-color-picker__slider-padding{position:absolute;left:0;top:0;width:100%;height:var(--td-color-picker-slider-height,16rpx);border-radius:calc(var(--td-color-picker-slider-height,16rpx)/ 2)}.t-color-picker__slider{height:var(--td-color-picker-slider-height,16rpx);position:relative;border-radius:calc(var(--td-color-picker-slider-height,16rpx)/ 2);color:transparent;outline:0;z-index:1}.t-color-picker__slider .t-color-picker__thumb{transform:translate(var(--td-color-picker-slider-thumb-transform-x,-18rpx),-50%);top:50%}.t-color-picker__slider .t-color-picker__rail{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;border-radius:inherit}.t-color-picker__sliders-wrapper{display:flex;align-items:center;margin:32rpx 0 40rpx}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{flex-shrink:0;margin-left:var(--td-color-picker-margin,24rpx);width:var(--td-color-picker-gradient-preview-width,56rpx);height:var(--td-color-picker-gradient-preview-height,56rpx);border-radius:var(--td-color-picker-gradient-preview-radius,6rpx);overflow:hidden;background:var(--td-text-color-anti,var(--td-font-white-1,#fff));background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-size:6px 6px;background-position:0 0,3px 3px}.t-color-picker__sliders-preview-inner{display:block;width:100%;height:100%}.t-color-picker__format{display:flex;align-items:center;justify-content:space-between;color:rgba(0,0,0,.4);font-size:28rpx;text-align:center;line-height:56rpx;height:56rpx;margin-top:40rpx}.t-color-picker__format-item{background:var(--td-color-picker-format-background-color,var(--td-gray-color-1,#f3f3f3))}.t-color-picker__format-item--first{flex-shrink:0;width:136rpx;border:1px solid #dcdcdc;border-radius:12rpx;margin-right:24rpx}.t-color-picker__format-item--second{flex:1}.t-color-picker__format-inputs{display:flex;align-items:center;justify-content:space-around}.t-color-picker__format-input{flex:1;width:0;margin-left:-1px;border:1px solid #dcdcdc;border-radius:12rpx}.t-color-picker__format-input:not(:first-child):not(:last-child){border-radius:0}.t-color-picker__format-input:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.t-color-picker__format-input:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.t-color-picker__format-input--fixed{flex-shrink:0;flex-grow:0;flex-basis:133rpx}.t-color-picker__swatches-wrap{margin-top:56rpx;position:relative}.t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-color-picker-margin,24rpx)}.t-color-picker__swatches-title{font:var(--td-color-picker-swatches-title-font,32rpx);padding:0;color:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:space-between;height:48rpx;line-height:48rpx}.t-color-picker__swatches-items{margin-top:24rpx;width:100%;list-style:none;display:flex;overflow-x:auto;overflow-y:auto}.t-color-picker__swatches-items::-webkit-scrollbar{display:none;width:0;height:0;color:transparent}.t-color-picker__swatches-item{width:var(--td-color-picker-swatch-width,48rpx);height:var(--td-color-picker-swatch-height,48rpx);border-radius:6rpx;padding:var(--td-color-picker-swatch-padding,0);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;transform-origin:center;transition:all var(--td-anim-duration-base,.2s) var(--td-anim-time-fn-easing,cubic-bezier(.38,0,.24,1));box-sizing:border-box;flex-shrink:0;margin-right:24rpx;border-radius:var(--td-color-picker-swatch-border-radius,6rpx)}.t-color-picker__swatches-item::after{content:'';width:100%;height:100%;position:absolute;left:0;top:0;opacity:0;background:rgba(0,0,0,.2)}.t-color-picker__swatches-item:active::after{opacity:1}.t-color-picker__swatches-inner{width:100%;height:100%;display:block;border-radius:var(--td-color-picker-swatch-border-radius,6rpx);position:relative}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/constants.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.d.ts
new file mode 100644
index 0000000..95998fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.d.ts
@@ -0,0 +1,7 @@
+export declare const DEFAULT_COLOR = "#001F97";
+export declare const DEFAULT_SYSTEM_SWATCH_COLORS: string[];
+export declare const SATURATION_PANEL_DEFAULT_WIDTH = 343;
+export declare const SATURATION_PANEL_DEFAULT_HEIGHT = 144;
+export declare const SLIDER_DEFAULT_WIDTH = 303;
+export declare const HUE_MAX = 360;
+export declare const ALPHA_MAX = 100;
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/constants.js b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.js
new file mode 100644
index 0000000..ee1c4b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.js
@@ -0,0 +1 @@
+export const DEFAULT_COLOR="#001F97";export const DEFAULT_SYSTEM_SWATCH_COLORS=["#F2F3FF","#D9E1FF","#B5C7FF","#8EABFF","#618DFF","#366EF4","#0052D9","#003CAB","#002A7C","#001A57"];export const SATURATION_PANEL_DEFAULT_WIDTH=343;export const SATURATION_PANEL_DEFAULT_HEIGHT=144;export const SLIDER_DEFAULT_WIDTH=303;export const HUE_MAX=360;export const ALPHA_MAX=100;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.d.ts
new file mode 100644
index 0000000..df8e678
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.d.ts
@@ -0,0 +1,5 @@
+export interface Coordinate {
+ x: number;
+ y: number;
+}
+export declare type ColorPickerChangeTrigger = 'palette-saturation-brightness' | 'palette-saturation' | 'palette-brightness' | 'palette-hue-bar' | 'palette-alpha-bar' | 'preset';
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.js b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/props.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/props.d.ts
new file mode 100644
index 0000000..177f6e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/props.d.ts
@@ -0,0 +1,3 @@
+import { TdColorPickerProps } from './type';
+declare const props: TdColorPickerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/props.js b/miniprogram_npm/tdesign-miniprogram/color-picker/props.js
new file mode 100644
index 0000000..fb8fa6e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!0},enableAlpha:{type:Boolean,value:!1},fixed:{type:Boolean,value:!1},format:{type:String,value:"RGB"},popupProps:{type:Object,value:{}},swatchColors:{type:Array},type:{type:String,value:"base"},usePopup:{type:Boolean,value:!1},value:{type:String,value:null},defaultValue:{type:String,value:""},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/template.wxml b/miniprogram_npm/tdesign-miniprogram/color-picker/template.wxml
new file mode 100644
index 0000000..00f1f0e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/template.wxml
@@ -0,0 +1 @@
+{{format}}{{item}}系统预设色彩
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/type.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/type.d.ts
new file mode 100644
index 0000000..c307246
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/type.d.ts
@@ -0,0 +1,48 @@
+import { PopupProps } from '../popup/index';
+export interface TdColorPickerProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ enableAlpha?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ format?: {
+ type: StringConstructor;
+ value?: 'RGB' | 'RGBA' | 'HSL' | 'HSLA' | 'HSB' | 'HSV' | 'HSVA' | 'HEX' | 'CMYK' | 'CSS';
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ swatchColors?: {
+ type: ArrayConstructor;
+ value?: Array | null;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: TypeEnum;
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ defaultValue?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type TypeEnum = 'base' | 'multiple';
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/type.js b/miniprogram_npm/tdesign-miniprogram/color-picker/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.d.ts
new file mode 100644
index 0000000..c985ed7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.d.ts
@@ -0,0 +1 @@
+export * from '../common/shared/color-picker/index';
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/utils.js b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.js
new file mode 100644
index 0000000..4bdc293
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.js
@@ -0,0 +1 @@
+export*from"../common/shared/color-picker/index";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/bus.d.ts b/miniprogram_npm/tdesign-miniprogram/common/bus.d.ts
new file mode 100644
index 0000000..fddbb54
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/bus.d.ts
@@ -0,0 +1,7 @@
+export default class Bus {
+ listeners: Map;
+ emitted: Set;
+ constructor();
+ on(evtName: string, listener: any): void;
+ emit(evtName: string): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/bus.js b/miniprogram_npm/tdesign-miniprogram/common/bus.js
new file mode 100644
index 0000000..9cd79ab
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/bus.js
@@ -0,0 +1 @@
+export default class Bus{constructor(){this.listeners=new Map,this.emitted=new Set}on(t,e){if(this.emitted.has(t))return void e();const s=this.listeners.get(t)||[];s.push(e),this.listeners.set(t,s)}emit(t){const e=this.listeners.get(t);e&&e.forEach((t=>t())),this.emitted.add(t)}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/common.d.ts b/miniprogram_npm/tdesign-miniprogram/common/common.d.ts
new file mode 100644
index 0000000..12f8f81
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/common.d.ts
@@ -0,0 +1,56 @@
+export declare type Classes = Array;
+export interface Styles {
+ [css: string]: string | number;
+}
+export declare type ImageEvent = any;
+export declare type PlainObject = {
+ [key: string]: any;
+};
+export declare type OptionData = {
+ label?: string;
+ value?: string | number;
+} & PlainObject;
+export declare type TreeOptionData = {
+ children?: Array> | boolean;
+ label?: string;
+ text?: string;
+ value?: T;
+ content?: string;
+} & PlainObject;
+export declare type SizeEnum = 'small' | 'medium' | 'large';
+export declare type ShapeEnum = 'circle' | 'round';
+export declare type HorizontalAlignEnum = 'left' | 'center' | 'right';
+export declare type VerticalAlignEnum = 'top' | 'middle' | 'bottom';
+export declare type LayoutEnum = 'vertical' | 'horizontal';
+export declare type ClassName = {
+ [className: string]: any;
+} | ClassName[] | string;
+export declare type CSSSelector = string;
+export interface KeysType {
+ value?: string;
+ label?: string;
+ disabled?: string;
+}
+export interface TreeKeysType extends KeysType {
+ children?: string;
+}
+export interface HTMLElementAttributes {
+ [attribute: string]: string;
+}
+export interface TScroll {
+ bufferSize?: number;
+ isFixedRowHeight?: boolean;
+ rowHeight?: number;
+ threshold?: number;
+ type: 'lazy' | 'virtual';
+}
+export declare type InfinityScroll = TScroll;
+export interface ScrollToElementParams {
+ index?: number;
+ top?: number;
+ time?: number;
+ behavior?: 'auto' | 'smooth';
+}
+export interface ComponentScrollToElementParams extends ScrollToElementParams {
+ key?: string | number;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/common.js b/miniprogram_npm/tdesign-miniprogram/common/common.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/common.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/component.d.ts b/miniprogram_npm/tdesign-miniprogram/common/component.d.ts
new file mode 100644
index 0000000..a8d86ae
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/component.d.ts
@@ -0,0 +1,3 @@
+///
+declare const TComponent: typeof Component;
+export default TComponent;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/component.js b/miniprogram_npm/tdesign-miniprogram/common/component.js
new file mode 100644
index 0000000..980c886
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/component.js
@@ -0,0 +1 @@
+const TComponent=o=>(o.options=Object.assign({multipleSlots:!0,addGlobalClass:!0},o.options),Component(o));export default TComponent;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/config.d.ts b/miniprogram_npm/tdesign-miniprogram/common/config.d.ts
new file mode 100644
index 0000000..4a844b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/config.d.ts
@@ -0,0 +1,6 @@
+///
+declare const _default: {
+ prefix: string;
+};
+export default _default;
+export declare const prefix = "t";
diff --git a/miniprogram_npm/tdesign-miniprogram/common/config.js b/miniprogram_npm/tdesign-miniprogram/common/config.js
new file mode 100644
index 0000000..b655b28
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/config.js
@@ -0,0 +1 @@
+export default{prefix:"t"};export const prefix="t";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.d.ts
new file mode 100644
index 0000000..d9336de
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.d.ts
@@ -0,0 +1,19 @@
+import type { TDate, TCalendarType, TCalendarValue } from './type';
+export default class TCalendar {
+ firstDayOfWeek: number;
+ value: TCalendarValue | TCalendarValue[];
+ type: TCalendarType;
+ minDate: Date;
+ maxDate: Date;
+ format: (day: TDate) => TDate;
+ constructor(options?: {});
+ getTrimValue(): Date | Date[];
+ getDays(weekdays: string[]): any[];
+ getMonths(): any[];
+ select({ cellType, year, month, date }: {
+ cellType: any;
+ year: any;
+ month: any;
+ date: any;
+ }): Date | TCalendarValue[];
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.js b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.js
new file mode 100644
index 0000000..a9caa03
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.js
@@ -0,0 +1 @@
+import{getDateRect,isSameDate,getMonthDateRect,isValidDate,getDate}from"../date";export default class TCalendar{constructor(e={}){this.type="single",Object.assign(this,e),this.minDate||(this.minDate=getDate()),this.maxDate||(this.maxDate=getDate(6))}getTrimValue(){const{value:e,type:t}=this,a=e=>e instanceof Date?e:"number"==typeof e?new Date(e):new Date;if("single"===t&&isValidDate(e))return a(e);if("multiple"===t||"range"===t){if(Array.isArray(e)){return e.every((e=>isValidDate(e)))?e.map((e=>a(e))):[]}return[]}}getDays(e){const t=[];let a=this.firstDayOfWeek%7;for(;t.length<7;)t.push(e[a]),a=(a+1)%7;return t}getMonths(){const e=[],t=this.getTrimValue(),{minDate:a,maxDate:i,type:r,format:s}=this,n=getDateRect(a);let{year:m,month:l}=n;const{time:o}=n,{year:D,month:h,time:u}=getDateRect(i),y=(e,a,i)=>{const s=new Date(e,a,i,23,59,59);if("single"===r&&t&&isSameDate({year:e,month:a,date:i},t))return"selected";if("multiple"===r&&t){if(t.some((t=>isSameDate({year:e,month:a,date:i},t))))return"selected"}if("range"===r&&t&&Array.isArray(t)){const[r,n]=t;if(r&&isSameDate({year:e,month:a,date:i},r))return"start";if(n&&isSameDate({year:e,month:a,date:i},n))return"end";if(r&&n&&s.getTime()>r.getTime()&&s.getTime()u?"disabled":""};for(;mt.lastDate);e+=1){const t={date:new Date(m,l,e),day:e,type:y(m,l,e)};a.push(s?s(t):t)}e.push({year:m,month:l,months:a,weekdayOfFirstDay:t.weekdayOfFirstDay});const i=getDateRect(new Date(m,l+1,1));m=i.year,l=i.month}return e}select({cellType:e,year:t,month:a,date:i}){const{type:r}=this,s=this.getTrimValue();if("disabled"===e)return;const n=new Date(t,a,i);if(this.value=n,"range"===r&&Array.isArray(s))1===s.length&&n>s[0]?this.value=[s[0],n]:this.value=[n];else if("multiple"===r&&Array.isArray(s)){const e=[...s],t=s.findIndex((e=>isSameDate(e,n)));t>-1?e.splice(t,1):e.push(n),this.value=e}return this.value}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.d.ts
new file mode 100644
index 0000000..f5da97a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.d.ts
@@ -0,0 +1,11 @@
+export declare type TCalendarValue = number | Date;
+export declare type TDateType = 'selected' | 'disabled' | 'start' | 'centre' | 'end' | '';
+export declare type TCalendarType = 'single' | 'multiple' | 'range';
+export interface TDate {
+ date: Date;
+ day: number;
+ type: TDateType;
+ className?: string;
+ prefix?: string;
+ suffix?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.js b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.d.ts
new file mode 100644
index 0000000..d0e92a8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.d.ts
@@ -0,0 +1,7 @@
+export declare const rgb2cmyk: (red: number, green: number, blue: number) => number[];
+export declare const cmyk2rgb: (cyan: number, magenta: number, yellow: number, black: number) => {
+ r: number;
+ g: number;
+ b: number;
+};
+export declare const cmykInputToColor: (input: string) => string;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.js
new file mode 100644
index 0000000..6fa325a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.js
@@ -0,0 +1 @@
+export const rgb2cmyk=(t,r,e)=>{let n=0,o=0,c=0,a=0;const s=parseInt(`${t}`.replace(/\s/g,""),10),m=parseInt(`${r}`.replace(/\s/g,""),10),u=parseInt(`${e}`.replace(/\s/g,""),10);if(0===s&&0===m&&0===u)return a=1,[0,0,0,1];n=1-s/255,o=1-m/255,c=1-u/255;const p=Math.min(n,Math.min(o,c));return n=(n-p)/(1-p),o=(o-p)/(1-p),c=(c-p)/(1-p),a=p,[n,o,c,a]};export const cmyk2rgb=(t,r,e,n)=>{let o=t/100,c=r/100,a=e/100;const s=n/100;o=o*(1-s)+s,c=c*(1-s)+s,a=a*(1-s)+s;let m=1-o,u=1-c,p=1-a;return m=Math.round(255*m),u=Math.round(255*u),p=Math.round(255*p),{r:m,g:u,b:p}};const REG_CMYK_STRING=/cmyk\((\d+%?),(\d+%?),(\d+%?),(\d+%?)\)/,toNumber=t=>Math.max(0,Math.min(255,parseInt(t,10)));export const cmykInputToColor=t=>{if(/cmyk/i.test(t)){const r=t.replace(/\s/g,"").match(REG_CMYK_STRING),e=toNumber(r[1]),n=toNumber(r[2]),o=toNumber(r[3]),c=toNumber(r[4]),{r:a,g:s,b:m}=cmyk2rgb(e,n,o,c);return`rgb(${a}, ${s}, ${m})`}return t};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.d.ts
new file mode 100644
index 0000000..9b17162
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.d.ts
@@ -0,0 +1,107 @@
+import tinyColor from 'tinycolor2/esm/tinycolor';
+import { GradientColors, GradientColorPoint } from './gradient';
+export interface ColorObject {
+ alpha: number;
+ css: string;
+ hex: string;
+ hex8: string;
+ hsl: string;
+ hsla: string;
+ hsv: string;
+ hsva: string;
+ rgb: string;
+ rgba: string;
+ saturation: number;
+ value: number;
+ isGradient: boolean;
+ linearGradient?: string;
+}
+interface ColorStates {
+ s: number;
+ v: number;
+ h: number;
+ a: number;
+}
+interface GradientStates {
+ colors: GradientColorPoint[];
+ degree: number;
+ selectedId: string;
+ css?: string;
+}
+export declare const gradientColors2string: (object: GradientColors) => string;
+export declare const getColorWithoutAlpha: (color: string) => any;
+export declare const genId: () => string;
+export declare const genGradientPoint: (left: number, color: string) => GradientColorPoint;
+export declare class Color {
+ states: ColorStates;
+ originColor: string;
+ isGradient: boolean;
+ gradientStates: GradientStates;
+ constructor(input: string);
+ update(input: string): void;
+ get saturation(): number;
+ set saturation(value: number);
+ get value(): number;
+ set value(value: number);
+ get hue(): number;
+ set hue(value: number);
+ get alpha(): number;
+ set alpha(value: number);
+ get rgb(): string;
+ get rgba(): string;
+ get hsv(): string;
+ get hsva(): string;
+ get hsl(): string;
+ get hsla(): string;
+ get hex(): any;
+ get hex8(): any;
+ get cmyk(): string;
+ get css(): string;
+ get linearGradient(): string;
+ get gradientColors(): GradientColorPoint[];
+ set gradientColors(colors: GradientColorPoint[]);
+ get gradientSelectedId(): string;
+ set gradientSelectedId(id: string);
+ get gradientDegree(): number;
+ set gradientDegree(degree: number);
+ get gradientSelectedPoint(): GradientColorPoint;
+ getFormatsColorMap(): {
+ HEX: any;
+ CMYK: string;
+ RGB: string;
+ RGBA: string;
+ HSL: string;
+ HSLA: string;
+ HSV: string;
+ HSVA: string;
+ CSS: string;
+ HEX8: any;
+ };
+ updateCurrentGradientColor(): false | this;
+ updateStates(input: string): void;
+ getRgba(): {
+ r: number;
+ g: number;
+ b: number;
+ a: tinyColor.ColorFormats.RGBA;
+ };
+ getCmyk(): {
+ c: number;
+ m: number;
+ y: number;
+ k: number;
+ };
+ getHsva(): tinyColor.ColorFormats.HSVA;
+ getHsla(): tinyColor.ColorFormats.HSLA;
+ equals(color: string): boolean;
+ static isValid(color: string): boolean;
+ static hsva2color(h: number, s: number, v: number, a: number): any;
+ static hsla2color(h: number, s: number, l: number, a: number): any;
+ static rgba2color(r: number, g: number, b: number, a: number): any;
+ static hex2color(hex: string, a: number): any;
+ static object2color(object: any, format: string): any;
+ static isGradientColor: (input: string) => boolean;
+ static compare: (color1: string, color2: string) => boolean;
+}
+export declare const getColorObject: (color: Color) => ColorObject;
+export default Color;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.js
new file mode 100644
index 0000000..27bc699
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.js
@@ -0,0 +1 @@
+import tinyColor from"tinycolor2/esm/tinycolor";import{cmykInputToColor,rgb2cmyk}from"./cmyk";import{parseGradientString,isGradientColor}from"./gradient";const mathRound=Math.round,hsv2rgba=t=>tinyColor(t).toRgb(),hsv2hsva=t=>tinyColor(t).toHsv(),hsv2hsla=t=>tinyColor(t).toHsl();export const gradientColors2string=t=>{const{points:e,degree:r}=t;return`linear-gradient(${r}deg,${e.sort(((t,e)=>t.left-e.left)).map((t=>`${t.color} ${Math.round(100*t.left)/100}%`)).join(",")})`};export const getColorWithoutAlpha=t=>tinyColor(t).setAlpha(1).toHexString();export const genId=()=>(1+4294967295*Math.random()).toString(16);export const genGradientPoint=(t,e)=>({id:genId(),left:t,color:e});export class Color{constructor(t){this.states={s:100,v:100,h:100,a:1},this.gradientStates={colors:[],degree:0,selectedId:null,css:""},this.update(t)}update(t){var e,r;const s=parseGradientString(t);if(this.isGradient&&!s){const e=tinyColor(t).toHsv();return this.states=e,void this.updateCurrentGradientColor()}this.originColor=t,this.isGradient=!1;let a=t;if(s){this.isGradient=!0;const t=s,i=t.points.map((t=>genGradientPoint(t.left,t.color)));this.gradientStates={colors:i,degree:t.degree,selectedId:(null===(e=i[0])||void 0===e?void 0:e.id)||null},this.gradientStates.css=this.linearGradient,a=null===(r=this.gradientSelectedPoint)||void 0===r?void 0:r.color}this.updateStates(a)}get saturation(){return this.states.s}set saturation(t){this.states.s=Math.max(0,Math.min(100,t)),this.updateCurrentGradientColor()}get value(){return this.states.v}set value(t){this.states.v=Math.max(0,Math.min(100,t)),this.updateCurrentGradientColor()}get hue(){return this.states.h}set hue(t){this.states.h=Math.max(0,Math.min(360,t)),this.updateCurrentGradientColor()}get alpha(){return this.states.a}set alpha(t){this.states.a=Math.max(0,Math.min(1,Math.round(100*t)/100)),this.updateCurrentGradientColor()}get rgb(){const{r:t,g:e,b:r}=hsv2rgba(this.states);return`rgb(${mathRound(t)}, ${mathRound(e)}, ${mathRound(r)})`}get rgba(){const{r:t,g:e,b:r,a:s}=hsv2rgba(this.states);return`rgba(${mathRound(t)}, ${mathRound(e)}, ${mathRound(r)}, ${s})`}get hsv(){const{h:t,s:e,v:r}=this.getHsva();return`hsv(${t}, ${e}%, ${r}%)`}get hsva(){const{h:t,s:e,v:r,a:s}=this.getHsva();return`hsva(${t}, ${e}%, ${r}%, ${s})`}get hsl(){const{h:t,s:e,l:r}=this.getHsla();return`hsl(${t}, ${e}%, ${r}%)`}get hsla(){const{h:t,s:e,l:r,a:s}=this.getHsla();return`hsla(${t}, ${e}%, ${r}%, ${s})`}get hex(){return tinyColor(this.states).toHexString()}get hex8(){return tinyColor(this.states).toHex8String()}get cmyk(){const{c:t,m:e,y:r,k:s}=this.getCmyk();return`cmyk(${t}, ${e}, ${r}, ${s})`}get css(){return this.isGradient?this.linearGradient:this.rgba}get linearGradient(){const{gradientColors:t,gradientDegree:e}=this;return gradientColors2string({points:t,degree:e})}get gradientColors(){return this.gradientStates.colors}set gradientColors(t){this.gradientStates.colors=t,this.gradientStates.css=this.linearGradient}get gradientSelectedId(){return this.gradientStates.selectedId}set gradientSelectedId(t){var e;t!==this.gradientSelectedId&&(this.gradientStates.selectedId=t,this.updateStates(null===(e=this.gradientSelectedPoint)||void 0===e?void 0:e.color))}get gradientDegree(){return this.gradientStates.degree}set gradientDegree(t){this.gradientStates.degree=Math.max(0,Math.min(360,t)),this.gradientStates.css=this.linearGradient}get gradientSelectedPoint(){const{gradientColors:t,gradientSelectedId:e}=this;return t.find((t=>t.id===e))}getFormatsColorMap(){return{HEX:this.hex,CMYK:this.cmyk,RGB:this.rgb,RGBA:this.rgba,HSL:this.hsl,HSLA:this.hsla,HSV:this.hsv,HSVA:this.hsva,CSS:this.css,HEX8:this.hex8}}updateCurrentGradientColor(){const{isGradient:t,gradientColors:e,gradientSelectedId:r}=this,{length:s}=e,a=this.gradientSelectedPoint;if(!t||0===s||!a)return!1;const i=e.findIndex((t=>t.id===r)),n=Object.assign(Object.assign({},a),{color:this.rgba});return e.splice(i,1,n),this.gradientColors=e.slice(),this}updateStates(t){const e=tinyColor(cmykInputToColor(t)).toHsv();this.states=e}getRgba(){const{r:t,g:e,b:r,a:s}=hsv2rgba(this.states);return{r:mathRound(t),g:mathRound(e),b:mathRound(r),a:s}}getCmyk(){const{r:t,g:e,b:r}=this.getRgba(),[s,a,i,n]=rgb2cmyk(t,e,r);return{c:mathRound(100*s),m:mathRound(100*a),y:mathRound(100*i),k:mathRound(100*n)}}getHsva(){let{h:t,s:e,v:r,a:s}=hsv2hsva(this.states);return t=mathRound(t),e=mathRound(100*e),r=mathRound(100*r),s*=1,{h:t,s:e,v:r,a:s}}getHsla(){let{h:t,s:e,l:r,a:s}=hsv2hsla(this.states);return t=mathRound(t),e=mathRound(100*e),r=mathRound(100*r),s*=1,{h:t,s:e,l:r,a:s}}equals(t){return tinyColor.equals(this.rgba,t)}static isValid(t){return!!parseGradientString(t)||tinyColor(t).isValid()}static hsva2color(t,e,r,s){return tinyColor({h:t,s:e,v:r,a:s}).toHsvString()}static hsla2color(t,e,r,s){return tinyColor({h:t,s:e,l:r,a:s}).toHslString()}static rgba2color(t,e,r,s){return tinyColor({r:t,g:e,b:r,a:s}).toHsvString()}static hex2color(t,e){const r=tinyColor(t);return r.setAlpha(e),r.toHexString()}static object2color(t,e){if("CMYK"===e){const{c:e,m:r,y:s,k:a}=t;return`cmyk(${e}, ${r}, ${s}, ${a})`}return tinyColor(t,{format:e}).toRgbString()}}Color.isGradientColor=t=>!!isGradientColor(t),Color.compare=(t,e)=>{const r=Color.isGradientColor(t),s=Color.isGradientColor(e);if(r&&s){return gradientColors2string(parseGradientString(t))===gradientColors2string(parseGradientString(e))}return!r&&!s&&tinyColor.equals(t,e)};const COLOR_OBJECT_OUTPUT_KEYS=["alpha","css","hex","hex8","hsl","hsla","hsv","hsva","rgb","rgba","saturation","value","isGradient"];export const getColorObject=t=>{if(!t)return null;const e=Object.create(null);return COLOR_OBJECT_OUTPUT_KEYS.forEach((r=>e[r]=t[r])),t.isGradient&&(e.linearGradient=t.linearGradient),e};export default Color;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.d.ts
new file mode 100644
index 0000000..3f496b0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.d.ts
@@ -0,0 +1,12 @@
+export interface GradientColorPoint {
+ id?: string;
+ color?: string;
+ left?: number;
+}
+export interface GradientColors {
+ points: GradientColorPoint[];
+ degree: number;
+}
+export declare const isGradientColor: (input: string) => null | RegExpExecArray;
+export declare const parseGradientString: (input: string) => GradientColors | boolean;
+export default parseGradientString;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.js
new file mode 100644
index 0000000..2c585c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.js
@@ -0,0 +1 @@
+import tinyColor from"tinycolor2/esm/tinycolor";import{isString,isNull}from"../../validator";const combineRegExp=(e,t)=>{let o="";for(let t=0;t{const e=/\s*,\s*/,t=/(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/,o=combineRegExp(["(?:",/#(?:[a-f0-9]{6}|[a-f0-9]{3})/,"|","(?:rgb|hsl)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)/,"|","(?:rgba|hsla)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*,\s*\d*\.?\d+\)/,"|",/[_a-z-][_a-z0-9-]*/,")"],""),r=combineRegExp([o,"(?:\\s+",t,"(?:\\s+",t,")?)?"],""),i=combineRegExp(["(?:",r,e,")*",r],""),n=combineRegExp(["(?:(",/(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/,")|",/to\s+((?:(?:left|right|top|bottom)(?:\s+(?:top|bottom|left|right))?))/,")"],"");return{gradientSearch:combineRegExp(["(?:(",n,")",e,")?(",i,")"],"gi"),colorStopSearch:combineRegExp(["\\s*(",o,")","(?:\\s+","(",t,"))?","(?:",e,"\\s*)?"],"gi")}},parseGradient=(e,t)=>{let o,r,i;e.gradientSearch.lastIndex=0;const n=e.gradientSearch.exec(t);if(!isNull(n))for(o={original:n[0],colorStopList:[]},n[1]&&(o.line=n[1]),n[2]&&(o.angle=n[2]),n[3]&&(o.sideCorner=n[3]),e.colorStopSearch.lastIndex=0,r=e.colorStopSearch.exec(n[4]);!isNull(r);)i={color:r[1]},r[2]&&(i.position=r[2]),o.colorStopList.push(i),r=e.colorStopSearch.exec(n[4]);return o},REGEXP_LIB=generateRegExp(),REG_GRADIENT=/.*gradient\s*\(((?:\([^)]*\)|[^)(]*)*)\)/gim;export const isGradientColor=e=>(REG_GRADIENT.lastIndex=0,REG_GRADIENT.exec(e));const sideCornerDegreeMap={top:0,right:90,bottom:180,left:270,"top left":225,"left top":225,"top right":135,"right top":135,"bottom left":315,"left bottom":315,"bottom right":45,"right bottom":45};export const parseGradientString=e=>{const t=isGradientColor(e);if(!t)return!1;const o={points:[],degree:0},r=parseGradient(REGEXP_LIB,t[1]);if(r.original.trim()!==t[1].trim())return!1;const i=r.colorStopList.map((({color:e,position:t})=>{const o=Object.create(null);return o.color=tinyColor(e).toRgbString(),o.left=parseFloat(t),o}));o.points=i;let n=parseInt(r.angle,10);return Number.isNaN(n)&&(n=sideCornerDegreeMap[r.sideCorner]||90),o.degree=n,o};export default parseGradientString;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.d.ts
new file mode 100644
index 0000000..ad18475
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.d.ts
@@ -0,0 +1,3 @@
+export * from './cmyk';
+export * from './color';
+export * from './gradient';
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.js
new file mode 100644
index 0000000..7cae9f3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.js
@@ -0,0 +1 @@
+export*from"./cmyk";export*from"./color";export*from"./gradient";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/date.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/date.d.ts
new file mode 100644
index 0000000..e123831
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/date.d.ts
@@ -0,0 +1,21 @@
+export declare type CompareDate = Date | number | {
+ year: number;
+ month: number;
+ date: number;
+};
+export declare const getDateRect: (date: Date | number) => {
+ year: number;
+ month: number;
+ date: number;
+ day: number;
+ time: number;
+};
+export declare const isSameDate: (date1: CompareDate, date2: CompareDate) => boolean;
+export declare const getMonthDateRect: (date: Date | number) => {
+ year: number;
+ month: number;
+ weekdayOfFirstDay: number;
+ lastDate: number;
+};
+export declare const isValidDate: (val: any) => boolean;
+export declare const getDate: (...args: any[]) => any;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/date.js b/miniprogram_npm/tdesign-miniprogram/common/shared/date.js
new file mode 100644
index 0000000..ce1e365
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/date.js
@@ -0,0 +1 @@
+export const getDateRect=e=>{const t=new Date(e);return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),day:t.getDay(),time:t.getTime()}};export const isSameDate=(e,t)=>{(e instanceof Date||"number"==typeof e)&&(e=getDateRect(e)),(t instanceof Date||"number"==typeof t)&&(t=getDateRect(t));return["year","month","date"].every((a=>e[a]===t[a]))};export const getMonthDateRect=e=>{const{year:t,month:a}=getDateRect(e);return{year:t,month:a,weekdayOfFirstDay:new Date(t,a,1).getDay(),lastDate:new Date(+new Date(t,a+1,1)-864e5).getDate()}};export const isValidDate=e=>"number"==typeof e||e instanceof Date;export const getDate=(...e)=>{const t=new Date;if(0===e.length)return t;if(1===e.length&&e[0]<=1e3){const{year:a,month:n,date:r}=getDateRect(t);return new Date(a,n+e[0],r)}return Date.apply(null,e)};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/control.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/control.d.ts
new file mode 100644
index 0000000..ed3f4a0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/control.d.ts
@@ -0,0 +1,15 @@
+declare type ControlInstance = {
+ controlled: boolean;
+ initValue: any;
+ set(newVal: any, extObj?: Object, fn?: any): void;
+ get(): any;
+ change(newVal: any, customChangeData?: any, customUpdateFn?: any): void;
+};
+declare type ControlOption = {
+ valueKey?: string;
+ defaultValueKey?: string;
+ changeEventName?: string;
+ strict?: boolean;
+};
+declare function useControl(this: any, option?: ControlOption): ControlInstance;
+export { ControlOption, ControlInstance, useControl };
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/control.js b/miniprogram_npm/tdesign-miniprogram/common/src/control.js
new file mode 100644
index 0000000..9010a19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/control.js
@@ -0,0 +1 @@
+const defaultOption={valueKey:"value",defaultValueKey:"defaultValue",changeEventName:"change",strict:!0};function useControl(e={}){const{valueKey:t,defaultValueKey:a,changeEventName:n,strict:s}=Object.assign(Object.assign({},defaultOption),e),l=this.properties||{},i=l[t],u=l[s?a:t];let o=!1;s&&null!=i&&(o=!0);const c=(e,a,n)=>{this.setData(Object.assign({[`_${t}`]:e},a),n)};return{controlled:o,initValue:o?i:u,set:c,get:()=>this.data[`_${t}`],change:(e,t,a)=>{this.triggerEvent(n,void 0!==t?t:e),o||("function"==typeof a?a():c(e))}}}export{useControl};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.d.ts
new file mode 100644
index 0000000..7fe850a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.d.ts
@@ -0,0 +1,13 @@
+export declare const getPrototypeOf: (obj: any) => any;
+export declare const iterateInheritedPrototype: (callback: (proto: Record) => boolean | void, fromCtor: any, toCtor: any, includeToCtor?: boolean) => void;
+export interface ClassInstanceToObjectOptions {
+ bindTo?: any;
+ excludes?: string[];
+ till?: any;
+ enumerable?: 0 | boolean;
+ configurable?: 0 | boolean;
+ writable?: 0 | boolean;
+}
+export declare const toObject: (something: any, options?: ClassInstanceToObjectOptions) => {
+ [key: string]: any;
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.js b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.js
new file mode 100644
index 0000000..d7675d4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.js
@@ -0,0 +1 @@
+import{isObject}from"../../common/validator";export const getPrototypeOf=function(t){return Object.getPrototypeOf?Object.getPrototypeOf(t):t.__proto__};export const iterateInheritedPrototype=function(t,e,o,r=!0){let n=e.prototype||e;const c=o.prototype||o;for(;n&&(r||n!==c)&&!1!==t(n)&&n!==c;)n=getPrototypeOf(n)};export const toObject=function(t,e={}){const o={};if(!isObject(t))return o;const r=e.excludes||["constructor"],{enumerable:n=!0,configurable:c=0,writable:i=0}=e,p={};return 0!==n&&(p.enumerable=n),0!==c&&(p.configurable=c),0!==i&&(p.writable=i),iterateInheritedPrototype((t=>{Object.getOwnPropertyNames(t).forEach((n=>{if(r.indexOf(n)>=0)return;if(Object.prototype.hasOwnProperty.call(o,n))return;const c=Object.getOwnPropertyDescriptor(t,n);["get","set","value"].forEach((t=>{if("function"==typeof c[t]){const o=c[t];c[t]=function(...t){return o.apply(Object.prototype.hasOwnProperty.call(e,"bindTo")?e.bindTo:this,t)}}})),Object.defineProperty(o,n,Object.assign(Object.assign({},c),p))}))}),t,e.till||Object,!1),o};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/index.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/index.d.ts
new file mode 100644
index 0000000..94e7ce1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/index.d.ts
@@ -0,0 +1,4 @@
+export * from './superComponent';
+export * from './flatTool';
+export * from './instantiationDecorator';
+export * from './control';
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/index.js b/miniprogram_npm/tdesign-miniprogram/common/src/index.js
new file mode 100644
index 0000000..f711ddc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/index.js
@@ -0,0 +1 @@
+export*from"./superComponent";export*from"./flatTool";export*from"./instantiationDecorator";export*from"./control";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.d.ts
new file mode 100644
index 0000000..3a06f2c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.d.ts
@@ -0,0 +1,3 @@
+import { SuperComponent } from './superComponent';
+export declare const toComponent: (options: Record) => Record;
+export declare const wxComponent: () => (constructor: new () => SuperComponent) => void;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.js b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.js
new file mode 100644
index 0000000..740f19e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.js
@@ -0,0 +1 @@
+import{toObject}from"./flatTool";import{isPlainObject}from"../validator";import{canUseVirtualHost}from"../version";const RawLifeCycles=["Created","Attached","Ready","Moved","Detached","Error"],NativeLifeCycles=RawLifeCycles.map((e=>e.toLowerCase())),ComponentNativeProps=["properties","data","observers","methods","behaviors",...NativeLifeCycles,"relations","externalClasses","options","lifetimes","pageLifeTimes","definitionFilter"];export const toComponent=function(e){const{relations:t,behaviors:o=[],externalClasses:i=[]}=e;if(e.properties){Object.keys(e.properties).forEach((t=>{let o=e.properties[t];isPlainObject(o)||(o={type:o}),e.properties[t]=o}));[{key:"ariaHidden",type:Boolean},{key:"ariaRole",type:String},{key:"ariaLabel",type:String},{key:"ariaLabelledby",type:String},{key:"ariaDescribedby",type:String},{key:"ariaBusy",type:Boolean}].forEach((({key:t,type:o})=>{e.properties[t]={type:o}})),e.properties.style={type:String,value:""},e.properties.customStyle={type:String,value:""}}e.methods||(e.methods={}),e.lifetimes||(e.lifetimes={});const s={};if(t){const e=(e,t)=>Behavior({created(){Object.defineProperty(this,`$${e}`,{get:()=>{const o=this.getRelationNodes(t)||[];return"parent"===e?o[0]:o}})}}),i={};Object.keys(t).forEach((o=>{const s=t[o],r=["parent","ancestor"].includes(s.type)?"parent":"children",n=e(r,o);i[r]=n})),o.push(...Object.keys(i).map((e=>i[e])))}if(e.behaviors=[...o],e.externalClasses=["class",...i],Object.getOwnPropertyNames(e).forEach((t=>{const o=Object.getOwnPropertyDescriptor(e,t);o&&(NativeLifeCycles.indexOf(t)<0&&"function"==typeof o.value?(Object.defineProperty(e.methods,t,o),delete e[t]):ComponentNativeProps.indexOf(t)<0?s[t]=o:NativeLifeCycles.indexOf(t)>=0&&(e.lifetimes[t]=e[t]))})),Object.keys(s).length){const t=e.lifetimes.created,o=e.lifetimes.attached,{controlledProps:i=[]}=e;e.lifetimes.created=function(...e){Object.defineProperties(this,s),t&&t.apply(this,e)},e.lifetimes.attached=function(...e){o&&o.apply(this,e),i.forEach((({key:e})=>{const t=`default${e.replace(/^(\w)/,((e,t)=>t.toUpperCase()))}`,o=this.properties;null==o[e]&&(this._selfControlled=!0),null==o[e]&&null!=o[t]&&this.setData({[e]:o[t]})}))},e.methods._trigger=function(e,t,o){const s=i.find((t=>t.event===e));if(s){const{key:e}=s;this._selfControlled&&this.setData({[e]:t[e]})}this.triggerEvent(e,t,o)}}return e};export const wxComponent=function(){return function(e){const t=new class extends e{};t.options=t.options||{},canUseVirtualHost()&&(t.options.virtualHost=!0);const o=toComponent(toObject(t));Component(o)}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.d.ts
new file mode 100644
index 0000000..4455e19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.d.ts
@@ -0,0 +1,19 @@
+///
+export interface ComponentsOptionsType extends WechatMiniprogram.Component.ComponentOptions {
+ styleIsolation?: 'isolated' | 'apply-shared' | 'shared' | 'page-isolated' | 'page-apply-shared' | 'page-shared';
+}
+export interface RelationsOptions {
+ [componentName: string]: WechatMiniprogram.Component.RelationOption;
+}
+export interface SuperComponent extends WechatMiniprogram.Component.Lifetimes, WechatMiniprogram.Component.OtherOption, WechatMiniprogram.Component.InstanceMethods {
+ properties: P;
+ data: D;
+ options: ComponentsOptionsType;
+ methods: M | Record any>;
+ $global: Function;
+ [x: string]: any;
+}
+export declare class SuperComponent {
+ readonly app: any;
+ constructor();
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.js b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.js
new file mode 100644
index 0000000..cf00ae2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.js
@@ -0,0 +1 @@
+export class SuperComponent{constructor(){this.app=getApp()}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/_variables.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/_variables.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/base.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/base.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/icons.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/icons.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/index.wxss
new file mode 100644
index 0000000..c6b6b97
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/index.wxss
@@ -0,0 +1 @@
+.hotspot-expanded.relative{position:relative}.hotspot-expanded::after{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;transform:scale(1.5)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_border.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_border.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_clearfix.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_clearfix.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_cursor.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_cursor.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_ellipsis.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_ellipsis.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_hairline.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_hairline.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_other.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_other.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_components.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_components.wxss
new file mode 100644
index 0000000..c81b9db
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_components.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:light){.page,page{--td-picker-transparent-color:rgba(255, 255, 255, 0)}}@media (prefers-color-scheme:dark){.page,page{--td-button-primary-disabled-color:var(--td-font-white-4);--td-skeleton-animation-gradient:rgba(255, 255, 255, 0.06);--td-slider-dot-bg-color:var(--td-gray-color-4);--td-slider-dot-disabled-bg-color:var(--td-gray-color-11);--td-slider-dot-disabled-border-color:var(--td-gray-color-12);--td-picker-transparent-color:transparent;--td-switch-dot-disabled-color:var(--td-font-white-2)}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_dark.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_dark.wxss
new file mode 100644
index 0000000..ebe8b99
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_dark.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:dark){.page,page{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:rgba(255, 255, 255, 0.9);--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-9);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-4);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-5);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-4);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.4);--td-mask-disabled:rgba(0, 0, 0, 0.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-container-active:var(--td-gray-color-12);--td-bg-color-secondarycontainer-active:var(--td-gray-color-11);--td-bg-color-component-active:var(--td-gray-color-10);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-primary-color-8);--td-text-color-link:var(--td-primary-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0, 0, 0, 0.06),0 1px 10px rgba(0, 0, 0, 0.08),0 2px 4px rgba(0, 0, 0, 0.12);--td-shadow-2:0 8px 10px rgba(0, 0, 0, 0.12),0 3px 14px rgba(0, 0, 0, 0.1),0 5px 5px rgba(0, 0, 0, 0.16);--td-shadow-3:0 16px 24px rgba(0, 0, 0, 0.14),0 6px 30px rgba(0, 0, 0, 0.12),0 8px 10px rgba(0, 0, 0, 0.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0, 0, 0, 0.55);--td-scrollbar-color:rgba(255, 255, 255, 0.1);--td-scroll-track-color:#333}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_font.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_font.wxss
new file mode 100644
index 0000000..f289268
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_font.wxss
@@ -0,0 +1 @@
+.page,page{--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:24rpx;--td-font-size-link-medium:28rpx;--td-font-size-link-large:32rpx;--td-font-size-mark-extra-small:20rpx;--td-font-size-mark-small:24rpx;--td-font-size-mark-medium:28rpx;--td-font-size-mark-large:32rpx;--td-font-size-body-extra-small:20rpx;--td-font-size-body-small:24rpx;--td-font-size-body-medium:28rpx;--td-font-size-body-large:32rpx;--td-font-size-title-small:28rpx;--td-font-size-title-medium:32rpx;--td-font-size-title-large:36rpx;--td-font-size-title-extra-large:40rpx;--td-font-size-headline-small:48rpx;--td-font-size-headline-medium:56rpx;--td-font-size-headline-large:72rpx;--td-font-size-display-medium:96rpx;--td-font-size-display-large:128rpx;--td-font-size:20rpx;--td-font-size-xs:var(--td-font-size-body-extra-small);--td-font-size-s:var(--td-font-size-body-small);--td-font-size-base:var(--td-font-size-title-small);--td-font-size-m:var(--td-font-size-title-medium);--td-font-size-l:var(--td-font-size-title-large);--td-font-size-xl:var(--td-font-size-title-extra-large);--td-font-size-xxl:var(--td-font-size-headline-large)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss
new file mode 100644
index 0000000..0814a7a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:light){.page,page{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eeeeee;--td-gray-color-3:#e7e7e7;--td-gray-color-4:#dcdcdc;--td-gray-color-5:#c5c5c5;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#ffffff;--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-8);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.6);--td-mask-disabled:rgba(255, 255, 255, 0.6);--td-bg-color-page:var(--td-gray-color-1);--td-bg-color-container:var(--td-font-white-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-brand-color);--td-text-color-link:var(--td-brand-color);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0, 0, 0, 0.05),0 4px 5px rgba(0, 0, 0, 0.08),0 2px 4px -1px rgba(0, 0, 0, 0.12);--td-shadow-2:0 3px 14px 2px rgba(0, 0, 0, 0.05),0 8px 10px 1px rgba(0, 0, 0, 0.06),0 5px 5px -3px rgba(0, 0, 0, 0.1);--td-shadow-3:0 6px 30px 5px rgba(0, 0, 0, 0.05),0 16px 24px 2px rgba(0, 0, 0, 0.04),0 8px 10px -5px rgba(0, 0, 0, 0.08);--td-shadow-4:0 2px 8px 0 rgba(0, 0, 0, 0.06);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0, 0, 0, 0.08);--td-scrollbar-color:rgba(0, 0, 0, 0.1);--td-scrollbar-hover-color:rgba(0, 0, 0, 0.3);--td-scroll-track-color:#fff}}@media (prefers-color-scheme:dark){.page,page{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:rgba(255, 255, 255, 0.9);--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-9);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-4);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-5);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-4);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.4);--td-mask-disabled:rgba(0, 0, 0, 0.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-container-active:var(--td-gray-color-12);--td-bg-color-secondarycontainer-active:var(--td-gray-color-11);--td-bg-color-component-active:var(--td-gray-color-10);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-primary-color-8);--td-text-color-link:var(--td-primary-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0, 0, 0, 0.06),0 1px 10px rgba(0, 0, 0, 0.08),0 2px 4px rgba(0, 0, 0, 0.12);--td-shadow-2:0 8px 10px rgba(0, 0, 0, 0.12),0 3px 14px rgba(0, 0, 0, 0.1),0 5px 5px rgba(0, 0, 0, 0.16);--td-shadow-3:0 16px 24px rgba(0, 0, 0, 0.14),0 6px 30px rgba(0, 0, 0, 0.12),0 8px 10px rgba(0, 0, 0, 0.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0, 0, 0, 0.55);--td-scrollbar-color:rgba(255, 255, 255, 0.1);--td-scroll-track-color:#333}}.page,page{--td-radius-small:6rpx;--td-radius-default:12rpx;--td-radius-large:18rpx;--td-radius-extra-large:24rpx;--td-radius-round:999px;--td-radius-circle:50%}.page,page{--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:24rpx;--td-font-size-link-medium:28rpx;--td-font-size-link-large:32rpx;--td-font-size-mark-extra-small:20rpx;--td-font-size-mark-small:24rpx;--td-font-size-mark-medium:28rpx;--td-font-size-mark-large:32rpx;--td-font-size-body-extra-small:20rpx;--td-font-size-body-small:24rpx;--td-font-size-body-medium:28rpx;--td-font-size-body-large:32rpx;--td-font-size-title-small:28rpx;--td-font-size-title-medium:32rpx;--td-font-size-title-large:36rpx;--td-font-size-title-extra-large:40rpx;--td-font-size-headline-small:48rpx;--td-font-size-headline-medium:56rpx;--td-font-size-headline-large:72rpx;--td-font-size-display-medium:96rpx;--td-font-size-display-large:128rpx;--td-font-size:20rpx;--td-font-size-xs:var(--td-font-size-body-extra-small);--td-font-size-s:var(--td-font-size-body-small);--td-font-size-base:var(--td-font-size-title-small);--td-font-size-m:var(--td-font-size-title-medium);--td-font-size-l:var(--td-font-size-title-large);--td-font-size-xl:var(--td-font-size-title-extra-large);--td-font-size-xxl:var(--td-font-size-headline-large)}.page,page{--td-spacer:16rpx;--td-spacer-1:24rpx;--td-spacer-2:32rpx;--td-spacer-3:48rpx;--td-spacer-4:64rpx;--td-spacer-5:96rpx;--td-spacer-6:160rpx}@media (prefers-color-scheme:light){.page,page{--td-picker-transparent-color:rgba(255, 255, 255, 0)}}@media (prefers-color-scheme:dark){.page,page{--td-button-primary-disabled-color:var(--td-font-white-4);--td-skeleton-animation-gradient:rgba(255, 255, 255, 0.06);--td-slider-dot-bg-color:var(--td-gray-color-4);--td-slider-dot-disabled-bg-color:var(--td-gray-color-11);--td-slider-dot-disabled-border-color:var(--td-gray-color-12);--td-picker-transparent-color:transparent;--td-switch-dot-disabled-color:var(--td-font-white-2)}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_light.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_light.wxss
new file mode 100644
index 0000000..2d1dab5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_light.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:light){.page,page{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eeeeee;--td-gray-color-3:#e7e7e7;--td-gray-color-4:#dcdcdc;--td-gray-color-5:#c5c5c5;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#ffffff;--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-8);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.6);--td-mask-disabled:rgba(255, 255, 255, 0.6);--td-bg-color-page:var(--td-gray-color-1);--td-bg-color-container:var(--td-font-white-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-brand-color);--td-text-color-link:var(--td-brand-color);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0, 0, 0, 0.05),0 4px 5px rgba(0, 0, 0, 0.08),0 2px 4px -1px rgba(0, 0, 0, 0.12);--td-shadow-2:0 3px 14px 2px rgba(0, 0, 0, 0.05),0 8px 10px 1px rgba(0, 0, 0, 0.06),0 5px 5px -3px rgba(0, 0, 0, 0.1);--td-shadow-3:0 6px 30px 5px rgba(0, 0, 0, 0.05),0 16px 24px 2px rgba(0, 0, 0, 0.04),0 8px 10px -5px rgba(0, 0, 0, 0.08);--td-shadow-4:0 2px 8px 0 rgba(0, 0, 0, 0.06);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0, 0, 0, 0.08);--td-scrollbar-color:rgba(0, 0, 0, 0.1);--td-scrollbar-hover-color:rgba(0, 0, 0, 0.3);--td-scroll-track-color:#fff}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_radius.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_radius.wxss
new file mode 100644
index 0000000..9d178bd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_radius.wxss
@@ -0,0 +1 @@
+.page,page{--td-radius-small:6rpx;--td-radius-default:12rpx;--td-radius-large:18rpx;--td-radius-extra-large:24rpx;--td-radius-round:999px;--td-radius-circle:50%}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_spacer.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_spacer.wxss
new file mode 100644
index 0000000..e0bee20
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_spacer.wxss
@@ -0,0 +1 @@
+.page,page{--td-spacer:16rpx;--td-spacer-1:24rpx;--td-spacer-2:32rpx;--td-spacer-3:48rpx;--td-spacer-4:64rpx;--td-spacer-5:96rpx;--td-spacer-6:160rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/utilities/_index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/utilities/_index.wxss
new file mode 100644
index 0000000..c6b6b97
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/utilities/_index.wxss
@@ -0,0 +1 @@
+.hotspot-expanded.relative{position:relative}.hotspot-expanded::after{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;transform:scale(1.5)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/badge.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/badge.wxml
new file mode 100644
index 0000000..c9b3eed
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/badge.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/button.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/button.wxml
new file mode 100644
index 0000000..f89efee
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/button.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/icon.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/icon.wxml
new file mode 100644
index 0000000..c57fbec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/icon.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/image.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/image.wxml
new file mode 100644
index 0000000..8d4bdfc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/image.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/common/utils.d.ts
new file mode 100644
index 0000000..191c99c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/utils.d.ts
@@ -0,0 +1,38 @@
+///
+///
+///
+export declare const systemInfo: WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
+export declare const appBaseInfo: WechatMiniprogram.AppBaseInfo | WechatMiniprogram.SystemInfo;
+export declare const deviceInfo: WechatMiniprogram.DeviceInfo | WechatMiniprogram.SystemInfo;
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+export declare const debounce: (func: any, wait?: number) => (...rest: any[]) => void;
+export declare const throttle: (func: any, wait?: number, options?: any) => (...args: any[]) => void;
+export declare const classNames: (...args: any[]) => string;
+export declare const styles: (styleObj: any) => string;
+export declare const getAnimationFrame: (context: any, cb: Function) => any;
+export declare const getRect: (context: any, selector: string, needAll?: boolean) => Promise;
+interface TreeNode {
+ children?: TreeNode[];
+ [key: string]: any;
+}
+export declare const getTreeDepth: (tree: TreeNode[], key?: string) => any;
+export declare const isIOS: () => boolean;
+export declare const addUnit: (value?: string | number) => string | undefined;
+export declare const getCharacterLength: (type: string, char: string | number, max?: number) => {
+ length: number;
+ characters: string;
+};
+export declare const chunk: (arr: any[], size: number) => any[][];
+export declare const getInstance: (context?: Context, selector?: string) => WechatMiniprogram.Component.TrivialInstance;
+export declare const unitConvert: (value: number | string | null | undefined) => number;
+export declare const setIcon: (iconName: any, icon: any, defaultIcon: any) => {
+ [x: string]: any;
+};
+export declare const toCamel: (str: any) => any;
+export declare const getCurrentPage: () => T & WechatMiniprogram.OptionalInterface & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods & WechatMiniprogram.Page.Data & WechatMiniprogram.IAnyObject;
+export declare const uniqueFactory: (compName: any) => () => string;
+export declare const calcIcon: (icon: string | Record, defaultIcon?: string) => Record;
+export declare const isOverSize: (size: any, sizeLimit: any) => boolean;
+export declare const rpx2px: (rpx: any) => number;
+export declare const nextTick: () => Promise;
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/common/utils.js b/miniprogram_npm/tdesign-miniprogram/common/utils.js
new file mode 100644
index 0000000..a94c0a0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/utils.js
@@ -0,0 +1 @@
+import{prefix}from"./config";import{isString,isNumber,isDef,isBoolean,isObject}from"./validator";import{getWindowInfo,getAppBaseInfo,getDeviceInfo}from"./wechat";export const systemInfo=getWindowInfo();export const appBaseInfo=getAppBaseInfo();export const deviceInfo=getDeviceInfo();export const debounce=function(e,t=500){let n;return function(...o){n&&clearTimeout(n),n=setTimeout((()=>{e.apply(this,o)}),t)}};export const throttle=(e,t=100,n=null)=>{let o=0,r=null;return n||(n={leading:!0}),function(...c){const s=Date.now();o||n.leading||(o=s);const i=this;t-(s-o)<=0&&(r&&(clearTimeout(r),r=null),o=s,e.apply(i,c))}};export const classNames=function(...e){const t={}.hasOwnProperty,n=[];return e.forEach((e=>{if(!e)return;const o=typeof e;if("string"===o||"number"===o)n.push(e);else if(Array.isArray(e)&&e.length){const t=classNames(...e);t&&n.push(t)}else if("object"===o)for(const o in e)t.call(e,o)&&e[o]&&n.push(o)})),n.join(" ")};export const styles=function(e){return Object.keys(e).map((t=>`${t}: ${e[t]}`)).join("; ")};export const getAnimationFrame=function(e,t){return e.createSelectorQuery().selectViewport().boundingClientRect().exec((()=>{t()}))};export const getRect=function(e,t,n=!1){return new Promise(((o,r)=>{e.createSelectorQuery()[n?"selectAll":"select"](t).boundingClientRect((e=>{e?o(e):r(e)})).exec()}))};export const getTreeDepth=(e,t)=>e.reduce(((e,n)=>n[null!=t?t:"children"]&&n[null!=t?t:"children"].length>0?Math.max(e,getTreeDepth(n[null!=t?t:"children"],t)+1):Math.max(e,1)),0);export const isIOS=function(){var e;return!!((null===(e=null==deviceInfo?void 0:deviceInfo.system)||void 0===e?void 0:e.toLowerCase().search("ios"))+1)};export const addUnit=function(e){if(isDef(e))return e=String(e),isNumber(e)?`${e}px`:e};export const getCharacterLength=(e,t,n)=>{const o=String(null!=t?t:"");if(0===o.length)return{length:0,characters:""};if("maxcharacter"===e){let e=0;for(let t=0;t127||94===o.charCodeAt(t)?2:1,e+r>n)return{length:e,characters:o.slice(0,t)};e+=r}return{length:e,characters:o}}if("maxlength"===e){const e=o.length>n?n:o.length;return{length:e,characters:o.slice(0,e)}}return{length:o.length,characters:o}};export const chunk=(e,t)=>Array.from({length:Math.ceil(e.length/t)},((n,o)=>e.slice(o*t,o*t+t)));export const getInstance=function(e,t){if(!e){const t=getCurrentPages(),n=t[t.length-1];e=n.$$basePage||n}const n=e?e.selectComponent(t):null;return n||(console.warn("未找到组件,请检查selector是否正确"),null)};export const unitConvert=e=>{var t;return"string"==typeof e?e.includes("rpx")?parseInt(e,10)*(null!==(t=null==systemInfo?void 0:systemInfo.screenWidth)&&void 0!==t?t:750)/750:parseInt(e,10):null!=e?e:0};export const setIcon=(e,t,n)=>t?"string"==typeof t?{[`${e}Name`]:t,[`${e}Data`]:{}}:"object"==typeof t?{[`${e}Name`]:"",[`${e}Data`]:t}:{[`${e}Name`]:n,[`${e}Data`]:{}}:{[`${e}Name`]:"",[`${e}Data`]:{}};export const toCamel=e=>e.replace(/-(\w)/g,((e,t)=>t.toUpperCase()));export const getCurrentPage=function(){const e=getCurrentPages();return e[e.length-1]};export const uniqueFactory=e=>{let t=0;return()=>{const n=`${prefix}_${e}_${t}`;return t+=1,n}};export const calcIcon=(e,t)=>e&&(isBoolean(e)&&t||isString(e))?{name:isBoolean(e)?t:e}:isObject(e)?e:null;export const isOverSize=(e,t)=>{var n;if(!t)return!1;const o=1e3,r={B:1,KB:o,MB:1e6,GB:1e9};return e>("number"==typeof t?t*o:(null==t?void 0:t.size)*r[null!==(n=null==t?void 0:t.unit)&&void 0!==n?n:"KB"])};export const rpx2px=e=>Math.floor(systemInfo.windowWidth*e/750);export const nextTick=()=>new Promise((e=>{wx.nextTick((()=>{e()}))}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/utils.wxs b/miniprogram_npm/tdesign-miniprogram/common/utils.wxs
new file mode 100644
index 0000000..8b7259e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/utils.wxs
@@ -0,0 +1,149 @@
+/* utils */
+
+/**
+ * addUnit */
+// 为 css 添加单位
+function addUnit(value) {
+ // prettier-ignore
+ var REGEXP = getRegExp('^-?\d+(.\d+)?$');
+ if (value == null) {
+ return undefined;
+ }
+ return REGEXP.test('' + value) ? value + 'px' : value;
+}
+
+function isString(string) {
+ return string && string.constructor === 'String';
+}
+
+function isArray(array) {
+ return array && array.constructor === 'Array';
+}
+
+function isObject(obj) {
+ return obj && obj.constructor === 'Object';
+}
+
+function isBoolean(value) {
+ return typeof value === 'boolean';
+}
+
+var isNoEmptyObj = function (obj) {
+ return isObject(obj) && JSON.stringify(obj) !== '{}';
+};
+
+function includes(arr, value) {
+ if (!arr || !isArray(arr)) return false;
+
+ var i = 0;
+ var len = arr.length;
+
+ for (; i < len; i++) {
+ if (arr[i] === value) return true;
+ }
+ return false;
+}
+
+function cls(base, arr) {
+ var res = [base];
+ var i = 0;
+ for (var size = arr.length; i < size; i++) {
+ var item = arr[i];
+
+ if (item && item.constructor === 'Array') {
+ var key = arr[i][0];
+ var value = arr[i][1];
+
+ if (value) {
+ res.push(base + '--' + key);
+ }
+ } else if (typeof item === 'string' || typeof item === 'number') {
+ if (item) {
+ res.push(base + '--' + item);
+ }
+ }
+ }
+ return res.join(' ');
+}
+
+function getBadgeAriaLabel(options) {
+ var maxCount = options.maxCount || 99;
+ if (options.dot) {
+ return '有新的消息';
+ }
+ if (options.count === '...') {
+ return '有很多消息';
+ }
+ if (isNaN(options.count)) {
+ return options.count;
+ }
+ var str1 = '有' + maxCount + '+条消息';
+ var str2 = '有' + options.count + '条消息';
+ return Number(options.count) > maxCount ? str1 : str2;
+}
+
+function endsWith(str, endStr) {
+ return str.slice(-endStr.length) === endStr ? str : str + endStr;
+}
+
+function keys(obj) {
+ return JSON.stringify(obj)
+ .replace(getRegExp('{|}|"', 'g'), '')
+ .split(',')
+ .map(function (item) {
+ return item.split(':')[0];
+ });
+}
+
+function kebabCase(str) {
+ return str
+ .replace(getRegExp('[A-Z]', 'g'), function (ele) {
+ return '-' + ele;
+ })
+ .toLowerCase();
+}
+
+function _style(styles) {
+ if (isArray(styles)) {
+ return styles
+ .filter(function (item) {
+ return item != null && item !== '';
+ })
+ .map(function (item) {
+ return isArray(item) ? _style(item) : endsWith(item, ';');
+ })
+ .join(' ');
+ }
+
+ if (isObject(styles)) {
+ return keys(styles)
+ .filter(function (key) {
+ return styles[key] != null && styles[key] !== '';
+ })
+ .map(function (key) {
+ return [kebabCase(key), [styles[key]]].join(':');
+ })
+ .join(';');
+ }
+
+ return styles;
+}
+
+function isValidIconName(str) {
+ // prettier-ignore
+ return getRegExp('^[A-Za-z0-9\-]+$').test(str);
+}
+
+module.exports = {
+ addUnit: addUnit,
+ isString: isString,
+ isArray: isArray,
+ isObject: isObject,
+ isBoolean: isBoolean,
+ isNoEmptyObj: isNoEmptyObj,
+ includes: includes,
+ cls: cls,
+ getBadgeAriaLabel: getBadgeAriaLabel,
+ _style: _style,
+ isValidIconName: isValidIconName,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/common/validator.d.ts b/miniprogram_npm/tdesign-miniprogram/common/validator.d.ts
new file mode 100644
index 0000000..2e377aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/validator.d.ts
@@ -0,0 +1,9 @@
+export declare function isFunction(val: unknown): val is Function;
+export declare const isString: (val: unknown) => val is string;
+export declare const isNull: (value: T) => value is null;
+export declare const isUndefined: (value: T) => value is undefined;
+export declare function isDef(value: unknown): boolean;
+export declare function isNumber(value: string): boolean;
+export declare function isBoolean(value: unknown): value is boolean;
+export declare function isObject(x: unknown): x is Record;
+export declare function isPlainObject(val: unknown): val is Record;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/validator.js b/miniprogram_npm/tdesign-miniprogram/common/validator.js
new file mode 100644
index 0000000..3cb3c73
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/validator.js
@@ -0,0 +1 @@
+export function isFunction(t){return"function"==typeof t}export const isString=t=>"string"==typeof t;export const isNull=t=>null===t;export const isUndefined=t=>void 0===t;export function isDef(t){return!isUndefined(t)&&!isNull(t)}export function isNumber(t){return/^\d+(\.\d+)?$/.test(t)}export function isBoolean(t){return"boolean"==typeof t}export function isObject(t){const n=typeof t;return null!==t&&("object"===n||"function"===n)}export function isPlainObject(t){return null!==t&&"object"==typeof t&&"[object Object]"===Object.prototype.toString.call(t)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/version.d.ts b/miniprogram_npm/tdesign-miniprogram/common/version.d.ts
new file mode 100644
index 0000000..21e0b9e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/version.d.ts
@@ -0,0 +1,4 @@
+export declare function compareVersion(v1: any, v2: any): 0 | 1 | -1;
+export declare function canIUseFormFieldButton(): boolean;
+export declare function canUseVirtualHost(): boolean;
+export declare function canUseProxyScrollView(): boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/version.js b/miniprogram_npm/tdesign-miniprogram/common/version.js
new file mode 100644
index 0000000..a186b0f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/version.js
@@ -0,0 +1 @@
+import{getAppBaseInfo}from"./wechat";let systemInfo;function getSystemInfo(){return null==systemInfo&&(systemInfo=getAppBaseInfo()),systemInfo}export function compareVersion(e,n){e=e.split("."),n=n.split(".");const t=Math.max(e.length,n.length);for(;e.lengtho)return 1;if(t=0}export function canIUseFormFieldButton(){return judgeByVersion("2.10.3")}export function canUseVirtualHost(){return judgeByVersion("2.19.2")}export function canUseProxyScrollView(){return judgeByVersion("2.19.2")}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/wechat.d.ts b/miniprogram_npm/tdesign-miniprogram/common/wechat.d.ts
new file mode 100644
index 0000000..db57069
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/wechat.d.ts
@@ -0,0 +1,4 @@
+export declare const getObserver: (context: any, selector: string) => Promise;
+export declare const getWindowInfo: () => WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
+export declare const getAppBaseInfo: () => WechatMiniprogram.SystemInfo | WechatMiniprogram.AppBaseInfo;
+export declare const getDeviceInfo: () => WechatMiniprogram.SystemInfo | WechatMiniprogram.DeviceInfo;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/wechat.js b/miniprogram_npm/tdesign-miniprogram/common/wechat.js
new file mode 100644
index 0000000..62f7af1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/wechat.js
@@ -0,0 +1 @@
+export const getObserver=(e,t)=>new Promise((o=>{e.createIntersectionObserver(e).relativeToViewport().observe(t,(e=>{o(e)}))}));export const getWindowInfo=()=>wx.getWindowInfo&&wx.getWindowInfo()||wx.getSystemInfoSync();export const getAppBaseInfo=()=>wx.getAppBaseInfo&&wx.getAppBaseInfo()||wx.getSystemInfoSync();export const getDeviceInfo=()=>wx.getDeviceInfo&&wx.getDeviceInfo()||wx.getSystemInfoSync();
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.d.ts
new file mode 100644
index 0000000..111e788
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.d.ts
@@ -0,0 +1,34 @@
+import { SuperComponent } from '../common/src/index';
+export default class CountDown extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdCountDownProps;
+ observers: {
+ time(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ timeDataUnit: {
+ DD: string;
+ HH: string;
+ mm: string;
+ ss: string;
+ SSS: string;
+ };
+ timeData: import("./utils").TimeData;
+ formattedTime: string;
+ };
+ timeoutId: null | number;
+ isInitialTime: boolean;
+ lifetimes: {
+ detached(): void;
+ };
+ methods: {
+ start(): void;
+ pause(): void;
+ reset(): void;
+ getTime(): number;
+ updateTime(remain: number): void;
+ doCount(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.js b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.js
new file mode 100644
index 0000000..148aa4d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{isSameSecond,parseFormat,parseTimeData,TimeDataUnit}from"./utils";const{prefix:prefix}=config,name=`${prefix}-count-down`;let CountDown=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-count`,`${prefix}-class-split`],this.properties=props,this.observers={time(){this.reset()}},this.data={prefix:prefix,classPrefix:name,timeDataUnit:TimeDataUnit,timeData:parseTimeData(0),formattedTime:"0"},this.timeoutId=null,this.isInitialTime=!1,this.lifetimes={detached(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}},this.methods={start(){this.counting||(this.counting=!0,this.endTime=Date.now()+this.remain,this.doCount())},pause(){this.counting=!1,this.timeoutId&&clearTimeout(this.timeoutId)},reset(){this.pause(),this.remain=this.properties.time,this.updateTime(this.remain),this.properties.autoStart&&this.remain>0&&this.start(),this.isInitialTime=!0},getTime(){return Math.max(this.endTime-Date.now(),0)},updateTime(t){const{format:i}=this.properties;this.remain=t;const e=parseTimeData(t);this.triggerEvent("change",e);const{timeText:s}=parseFormat(t,i),o=i.split(":");this.setData({timeRange:o,timeData:e,formattedTime:s.replace(/:/g," : ")}),0===t&&(this.counting||this.isInitialTime)&&(this.pause(),this.triggerEvent("finish"),this.counting=!1)},doCount(){this.timeoutId=setTimeout((()=>{const t=this.getTime();this.properties.millisecond?this.updateTime(t):isSameSecond(t,this.remain)&&0!==t||this.updateTime(t),0!==t&&this.doCount()}),33)}}}};CountDown=__decorate([wxComponent()],CountDown);export default CountDown;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.json b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxml b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxml
new file mode 100644
index 0000000..2db5e3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxml
@@ -0,0 +1 @@
+{{formattedTime}}{{_this.format(timeData[timeRange[index]])}}{{splitWithUnit ? timeDataUnit[timeRange[index]] : ':'}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxs b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxs
new file mode 100644
index 0000000..0d17afa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxs
@@ -0,0 +1,3 @@
+module.exports.format = function (num) {
+ return num < 10 ? '0' + num : num;
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxss b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxss
new file mode 100644
index 0000000..ce27f4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-count-down--small.t-count-down--default{font-size:var(--td-font-size-base,28rpx)}.t-count-down--small.t-count-down--round>.t-count-down__item{font-size:var(--td-font-size-s,24rpx)}.t-count-down--small.t-count-down--square>.t-count-down__item{font-size:var(--td-font-size-s,24rpx)}.t-count-down--small.t-count-down--round>.t-count-down__item,.t-count-down--small.t-count-down--square>.t-count-down__item{width:40rpx;height:40rpx}.t-count-down--small.t-count-down--round>.t-count-down__split--dot,.t-count-down--small.t-count-down--square>.t-count-down__split--dot{margin:0 4rpx;font-size:var(--td-font-size-base,28rpx);font-weight:700}.t-count-down--small.t-count-down--round>.t-count-down__split--text,.t-count-down--small.t-count-down--square>.t-count-down__split--text{margin:0 8rpx;font-size:var(--td-font-size,20rpx)}.t-count-down--medium.t-count-down--default{font-size:var(--td-font-size-m,32rpx)}.t-count-down--medium.t-count-down--round>.t-count-down__item{font-size:var(--td-font-size-base,28rpx)}.t-count-down--medium.t-count-down--square>.t-count-down__item{font-size:var(--td-font-size-base,28rpx)}.t-count-down--medium.t-count-down--round>.t-count-down__item,.t-count-down--medium.t-count-down--square>.t-count-down__item{width:48rpx;height:48rpx}.t-count-down--medium.t-count-down--round>.t-count-down__split--dot,.t-count-down--medium.t-count-down--square>.t-count-down__split--dot{margin:0 6rpx;font-size:var(--td-font-size-m,32rpx);font-weight:700}.t-count-down--medium.t-count-down--round>.t-count-down__split--text,.t-count-down--medium.t-count-down--square>.t-count-down__split--text{margin:0 10rpx;font-size:var(--td-font-size-s,24rpx)}.t-count-down--large.t-count-down--default{font-size:36rpx}.t-count-down--large.t-count-down--round>.t-count-down__item{font-size:var(--td-font-size-m,32rpx)}.t-count-down--large.t-count-down--square>.t-count-down__item{font-size:var(--td-font-size-m,32rpx)}.t-count-down--large.t-count-down--round>.t-count-down__item,.t-count-down--large.t-count-down--square>.t-count-down__item{width:56rpx;height:56rpx}.t-count-down--large.t-count-down--round>.t-count-down__split--dot,.t-count-down--large.t-count-down--square>.t-count-down__split--dot{margin:0 12rpx;font-size:36rpx;font-weight:700}.t-count-down--large.t-count-down--round>.t-count-down__split--text,.t-count-down--large.t-count-down--square>.t-count-down__split--text{margin:0 12rpx;font-size:var(--td-font-size-base,28rpx)}.t-count-down{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;display:flex}.t-count-down .t-count-down__item,.t-count-down .t-count-down__split{display:flex;align-items:center;justify-content:center}.t-count-down--round>.t-count-down__split--dot,.t-count-down--square>.t-count-down__split--dot{color:var(--td-error-color,var(--td-error-color-6,#d54941))}.t-count-down--round>.t-count-down__split--text,.t-count-down--square>.t-count-down__split--text{color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)))}.t-count-down--default{color:var(--td-countdown-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-count-down--square{color:var(--td-countdown-round-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-count-down--square>.t-count-down__item{border-radius:var(--td-countdown-square-border-radius,var(--td-radius-small,6rpx));background:var(--td-countdown-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-count-down--round{color:var(--td-countdown-round-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-count-down--round>.t-count-down__item{border-radius:var(--td-countdown-round-border-radius,var(--td-radius-circle,50%));background:var(--td-countdown-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/props.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/props.d.ts
new file mode 100644
index 0000000..8cab4af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCountDownProps } from './type';
+declare const props: TdCountDownProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/props.js b/miniprogram_npm/tdesign-miniprogram/count-down/props.js
new file mode 100644
index 0000000..0897077
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/props.js
@@ -0,0 +1 @@
+const props={autoStart:{type:Boolean,value:!0},content:{type:String,value:"default"},format:{type:String,value:"HH:mm:ss"},millisecond:{type:Boolean,value:!1},size:{type:String,value:"medium"},splitWithUnit:{type:Boolean,value:!1},theme:{type:String,value:"default"},time:{type:Number,value:0,required:!0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/type.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/type.d.ts
new file mode 100644
index 0000000..2d362a6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/type.d.ts
@@ -0,0 +1,35 @@
+export interface TdCountDownProps {
+ autoStart?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ format?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ millisecond?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'small' | 'medium' | 'large';
+ };
+ splitWithUnit?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'round' | 'square';
+ };
+ time: {
+ type: NumberConstructor;
+ value?: number;
+ required?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/type.js b/miniprogram_npm/tdesign-miniprogram/count-down/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/utils.d.ts
new file mode 100644
index 0000000..18c1fac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/utils.d.ts
@@ -0,0 +1,25 @@
+export interface TimeData {
+ DD: number;
+ HH: number;
+ mm: number;
+ ss: number;
+ SSS: number;
+}
+export declare const TimeDataUnit: {
+ DD: string;
+ HH: string;
+ mm: string;
+ ss: string;
+ SSS: string;
+};
+export declare const parseTimeData: (time: number) => TimeData;
+export declare const isSameSecond: (time1: number, time2: number) => boolean;
+export declare type TTimeList = {
+ digit: string;
+ unit: string;
+ match: string;
+}[];
+export declare const parseFormat: (time: number, format: string) => {
+ timeText: string;
+ timeList: TTimeList;
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/utils.js b/miniprogram_npm/tdesign-miniprogram/count-down/utils.js
new file mode 100644
index 0000000..03f92a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/utils.js
@@ -0,0 +1 @@
+export const TimeDataUnit={DD:"天",HH:"时",mm:"分",ss:"秒",SSS:"毫秒"};const SECOND=1e3,MINUTE=6e4,HOUR=36e5,DAY=24*HOUR;export const parseTimeData=function(t){return{DD:Math.floor(t/DAY),HH:Math.floor(t%DAY/HOUR),mm:Math.floor(t%HOUR/6e4),ss:Math.floor(t%6e4/1e3),SSS:Math.floor(t%1e3)}};export const isSameSecond=function(t,e){return Math.floor(t/1e3)===Math.floor(e/1e3)};export const parseFormat=function(t,e){const o={"D+":Math.floor(t/864e5),"H+":Math.floor(t%864e5/36e5),"m+":Math.floor(t%36e5/6e4),"s+":Math.floor(t%6e4/1e3),"S+":Math.floor(t%1e3)},r=[];let n=e;return Object.keys(o).forEach((t=>{new RegExp(`(${t})`).test(n)&&(n=n.replace(RegExp.$1,((e,n,s)=>{const a=`${o[t]}`;let l=a;e.length>1&&(l=(e.replace(new RegExp(e[0],"g"),"0")+a).substr(a.length));const h=s.substr(n+e.length),c=r[r.length-1];if(c){const t=c.unit.indexOf(e);-1!==t&&(c.unit=c.unit.substr(0,t))}return r.push({digit:l,unit:h,match:e}),l})))})),{timeText:n,timeList:r}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.d.ts
new file mode 100644
index 0000000..e29ab2c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.d.ts
@@ -0,0 +1,80 @@
+import type { Dayjs } from 'dayjs';
+import { SuperComponent } from '../common/src/index';
+declare enum ModeItem {
+ YEAR = "year",
+ MONTH = "month",
+ DATE = "date",
+ HOUR = "hour",
+ MINUTE = "minute",
+ SECOND = "second"
+}
+interface ColumnItemValue {
+ value: string | number;
+ label: string | number;
+}
+export default class DateTimePicker extends SuperComponent {
+ properties: import("./type").TdDateTimePickerProps;
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ observers: {
+ 'start, end, value': () => void;
+ customLocale(v: any): void;
+ mode(m: any): void;
+ };
+ date: any;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ columns: any[];
+ columnsValue: any[];
+ fullModes: any[];
+ locale: any;
+ dayjsLocale: any;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ methods: {
+ updateColumns(): void;
+ getDaysOfWeekInMonth(date: Dayjs): Array<{
+ value: string;
+ label: string;
+ }>;
+ getParseDate(): Dayjs;
+ normalize(val: string | number, defaultDay: Dayjs): Dayjs;
+ getMinDate(): Dayjs;
+ getMaxDate(): Dayjs;
+ getDateRect(type?: string): any[];
+ getDate(): Dayjs;
+ clipDate(date: Dayjs): Dayjs;
+ setYear(date: Dayjs, year: number): Dayjs;
+ setMonth(date: Dayjs, month: number): Dayjs;
+ getColumnOptions(): any[];
+ getOptionByType(type: string): any;
+ getYearOptions(dateParams: any): ColumnItemValue[];
+ getOptionEdge(minOrMax: 'min' | 'max', type: any): any;
+ getMonthOptions(): ColumnItemValue[];
+ getDayOptions(): ColumnItemValue[];
+ getHourOptions(): ColumnItemValue[];
+ getMinuteOptions(): ColumnItemValue[];
+ getValueCols(this: DateTimePicker): {
+ columns: any;
+ columnsValue: any;
+ };
+ getColumnsValue(): string[];
+ getNewDate(value: number, type: ModeItem): Dayjs;
+ onColumnChange(e: WechatMiniprogram.CustomEvent): void;
+ onConfirm(): void;
+ onCancel(): void;
+ onVisibleChange(e: any): void;
+ onClose(e: any): void;
+ resetColumns(): void;
+ };
+ getFullModeArray(mode: any): any;
+ getFullModeByModeString(modeString: any, matchModes: any): any;
+ isTimeMode(): boolean;
+}
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.js
new file mode 100644
index 0000000..25fd4f2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.js
@@ -0,0 +1 @@
+var _a,_b;import{__decorate}from"tslib";import config from"../common/config";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import dayjsLocaleMap from"./locale/dayjs";const dayjs=require("dayjs"),localeData=require("dayjs/plugin/localeData");dayjs.extend(localeData),dayjs.locale("zh-cn");const defaultLocale=(null===(_a=dayjsLocaleMap[dayjs.locale()])||void 0===_a?void 0:_a.key)||(null===(_b=dayjsLocaleMap.default)||void 0===_b?void 0:_b.key),{prefix:prefix}=config,name=`${prefix}-date-time-picker`;var ModeItem;!function(e){e.YEAR="year",e.MONTH="month",e.DATE="date",e.HOUR="hour",e.MINUTE="minute",e.SECOND="second"}(ModeItem||(ModeItem={}));const DATE_MODES=["year","month","date"],TIME_MODES=["hour","minute","second"],FULL_MODES=[...DATE_MODES,...TIME_MODES];let DateTimePicker=class extends SuperComponent{constructor(){super(...arguments),this.properties=props,this.externalClasses=[`${prefix}-class`,`${prefix}-class-confirm`,`${prefix}-class-cancel`,`${prefix}-class-title`],this.options={multipleSlots:!0},this.observers={"start, end, value":function(){this.updateColumns()},customLocale(e){e&&dayjsLocaleMap[e].key&&this.setData({locale:dayjsLocaleMap[e].i18n,dayjsLocale:dayjsLocaleMap[e].key})},mode(e){const t=this.getFullModeArray(e);this.setData({fullModes:t}),this.updateColumns()}},this.date=null,this.data={prefix:prefix,classPrefix:name,columns:[],columnsValue:[],fullModes:[],locale:dayjsLocaleMap[defaultLocale].i18n,dayjsLocale:dayjsLocaleMap[defaultLocale].key},this.controlledProps=[{key:"value",event:"change"}],this.methods={updateColumns(){this.date=this.getParseDate();const{columns:e,columnsValue:t}=this.getValueCols();this.setData({columns:e,columnsValue:t})},getDaysOfWeekInMonth(e){const{locale:t,dayjsLocale:a}=this.data,s=e.startOf("month"),o=e.endOf("month"),n=[];for(let e=0;e<=o.diff(s,"days");e+=1){const o=s.add(e,"days").locale(a).format("ddd");n.push({value:`${e+1}`,label:`${e+1}${t.date||""} ${o}`})}return n},getParseDate(){const{value:e,defaultValue:t}=this.properties,a=this.getMinDate();let s=e||t;if(this.isTimeMode()){const e=dayjs(a).format("YYYY-MM-DD");s=dayjs(`${e} ${s}`)}const o=dayjs(s||a);return o.isValid()?o:a},normalize:(e,t)=>e&&dayjs(e).isValid()?dayjs(e):t,getMinDate(){return this.normalize(this.properties.start,dayjs().subtract(10,"year"))},getMaxDate(){return this.normalize(this.properties.end,dayjs().add(10,"year"))},getDateRect(e="default"){const t=this[{min:"getMinDate",max:"getMaxDate",default:"getDate"}[e]]();return["year","month","date","hour","minute","second"].map((e=>{var a;return null===(a=t[e])||void 0===a?void 0:a.call(t)}))},getDate(){return this.clipDate((null==this?void 0:this.date)||this.getMinDate())},clipDate(e){const t=this.getMinDate(),a=this.getMaxDate();return dayjs(Math.min(Math.max(t.valueOf(),e.valueOf()),a.valueOf()))},setYear(e,t){const a=e.date(),s=e.year(t).daysInMonth();return e.date(Math.min(a.valueOf(),s.valueOf())).year(t)},setMonth(e,t){const a=e.date(),s=e.month(t).daysInMonth();return e.date(Math.min(a.valueOf(),s.valueOf())).month(t)},getColumnOptions(){const{fullModes:e,filter:t}=this.data,a=[];return null==e||e.forEach((e=>{const s=this.getOptionByType(e);"function"==typeof t?a.push(t(e,s)):a.push(s)})),a},getOptionByType(e){var t;const{locale:a,steps:s,showWeek:o}=this.data,n=[],l=this.getOptionEdge("min",e),i=this.getOptionEdge("max",e),r=null!==(t=null==s?void 0:s[e])&&void 0!==t?t:1,u=dayjs().locale(this.data.dayjsLocale).localeData().monthsShort();if("date"===e&&o)return this.getDaysOfWeekInMonth(this.date);for(let t=l;t<=i;t+=r)n.push({value:`${t}`,label:"month"===e?u[t]:`${t+a[e]}`});return n},getYearOptions(e){const{locale:t}=this.data,{minDateYear:a,maxDateYear:s}=e,o=[];for(let e=a;e<=s;e+=1)o.push({value:`${e}`,label:`${e+t.year}`});return o},getOptionEdge(e,t){const a=this.getDateRect(),s=this.getDateRect(e),o={month:[0,11],date:[1,this.getDate().daysInMonth()],hour:[0,23],minute:[0,59],second:[0,59]},n=["year","month","date","hour","minute","second"];for(let l=0,i=a.length;l{a.push(`${t[e]()}`)})),a},getNewDate(e,t){let a=this.getDate();switch(t){case ModeItem.YEAR:a=this.setYear(a,e);break;case ModeItem.MONTH:a=this.setMonth(a,e);break;case ModeItem.DATE:a=a.date(e);break;case ModeItem.HOUR:a=a.hour(e);break;case ModeItem.MINUTE:a=a.minute(e);break;case ModeItem.SECOND:a=a.second(e)}return this.clipDate(a)},onColumnChange(e){const{value:t,column:a}=null==e?void 0:e.detail,{fullModes:s,format:o}=this.data,n=null==t?void 0:t[a],l=null==s?void 0:s[a],i=this.getNewDate(parseInt(n,10),l);this.date=i;const{columns:r,columnsValue:u}=this.getValueCols();this.setData({columns:r,columnsValue:u});const d=this.getDate(),h=o?d.format(o):d.valueOf();this.triggerEvent("pick",{value:h})},onConfirm(){const{format:e}=this.properties,t=this.getDate(),a=e?t.format(e):t.valueOf();this._trigger("change",{value:a}),this.triggerEvent("confirm",{value:a}),this.resetColumns()},onCancel(){this.resetColumns(),this.triggerEvent("cancel")},onVisibleChange(e){e.detail.visible||this.resetColumns()},onClose(e){const{trigger:t}=e.detail;this.triggerEvent("close",{trigger:t})},resetColumns(){const e=this.getParseDate();this.date=e;const{columns:t,columnsValue:a}=this.getValueCols();this.setData({columns:t,columnsValue:a})}}}getFullModeArray(e){if("string"==typeof e||e instanceof String)return this.getFullModeByModeString(e,FULL_MODES);if(Array.isArray(e)){if(1===(null==e?void 0:e.length))return this.getFullModeByModeString(e[0],FULL_MODES);if(2===(null==e?void 0:e.length)){return[...this.getFullModeByModeString(e[0],DATE_MODES),...this.getFullModeByModeString(e[1],TIME_MODES)]}}}getFullModeByModeString(e,t){if(!e)return[];const a=null==t?void 0:t.findIndex((t=>e===t));return null==t?void 0:t.slice(0,a+1)}isTimeMode(){const{fullModes:e}=this.data;return e[0]===ModeItem.HOUR}};DateTimePicker=__decorate([wxComponent()],DateTimePicker);export default DateTimePicker;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.json b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.json
new file mode 100644
index 0000000..d89c31e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-picker":"../picker/picker","t-picker-item":"../picker-item/picker-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxml b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxml
new file mode 100644
index 0000000..d608c9a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxss b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxss
new file mode 100644
index 0000000..2f40c37
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-date-time-picker__item--roomly{width:var(--td-data-time-picker-year-width,128rpx);flex:0 0 var(--td-data-time-picker-year-width,128rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.d.ts
new file mode 100644
index 0000000..0d6f6df
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.d.ts
@@ -0,0 +1,174 @@
+import enLocale from 'dayjs/locale/en';
+declare const _default: {
+ default: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ en: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ 'zh-cn': {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ zh: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ 'zh-tw': {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ tc: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ ko: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ kr: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ ja: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ ru: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.js
new file mode 100644
index 0000000..976f7af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.js
@@ -0,0 +1 @@
+import enLocale from"dayjs/locale/en";import zhLocale from"dayjs/locale/zh-cn";import tcLocale from"dayjs/locale/zh-tw";import koLocale from"dayjs/locale/ko";import jaLocale from"dayjs/locale/ja";import ruLocale from"dayjs/locale/ru";import en from"./en";import zh from"./zh";import tc from"./tc";import ko from"./ko";import ja from"./ja";import ru from"./ru";export default{default:{key:"zh-cn",label:"简体中文",locale:zhLocale,i18n:zh},en:{key:"en",label:"English",locale:enLocale,i18n:en},"zh-cn":{key:"zh-cn",label:"简体中文",locale:zhLocale,i18n:zh},zh:{key:"zh-cn",label:"简体中文",locale:zhLocale,i18n:zh},"zh-tw":{key:"zh-tw",label:"繁体中文",locale:tcLocale,i18n:tc},tc:{key:"zh-tw",label:"繁体中文",locale:tcLocale,i18n:tc},ko:{key:"ko",label:"한국어",locale:koLocale,i18n:ko},kr:{key:"ko",label:"한국어",locale:koLocale,i18n:ko},ja:{key:"ja",label:"日本語",locale:jaLocale,i18n:ja},ru:{key:"ru",label:"русский",locale:ruLocale,i18n:ru}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.js
new file mode 100644
index 0000000..f5c7622
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.js
@@ -0,0 +1 @@
+export default{year:"",month:"",date:"",hour:"",minute:"",second:"",am:"AM",pm:"PM",confirm:"confirm",cancel:"cancel"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.js
new file mode 100644
index 0000000..0086028
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.js
@@ -0,0 +1 @@
+export default{year:"年",month:"月",date:"日",hour:"時",minute:"分",second:"秒",am:"午前",pm:"午後",confirm:"確認",cancel:"キャンセル"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.js
new file mode 100644
index 0000000..ec143c4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.js
@@ -0,0 +1 @@
+export default{year:"년",month:"월",date:"일",hour:"시",minute:"분",second:"초",am:"오전",pm:"오후",confirm:"확인",cancel:"취소"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.js
new file mode 100644
index 0000000..b6655dd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.js
@@ -0,0 +1 @@
+export default{year:"",month:"",date:"",hour:"",minute:"",second:"",am:"до полудня",pm:"после полудня",confirm:"подтвердить",cancel:"отменить"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.js
new file mode 100644
index 0000000..f9ef748
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.js
@@ -0,0 +1 @@
+export default{year:"年",month:"月",date:"日",hour:"時",minute:"分",second:"秒",am:"上午",pm:"下午",confirm:"確定",cancel:"取消"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.js
new file mode 100644
index 0000000..ed21da3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.js
@@ -0,0 +1 @@
+export default{year:"年",month:"月",date:"日",hour:"时",minute:"分",second:"秒",am:"上午",pm:"下午",confirm:"确定",cancel:"取消"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.d.ts
new file mode 100644
index 0000000..8837a6a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDateTimePickerProps } from './type';
+declare const props: TdDateTimePickerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.js
new file mode 100644
index 0000000..2452c15
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!1},cancelBtn:{type:String,value:"取消"},confirmBtn:{type:String,value:""},customLocale:{type:String,value:"zh"},end:{type:null},filter:{type:null},format:{type:String,value:"YYYY-MM-DD HH:mm:ss"},formatter:{type:null},header:{type:Boolean,value:!0},mode:{type:null,value:"date"},popupProps:{type:Object,value:{}},showWeek:{type:Boolean,value:!1},start:{type:null},steps:{type:Object},title:{type:String,value:""},usePopup:{type:Boolean,value:!0},value:{type:null,value:null},defaultValue:{type:null},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.d.ts
new file mode 100644
index 0000000..0d5a678
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.d.ts
@@ -0,0 +1,87 @@
+import { PopupProps } from '../popup/index';
+export interface TdDateTimePickerProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ cancelBtn?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ confirmBtn?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ customLocale?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ end?: {
+ type: null;
+ value?: string | number;
+ };
+ filter?: {
+ type: undefined;
+ value?: (type: TimeModeValues, columns: DateTimePickerColumn) => DateTimePickerColumn;
+ };
+ format?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ formatter?: {
+ type: undefined;
+ value?: (option: DateTimePickerColumnItem, columnIndex: number) => DateTimePickerColumnItem;
+ };
+ header?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ mode?: {
+ type: null;
+ value?: DateTimePickerMode;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ showWeek?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ start?: {
+ type: null;
+ value?: string | number;
+ };
+ steps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: DateValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: DateValue;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type DateTimePickerColumn = DateTimePickerColumnItem[];
+export interface DateTimePickerColumnItem {
+ label: string;
+ value: string;
+}
+export declare type DateTimePickerMode = TimeModeValues | Array;
+export declare type TimeModeValues = 'year' | 'month' | 'date' | 'hour' | 'minute' | 'second';
+export declare type DateValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.d.ts
new file mode 100644
index 0000000..4efa470
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent } from '../common/src/index';
+export default class Dialog extends SuperComponent {
+ behaviors: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: import("./type").TdDialogProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ buttonVariant: string;
+ };
+ observers: {
+ 'confirmBtn, cancelBtn'(confirm: any, cancel: any): void;
+ };
+ methods: {
+ onTplButtonTap(e: any): void;
+ onConfirm(): void;
+ onCancel(): void;
+ onClose(): void;
+ close(): void;
+ overlayClick(): void;
+ onActionTap(index: number): void;
+ openValueCBHandle(e: any): void;
+ openValueErrCBHandle(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.js b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.js
new file mode 100644
index 0000000..fe049df
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{toCamel}from"../common/utils";import{isObject}from"../common/validator";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-dialog`;let Dialog=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-confirm`,`${prefix}-class-cancel`,`${prefix}-class-action`],this.properties=props,this.data={prefix:prefix,classPrefix:name,buttonVariant:"text"},this.observers={"confirmBtn, cancelBtn"(t,e){const{prefix:o,classPrefix:i,buttonLayout:n}=this.data,s={buttonVariant:"text"},r=[t,e].some((t=>isObject(t)&&t.variant&&"text"!==t.variant)),a={confirm:t,cancel:e},c=[`${i}__button`],l=[];r?(s.buttonVariant="base",c.push(`${i}__button--${n}`)):(c.push(`${i}__button--text`),l.push(`${i}-button`)),Object.keys(a).forEach((t=>{const e=a[t],n={block:!0,rootClass:[...c,`${i}__button--${t}`],tClass:[...l,`${o}-class-${t}`],variant:s.buttonVariant,openType:""};"cancel"===t&&"base"===s.buttonVariant&&(n.theme="light"),s[`_${t}`]="string"==typeof e?Object.assign(Object.assign({},n),{content:e}):e&&"object"==typeof e?Object.assign(Object.assign({},n),e):null})),this.setData(Object.assign({},s))}},this.methods={onTplButtonTap(t){var e,o,i;const n=t.type,{type:s,extra:r}=t.target.dataset,a=this.data[`_${s}`],c=`bind${n}`;if("action"===s)return void this.onActionTap(r);if("function"==typeof a[c]){a[c](t)&&this.close()}if(!!!a.openType&&["confirm","cancel"].includes(s)&&(null===(e=this[toCamel(`on-${s}`)])||void 0===e||e.call(this,s)),"tap"!==n){const e=(null===(i=null===(o=t.detail)||void 0===o?void 0:o.errMsg)||void 0===i?void 0:i.indexOf("ok"))>-1;this.triggerEvent(e?"open-type-event":"open-type-error-event",t.detail)}},onConfirm(){this.triggerEvent("confirm"),this._onConfirm&&(this._onConfirm({trigger:"confirm"}),this.close())},onCancel(){const t={trigger:"cancel"};this.triggerEvent("cancel"),this.triggerEvent("close",t),this._onCancel&&(this._onCancel(t),this.close())},onClose(){var t;const e={trigger:"close-btn"};this.triggerEvent("close",e),null===(t=this._onCancel)||void 0===t||t.call(this,e),this.close()},close(){this.setData({visible:!1})},overlayClick(){var t;if(this.triggerEvent("overlay-click"),this.properties.closeOnOverlayClick){const e={trigger:"overlay"};this.triggerEvent("close",e),null===(t=this._onCancel)||void 0===t||t.call(this,e),this.close()}},onActionTap(t){this.triggerEvent("action",{index:t}),this._onAction&&(this._onAction({index:t}),this.close())},openValueCBHandle(t){this.triggerEvent("open-type-event",t.detail)},openValueErrCBHandle(t){this.triggerEvent("open-type-error-event",t.detail)}}}};Dialog=__decorate([wxComponent()],Dialog);export default Dialog;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.json b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.json
new file mode 100644
index 0000000..02f8832
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup","t-icon":"../icon/icon","t-button":"../button/button"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxml b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxml
new file mode 100644
index 0000000..15386d6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxs b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxs
new file mode 100644
index 0000000..8f70e47
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxs
@@ -0,0 +1,13 @@
+module.exports.getTypeof = function (obj) {
+ return typeof obj;
+};
+
+module.exports.getActionClass = function (prefix, buttonLayout) {
+ var cls = [prefix + '__button', prefix + '__button--action'];
+
+ if (buttonLayout) {
+ cls.push(prefix + '__button--' + buttonLayout);
+ }
+
+ return cls.join(' ');
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxss b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxss
new file mode 100644
index 0000000..f00ef36
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-dialog{overflow:hidden;width:var(--td-dialog-width,622rpx);border-radius:var(--td-dialog-border-radius,var(--td-radius-extra-large,24rpx));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-dialog__wrapper{--td-popup-border-radius:var(--td-dialog-border-radius, var(--td-radius-extra-large, 24rpx))}.t-dialog__close-btn{position:absolute;top:var(--td-spacer,16rpx);right:var(--td-spacer,16rpx);color:var(--td-dialog-close-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));z-index:1}.t-dialog__content{padding-top:var(--td-spacer-3,48rpx);padding-right:var(--td-spacer-3,48rpx);padding-bottom:0;padding-left:var(--td-spacer-3,48rpx);max-height:var(--td-dialog-body-max-height,912rpx);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;font-size:var(--td-font-size-m,32rpx)}.t-dialog__content:empty{display:none}.t-dialog__header{text-align:center;font-weight:700;font-size:var(--td-dialog-title-font-size,36rpx);line-height:var(--td-dialog-title-line-height,52rpx);color:var(--td-dialog-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-dialog__header+.t-dialog__body{margin-top:var(--td-spacer,16rpx)}.t-dialog__body{overflow-y:scroll;text-align:center;-webkit-overflow-scrolling:touch;font-size:var(--td-dialog-content-font-size,32rpx);color:var(--td-dialog-content-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));line-height:var(--td-dialog-content-line-height,48rpx)}.t-dialog__body-text{word-wrap:break-word}.t-dialog__body--left{text-align:left}.t-dialog__body--right{text-align:right}.t-dialog__footer{display:flex;padding:var(--td-spacer-3,48rpx)}.t-dialog__footer--column{flex-flow:column-reverse}.t-dialog__footer--column .t-dialog__button{width:100%}.t-dialog__footer--full{padding:var(--td-spacer-4,64rpx) 0 0}.t-dialog__button{position:relative;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dialog__button--horizontal+.t-dialog__button--horizontal{margin-left:var(--td-spacer-1,24rpx)}.t-dialog__button--vertical+.t-dialog__button--vertical{margin-bottom:var(--td-spacer-1,24rpx)}.t-dialog__button--text{flex:1;--td-button-border-radius:0;--td-button-medium-height:112rpx;border-radius:0}.t-dialog__button--text:before{content:' ';position:absolute;box-sizing:border-box;top:0;left:0;border-top:1px solid var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7));border-left:1px solid var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7));transform:scale(.5);transform-origin:0 0;width:200%;height:200%;border-radius:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/index.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/index.d.ts
new file mode 100644
index 0000000..8c8cf22
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/index.d.ts
@@ -0,0 +1,44 @@
+///
+///
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+interface DialogAlertOptionsType {
+ context?: Context;
+ selector?: string;
+ title?: string;
+ content?: string;
+ zIndex?: number;
+ asyncClose?: boolean;
+ confirmButtonText?: string;
+ textAlign?: string;
+ cancelBtn?: string | object;
+ confirmBtn?: string | object;
+ showOverlay?: boolean;
+ closeOnOverlayClick?: boolean;
+ preventScrollThrough?: boolean;
+}
+interface DialogConfirmOptionsType extends DialogAlertOptionsType {
+ cancelButtonText?: string;
+}
+interface Action {
+ content: string;
+ theme?: 'default' | 'primary' | 'danger' | 'light';
+}
+interface DialogActionOptionsType {
+ context?: Context;
+ selector?: string;
+ title?: string;
+ content: string;
+ zIndex?: number;
+ asyncClose?: boolean;
+ actions?: Action[];
+ buttonLayout?: 'vertical' | 'horizontal';
+}
+declare const _default: {
+ alert(options: DialogAlertOptionsType): Promise;
+ confirm(options: DialogConfirmOptionsType): Promise;
+ close(options?: DialogConfirmOptionsType): Promise;
+ action(options: DialogActionOptionsType): Promise<{
+ index: number;
+ }>;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/index.js b/miniprogram_npm/tdesign-miniprogram/dialog/index.js
new file mode 100644
index 0000000..dfdab67
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import props from"./props";import{getInstance}from"../common/utils";const defaultOptions={actions:[],buttonLayout:props.buttonLayout.value,cancelBtn:props.cancelBtn.value,closeOnOverlayClick:props.closeOnOverlayClick.value,confirmBtn:props.confirmBtn.value,content:"",preventScrollThrough:props.preventScrollThrough.value,showOverlay:props.showOverlay.value,title:"",visible:props.visible.value};export default{alert(t){const e=Object.assign({},t),{context:s,selector:o="#t-dialog"}=e,n=__rest(e,["context","selector"]),c=getInstance(s,o);return c?new Promise((t=>{const e=Object.assign(Object.assign(Object.assign({},defaultOptions),c.properties),n);c.setData(Object.assign(Object.assign({cancelBtn:""},e),{visible:!0})),c._onConfirm=t})):Promise.reject()},confirm(t){const e=Object.assign({},t),{context:s,selector:o="#t-dialog"}=e,n=__rest(e,["context","selector"]),c=getInstance(s,o);return c?new Promise(((t,e)=>{const s=Object.assign(Object.assign(Object.assign({},defaultOptions),c.properties),n);c.setData(Object.assign(Object.assign({},s),{visible:!0})),c._onConfirm=t,c._onCancel=e})):Promise.reject()},close(t){const{context:e,selector:s="#t-dialog"}=Object.assign({},t),o=getInstance(e,s);return o?(o.close(),Promise.resolve()):Promise.reject()},action(t){const e=Object.assign({},t),{context:s,selector:o="#t-dialog"}=e,n=__rest(e,["context","selector"]),c=getInstance(s,o);if(!c)return Promise.reject();const{buttonLayout:r="vertical",actions:i=c.properties.actions}=t,a="vertical"===r?7:3;return(!i||"object"==typeof i&&(0===i.length||i.length>a))&&console.warn(`action 数量建议控制在1至${a}个`),new Promise((t=>{const e=Object.assign(Object.assign(Object.assign({},defaultOptions),c.properties),n);c.setData(Object.assign(Object.assign({},e),{buttonLayout:r,visible:!0})),c._onAction=t}))}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/props.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/props.d.ts
new file mode 100644
index 0000000..15d9d87
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDialogProps } from './type';
+declare const props: TdDialogProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/props.js b/miniprogram_npm/tdesign-miniprogram/dialog/props.js
new file mode 100644
index 0000000..250cbcb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/props.js
@@ -0,0 +1 @@
+const props={actions:{type:Array},buttonLayout:{type:String,value:"horizontal"},cancelBtn:{type:null},closeBtn:{type:null,value:!1},closeOnOverlayClick:{type:Boolean,value:!1},confirmBtn:{type:null},content:{type:String},overlayProps:{type:Object,value:{}},preventScrollThrough:{type:Boolean,value:!0},showOverlay:{type:Boolean,value:!0},title:{type:String},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean},zIndex:{type:Number,value:11500}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/type.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/type.d.ts
new file mode 100644
index 0000000..a495cfa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/type.d.ts
@@ -0,0 +1,60 @@
+import { ButtonProps } from '../button/index';
+import { OverlayProps } from '../overlay/index';
+export interface TdDialogProps {
+ actions?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ buttonLayout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ cancelBtn?: {
+ type: null;
+ value?: string | ButtonProps | null;
+ };
+ closeBtn?: {
+ type: null;
+ value?: boolean | ButtonProps | null;
+ };
+ closeOnOverlayClick?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmBtn?: {
+ type: null;
+ value?: string | ButtonProps | null;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ overlayProps?: {
+ type: ObjectConstructor;
+ value?: OverlayProps;
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/type.js b/miniprogram_npm/tdesign-miniprogram/dialog/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.d.ts b/miniprogram_npm/tdesign-miniprogram/divider/divider.d.ts
new file mode 100644
index 0000000..d4d837c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.d.ts
@@ -0,0 +1,18 @@
+import { SuperComponent } from '../common/src/index';
+export default class Divider extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdDividerProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ lineColor(): void;
+ };
+ methods: {
+ setStyle(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.js b/miniprogram_npm/tdesign-miniprogram/divider/divider.js
new file mode 100644
index 0000000..9d084aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-divider`;let Divider=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name},this.observers={lineColor(){this.setStyle()}},this.methods={setStyle(){const{lineColor:e}=this.properties,o=""+(e?`border-color: ${e};`:"");this.setData({dividerStyle:o})}}}};Divider=__decorate([wxComponent()],Divider);export default Divider;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.json b/miniprogram_npm/tdesign-miniprogram/divider/divider.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.wxml b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxml
new file mode 100644
index 0000000..9ed265c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.wxss b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxss
new file mode 100644
index 0000000..9e9e48d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-divider{display:flex;color:var(--td-divider-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-divider-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-style:var(--td-divider-content-line-style,solid);border-width:0}.t-divider::after,.t-divider::before{content:'';display:block;flex:1;box-sizing:border-box;border:inherit;border-color:inherit;border-style:inherit}.t-divider--horizontal{align-items:center;margin:var(--td-divider-horizontal-margin,20rpx) 0}.t-divider--horizontal::after,.t-divider--horizontal::before{border-top-width:var(--td-divider-border-width,2rpx);transform:scaleY(.5);transform-origin:center}.t-divider--horizontal .t-divider__content:not(:empty){margin:0 var(--td-divider-content-margin,var(--td-spacer-1,24rpx))}.t-divider--vertical{flex-direction:column;height:28rpx;margin:0 var(--td-divider-vertical-margin,var(--td-spacer,16rpx))}.t-divider--vertical::after,.t-divider--vertical::before{border-left-width:var(--td-divider-border-width,2rpx);transform:scaleX(.5);transform-origin:center}.t-divider--vertical-center{align-items:center;height:100%}.t-divider--dashed{border-style:dashed}.t-divider__content{font-size:var(--td-divider-content-font-size,var(--td-font-size-s,24rpx));line-height:var(--td-divider-content-line-height,40rpx);color:var(--td-divider-content-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-divider--left::before,.t-divider--right::after{max-width:60rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/props.d.ts b/miniprogram_npm/tdesign-miniprogram/divider/props.d.ts
new file mode 100644
index 0000000..806aab2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDividerProps } from './type';
+declare const props: TdDividerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/props.js b/miniprogram_npm/tdesign-miniprogram/divider/props.js
new file mode 100644
index 0000000..70fd183
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"center"},content:{type:String},dashed:{type:Boolean,value:!1},layout:{type:String,value:"horizontal"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/type.d.ts b/miniprogram_npm/tdesign-miniprogram/divider/type.d.ts
new file mode 100644
index 0000000..424a7b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/type.d.ts
@@ -0,0 +1,18 @@
+export interface TdDividerProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'left' | 'right' | 'center';
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ dashed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/type.js b/miniprogram_npm/tdesign-miniprogram/divider/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.d.ts b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.d.ts
new file mode 100644
index 0000000..22932ab
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.d.ts
@@ -0,0 +1,16 @@
+import { ComponentsOptionsType, SuperComponent } from '../common/src/index';
+export default class Drawer extends SuperComponent {
+ behaviors: string[];
+ externalClasses: any[];
+ options: ComponentsOptionsType;
+ properties: import("./type").TdDrawerProps;
+ data: {
+ classPrefix: string;
+ };
+ methods: {
+ visibleChange({ detail }: {
+ detail: any;
+ }): void;
+ itemClick(detail: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.js b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.js
new file mode 100644
index 0000000..03c69f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-drawer`;let Drawer=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[],this.options={multipleSlots:!0},this.properties=props,this.data={classPrefix:name},this.methods={visibleChange({detail:e}){const{visible:t}=e,{showOverlay:r}=this.data;this.setData({visible:t}),t||this.triggerEvent("close",{trigger:"overlay"}),r&&this.triggerEvent("overlay-click",{visible:t})},itemClick(e){const{index:t,item:r}=e.currentTarget.dataset;this.triggerEvent("item-click",{index:t,item:r})}}}};Drawer=__decorate([wxComponent()],Drawer);export default Drawer;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.json b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.json
new file mode 100644
index 0000000..711afb8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxml b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxml
new file mode 100644
index 0000000..1d5b01f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxml
@@ -0,0 +1 @@
+{{title}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxss b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxss
new file mode 100644
index 0000000..e2927f8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-drawer{background:var(--td-drawer-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));width:var(--td-drawer-width,560rpx);height:100%;display:flex;flex-direction:column}.t-drawer--hover{background-color:var(--td-drawer-hover-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-drawer__title{font-weight:600;font-size:var(--td-drawer-title-font-size,36rpx);padding:48rpx 32rpx 16rpx;color:var(--td-drawer-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-drawer__sidebar{height:var(--td-drawer-sidebar-height,70vh)}.t-drawer__sidebar-item{display:flex;align-items:center;position:relative;padding-top:var(--td-drawer-item-padding,32rpx);padding-right:0;padding-bottom:var(--td-drawer-item-padding,32rpx);padding-left:var(--td-drawer-item-padding,32rpx);line-height:var(--td-drawer-item-height,48rpx)}.t-drawer__sidebar-item::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-drawer-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-drawer__sidebar-item::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-drawer__sidebar-item::after{left:var(--td-drawer-item-padding,32rpx)}.t-drawer__sidebar-item-title{flex:1;color:var(--td-drawer-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-drawer__sidebar-item-icon{padding-right:16rpx;color:var(--td-drawer-item-icon-color,var(--td-drawer-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)))));font-size:var(--td-drawer-item-icon-size,48rpx)}.t-drawer__footer{flex:1;display:flex;flex-direction:column;padding-bottom:var(--td-drawer-footer-padding-bottom,40rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/props.d.ts b/miniprogram_npm/tdesign-miniprogram/drawer/props.d.ts
new file mode 100644
index 0000000..dbb379d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDrawerProps } from './type';
+declare const props: TdDrawerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/props.js b/miniprogram_npm/tdesign-miniprogram/drawer/props.js
new file mode 100644
index 0000000..f8ac27c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/props.js
@@ -0,0 +1 @@
+const props={closeOnOverlayClick:{type:Boolean,value:!0},destroyOnClose:{type:Boolean,value:!1},items:{type:Array},placement:{type:String,value:"right"},showOverlay:{type:Boolean,value:!0},title:{type:String},visible:{type:Boolean,value:!1},zIndex:{type:Number,value:11500}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/type.d.ts b/miniprogram_npm/tdesign-miniprogram/drawer/type.d.ts
new file mode 100644
index 0000000..7efbbbe
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/type.d.ts
@@ -0,0 +1,42 @@
+export interface TdDrawerProps {
+ closeOnOverlayClick?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ destroyOnClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ items?: {
+ type: ArrayConstructor;
+ value?: DrawerItem[];
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
+export interface DrawerItem {
+ title: string;
+ icon: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/type.js b/miniprogram_npm/tdesign-miniprogram/drawer/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.d.ts
new file mode 100644
index 0000000..21473e9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.d.ts
@@ -0,0 +1,48 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+import type { TdDropdownItemProps } from './type';
+export interface DropdownItemProps extends TdDropdownItemProps {
+}
+export default class DropdownMenuItem extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: TdDropdownItemProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ show: boolean;
+ top: number;
+ maskHeight: number;
+ initValue: any;
+ hasChanged: boolean;
+ duration: string | number;
+ zIndex: number;
+ overlay: boolean;
+ labelAlias: string;
+ valueAlias: string;
+ computedLabel: string;
+ firstCheckedValue: string;
+ };
+ relations: RelationsOptions;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ keys(obj: any): void;
+ value(v: any): void;
+ 'label, computedLabel, disabled'(): void;
+ show(visible: any): void;
+ };
+ methods: {
+ closeDropdown(): void;
+ getParentBottom(cb: any): void;
+ handleTreeClick(e: any): void;
+ handleRadioChange(e: any): void;
+ handleMaskClick(): void;
+ handleReset(): void;
+ handleConfirm(): void;
+ onLeaved(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.js b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.js
new file mode 100644
index 0000000..775e675
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import menuProps from"../dropdown-menu/props";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-dropdown-item`;let DropdownMenuItem=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-column`,`${prefix}-class-column-item`,`${prefix}-class-column-item-label`,`${prefix}-class-footer`],this.properties=props,this.data={prefix:prefix,classPrefix:name,show:!1,top:0,maskHeight:0,initValue:null,hasChanged:!1,duration:menuProps.duration.value,zIndex:menuProps.zIndex.value,overlay:menuProps.showOverlay.value,labelAlias:"label",valueAlias:"value",computedLabel:"",firstCheckedValue:""},this.relations={"../dropdown-menu/dropdown-menu":{type:"parent",linked(e){const{zIndex:t,duration:a,showOverlay:s}=e.properties;this.setData({zIndex:t,duration:a,showOverlay:s})}}},this.controlledProps=[{key:"value",event:"change"}],this.observers={keys(e){this.setData({labelAlias:e.label||"label",valueAlias:e.value||"value"})},value(e){const{options:t,labelAlias:a,valueAlias:s}=this.data;if(this.data.multiple&&!Array.isArray(e))throw TypeError("应传入数组类型的 value");const o=t.find((t=>t[s]===e));o&&this.setData({computedLabel:o[a]})},"label, computedLabel, disabled"(){var e;null===(e=this.$parent)||void 0===e||e.getAllItems()},show(e){e&&this.getParentBottom((()=>{this.setData({wrapperVisible:!0})}))}},this.methods={closeDropdown(){var e;null===(e=this.$parent)||void 0===e||e.setData({activeIdx:-1}),this.setData({show:!1}),this.triggerEvent("close")},getParentBottom(e){getRect(this.$parent,`#${prefix}-bar`).then((t=>{this.setData({top:t.bottom,maskHeight:t.top},e)}))},handleTreeClick(e){const{level:t,value:a}=e.currentTarget.dataset,{value:s}=this.data;s[t]=a,this._trigger("change",{value:s})},handleRadioChange(e){const{value:t}=e.detail;if(this._trigger("change",{value:t}),this.data.multiple){const e=this.data.options.find((e=>t.includes(e.value)));e&&(this.data.firstCheckedValue=e.value)}else this.closeDropdown()},handleMaskClick(){var e;(null===(e=this.$parent)||void 0===e?void 0:e.properties.closeOnClickOverlay)&&this.closeDropdown()},handleReset(){this._trigger("change",{value:[]}),this._trigger("reset")},handleConfirm(){this._trigger("confirm",{value:this.data.value}),this.closeDropdown(),this.setData({firstCheckedValue:this.data.firstCheckedValue})},onLeaved(){this.setData({wrapperVisible:!1})}}}};DropdownMenuItem=__decorate([wxComponent()],DropdownMenuItem);export default DropdownMenuItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.json b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.json
new file mode 100644
index 0000000..28335a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-button":"../button/button","t-radio":"../radio/radio","t-radio-group":"../radio-group/radio-group","t-checkbox":"../checkbox/checkbox","t-checkbox-group":"../checkbox-group/checkbox-group","t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml
new file mode 100644
index 0000000..1317201
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxss b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxss
new file mode 100644
index 0000000..3f6ffd5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-dropdown-item{position:fixed;right:0;left:0;top:0;overflow:hidden;bottom:0}.t-dropdown-item__content{display:flex;flex-direction:column;z-index:11600;overflow:hidden}.t-dropdown-item__popup-host{display:block;width:100%;overflow:hidden;position:absolute;left:0;top:0}.t-dropdown-item__body{flex:1;background:var(--td-dropdown-menu-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));overflow:auto;max-height:var(--td-dropdown-body-max-height,560rpx)}.t-dropdown-item__body--tree{display:flex;overflow:hidden}.t-dropdown-item__body--multi{padding-top:var(--td-spacer,16rpx);padding-bottom:var(--td-spacer,16rpx);overflow-y:auto}.t-dropdown-item__scroll{max-height:var(--td-dropdown-body-max-height,560rpx)}.t-dropdown-item__footer{display:flex;background:var(--td-dropdown-menu-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));padding:32rpx;position:relative}.t-dropdown-item__footer::after{content:'';display:block;position:absolute;top:0;bottom:unset;left:unset;right:unset;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-dropdown-item__footer::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-dropdown-item__footer-btn{flex:1}.t-dropdown-item__footer-btn+.t-dropdown-item__footer-btn{margin-left:32rpx}.t-dropdown-item__body:empty,.t-dropdown-item__footer:empty{display:none}.t-dropdown-item__checkbox,.t-dropdown-item__radio{width:100%;overflow:scroll;box-sizing:border-box}.t-dropdown-item__checkbox-group,.t-dropdown-item__radio-group{display:grid;grid-gap:24rpx}.t-dropdown-item__radio-group{display:grid;grid-gap:0rpx}.t-dropdown-item__checkbox-group{padding:32rpx}.t-dropdown-item__tree-item{height:var(--td-tree-item-height,96rpx);line-height:var(--td-tree-item-height,96rpx);font-size:var(--td-tree-item-font-size,32rpx);padding-left:32rpx}.t-dropdown-item__tree-item--active{color:var(--td-tree-item-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-dropdown-item__mask{position:fixed;width:100vh;top:0;left:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/index.wxs b/miniprogram_npm/tdesign-miniprogram/dropdown-item/index.wxs
new file mode 100644
index 0000000..e774f06
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/index.wxs
@@ -0,0 +1,9 @@
+var getStyles = function (top, zIndex) {
+ var topStyle = top ? 'top:' + top + 'px;' : '';
+ var zIndexStyle = zIndex ? 'z-index:' + zIndex + ';' : '';
+ return topStyle + zIndexStyle;
+};
+
+module.exports = {
+ getStyles: getStyles,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.d.ts
new file mode 100644
index 0000000..aa95de6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDropdownItemProps } from './type';
+declare const props: TdDropdownItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.js b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.js
new file mode 100644
index 0000000..54c6b23
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:Boolean,value:!1},externalClasses:{type:Array},keys:{type:Object},label:{type:String,value:""},multiple:{type:Boolean,value:!1},options:{type:Array,value:[]},optionsColumns:{type:null,value:1},placement:{type:String,value:"left"},value:{type:null,value:void 0},defaultValue:{type:null,value:void 0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.d.ts
new file mode 100644
index 0000000..ca43657
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.d.ts
@@ -0,0 +1,56 @@
+import { KeysType } from '../common/common';
+export interface TdDropdownItemProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: [
+ 't-class',
+ 't-class-content',
+ 't-class-column',
+ 't-class-column-item',
+ 't-class-column-item-label',
+ 't-class-footer'
+ ];
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ multiple?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ optionsColumns?: {
+ type: null;
+ value?: string | number;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ value?: {
+ type: null;
+ value?: DropdownValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: DropdownValue;
+ };
+}
+export interface DropdownOption {
+ label: string;
+ disabled: boolean;
+ value: DropdownValue;
+}
+export declare type DropdownValue = string | number | Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.js b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.d.ts
new file mode 100644
index 0000000..c92f0e4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.d.ts
@@ -0,0 +1,33 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+import type { TdDropdownMenuProps } from './type';
+export interface DropdownMenuProps extends TdDropdownMenuProps {
+}
+export default class DropdownMenu extends SuperComponent {
+ externalClasses: string[];
+ properties: TdDropdownMenuProps;
+ nodes: any;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ menus: any;
+ activeIdx: number;
+ bottom: number;
+ _arrowIcon: {
+ name: string | object;
+ };
+ };
+ relations: RelationsOptions;
+ lifetimes: {
+ ready(): void;
+ };
+ observers: {
+ arrowIcon(v: any): void;
+ activeIdx(v: number): void;
+ };
+ methods: {
+ toggle(index: number): void;
+ getAllItems(): void;
+ handleToggle(e: WechatMiniprogram.BaseEvent): void;
+ noop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.js
new file mode 100644
index 0000000..6da6107
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-dropdown-menu`;let DropdownMenu=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-item`,`${prefix}-class-label`,`${prefix}-class-icon`],this.properties=props,this.nodes=null,this.data={prefix:prefix,classPrefix:name,menus:null,activeIdx:-1,bottom:0,_arrowIcon:{name:props.arrowIcon.value}},this.relations={"../dropdown-item/dropdown-item":{type:"child"}},this.lifetimes={ready(){this.getAllItems()}},this.observers={arrowIcon(e){this.setData({_arrowIcon:calcIcon(e)})},activeIdx(e){this.triggerEvent(-1===e?"close":"open")}},this.methods={toggle(e){const{activeIdx:t,duration:o}=this.data,s=this.$children[t],r=this.$children[e];(null==r?void 0:r.data.disabled)||(-1!==t&&(s.triggerEvent("close"),s.setData({show:!1},(()=>{setTimeout((()=>{s.triggerEvent("closed")}),o)}))),null==e||t===e?this.setData({activeIdx:-1}):(r.triggerEvent("open"),this.setData({activeIdx:e}),r.setData({show:!0},(()=>{setTimeout((()=>{r.triggerEvent("opened")}),o)}))))},getAllItems(){const e=this.$children.map((({data:e})=>({label:e.label||e.computedLabel,disabled:e.disabled})));this.setData({menus:e})},handleToggle(e){const{index:t}=e.currentTarget.dataset;this.toggle(t)},noop(){}}}};DropdownMenu=__decorate([wxComponent()],DropdownMenu);export default DropdownMenu;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.json b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxml b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxml
new file mode 100644
index 0000000..80b19bf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxml
@@ -0,0 +1 @@
+{{item.label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxss b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxss
new file mode 100644
index 0000000..f533a77
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-dropdown-menu{display:flex;height:var(--td-dropdown-menu-height,96rpx);background:var(--td-dropdown-menu-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));position:relative}.t-dropdown-menu::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-dropdown-menu::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-dropdown-menu:after{height:var(--td-dropdown-menu-border-width,1px)}.t-dropdown-menu__item{display:flex;flex:1;align-items:center;justify-content:center;padding:0 var(--td-spacer,16rpx);position:relative;overflow:hidden;color:var(--td-dropdown-menu-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-dropdown-menu__item--active{color:var(--td-dropdown-menu-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-dropdown-menu__item--disabled{color:var(--td-dropdown-menu-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-dropdown-menu__icon{font-size:var(--td-dropdown-menu-icon-size,40rpx);padding:4rpx;box-sizing:border-box;transition:transform 240ms ease}.t-dropdown-menu__icon--active{transform:rotate(180deg)}.t-dropdown-menu__icon:not(:empty){margin-left:8rpx}.t-dropdown-menu__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--td-dropdown-menu-font-size,28rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.d.ts
new file mode 100644
index 0000000..dea9f1d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './dropdown-menu';
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.js
new file mode 100644
index 0000000..42cc330
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./dropdown-menu";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.d.ts
new file mode 100644
index 0000000..b662f85
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDropdownMenuProps } from './type';
+declare const props: TdDropdownMenuProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.js
new file mode 100644
index 0000000..f3946a9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.js
@@ -0,0 +1 @@
+const props={arrowIcon:{type:null,value:"caret-down-small"},closeOnClickOverlay:{type:Boolean,value:!0},duration:{type:null,value:200},showOverlay:{type:Boolean,value:!0},zIndex:{type:Number,value:11600}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.d.ts
new file mode 100644
index 0000000..07734f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.d.ts
@@ -0,0 +1,22 @@
+export interface TdDropdownMenuProps {
+ arrowIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ closeOnClickOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ duration?: {
+ type: null;
+ value?: string | number;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.d.ts b/miniprogram_npm/tdesign-miniprogram/empty/empty.d.ts
new file mode 100644
index 0000000..cd582e0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.d.ts
@@ -0,0 +1,15 @@
+import { SuperComponent } from '../common/src/index';
+export default class extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: import("./type").TdEmptyProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ icon(icon: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.js b/miniprogram_npm/tdesign-miniprogram/empty/empty.js
new file mode 100644
index 0000000..917b212
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{setIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-empty`;let default_1=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-description`,`${prefix}-class-image`],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.observers={icon(e){const o=setIcon("icon",e,"");this.setData(Object.assign({},o))}}}};default_1=__decorate([wxComponent()],default_1);export default default_1;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.json b/miniprogram_npm/tdesign-miniprogram/empty/empty.json
new file mode 100644
index 0000000..dd7b01e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.wxml b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxml
new file mode 100644
index 0000000..a0a3a96
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxml
@@ -0,0 +1 @@
+{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.wxss b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxss
new file mode 100644
index 0000000..28973d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-empty{display:flex;flex-direction:column;align-items:center}.t-empty__icon{font-size:192rpx;color:var(--td-empty-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-empty__thumb+.t-empty__description:not(:empty){margin-top:var(--td-empty-description-margin-top,var(--td-spacer-2,32rpx))}.t-empty__description{text-align:center;color:var(--td-empty-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-empty-description-font-size,var(--td-font-size-base,28rpx));line-height:var(--td-empty-description-line-height,44rpx);white-space:pre-wrap}.t-empty__description+.t-empty__actions:not(:empty){margin-top:var(--td-empty-action-margin-top,var(--td-spacer-4,64rpx))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/props.d.ts b/miniprogram_npm/tdesign-miniprogram/empty/props.d.ts
new file mode 100644
index 0000000..6f04c79
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/props.d.ts
@@ -0,0 +1,3 @@
+import { TdEmptyProps } from './type';
+declare const props: TdEmptyProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/props.js b/miniprogram_npm/tdesign-miniprogram/empty/props.js
new file mode 100644
index 0000000..d0fb219
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/props.js
@@ -0,0 +1 @@
+const props={description:{type:String},externalClasses:{type:Array},icon:{type:null},image:{type:String}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/type.d.ts b/miniprogram_npm/tdesign-miniprogram/empty/type.d.ts
new file mode 100644
index 0000000..8a319f3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/type.d.ts
@@ -0,0 +1,18 @@
+export interface TdEmptyProps {
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-description', 't-class-image', 't-class-actions'];
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/type.js b/miniprogram_npm/tdesign-miniprogram/empty/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.d.ts
new file mode 100644
index 0000000..9a5320c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../../common/src/index';
+import type { TdDraggableProps } from './type';
+export interface DraggableProps extends TdDraggableProps {
+}
+export default class Draggable extends SuperComponent {
+ properties: TdDraggableProps;
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ onTouchStart(e: any): void;
+ onTouchMove(e: any): void;
+ onTouchEnd(e: any): Promise;
+ computedRect(): Promise;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.js
new file mode 100644
index 0000000..a0eef06
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../../common/src/index";import config from"../../common/config";import props from"./props";import{getRect,systemInfo}from"../../common/utils";const{prefix:prefix}=config,name=`${prefix}-draggable`;let Draggable=class extends SuperComponent{constructor(){super(...arguments),this.properties=props,this.externalClasses=[`${prefix}-class`],this.data={prefix:prefix,classPrefix:name},this.lifetimes={ready(){this.computedRect()}},this.methods={onTouchStart(t){"none"!==this.properties.direction&&(this.startX=t.touches[0].clientX+systemInfo.windowWidth-this.rect.right,this.startY=t.touches[0].clientY+systemInfo.windowHeight-this.rect.bottom,this.triggerEvent("start",{startX:this.startX,startY:this.startY,rect:this.rect,e:t}))},onTouchMove(t){if("none"===this.properties.direction)return;let e=this.startX-t.touches[0].clientX,i=this.startY-t.touches[0].clientY;"vertical"===this.properties.direction&&(e=systemInfo.windowWidth-this.rect.right),"horizontal"===this.properties.direction&&(i=systemInfo.windowHeight-this.rect.bottom),this.triggerEvent("move",{x:e,y:i,rect:this.rect,e:t})},onTouchEnd(t){return __awaiter(this,void 0,void 0,(function*(){"none"!==this.properties.direction&&(yield this.computedRect(),this.triggerEvent("end",{rect:this.rect,e:t}))}))},computedRect(){return __awaiter(this,void 0,void 0,(function*(){this.rect={right:0,bottom:0,width:0,height:0};try{this.rect=yield getRect(this,`.${this.data.classPrefix}`)}catch(t){}}))}}}};Draggable=__decorate([wxComponent()],Draggable);export default Draggable;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.json b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.json
new file mode 100644
index 0000000..1450e2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.json
@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxml b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxml
new file mode 100644
index 0000000..d1ff9ad
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxss b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxss
new file mode 100644
index 0000000..2953ebc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxss
@@ -0,0 +1 @@
+@import '../../common/style/index.wxss';.hotspot-expanded.relative{position:relative}.hotspot-expanded::after{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;transform:scale(1.5)}.t-draggable{position:fixed}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.d.ts
new file mode 100644
index 0000000..6c4d04d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './draggable';
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.js
new file mode 100644
index 0000000..5722e5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./draggable";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.d.ts
new file mode 100644
index 0000000..65e51bb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDraggableProps } from './type';
+declare const props: TdDraggableProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.js
new file mode 100644
index 0000000..fede98f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.js
@@ -0,0 +1 @@
+const props={direction:{type:String,value:"all"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.d.ts
new file mode 100644
index 0000000..580f63d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.d.ts
@@ -0,0 +1,6 @@
+export interface TdDraggableProps {
+ direction?: {
+ type: StringConstructor;
+ value?: 'all' | 'vertical' | 'horizontal' | 'none';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/fab.d.ts
new file mode 100644
index 0000000..7c4503d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.d.ts
@@ -0,0 +1,27 @@
+import { SuperComponent } from '../common/src/index';
+export default class Fab extends SuperComponent {
+ behaviors: string[];
+ properties: import("./type").TdFabProps;
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ buttonData: {
+ size: string;
+ shape: string;
+ theme: string;
+ tClass: string;
+ };
+ moveStyle: any;
+ };
+ observers: {
+ 'buttonProps.**, icon, text, ariaLabel, yBounds'(): void;
+ };
+ methods: {
+ onTplButtonTap(e: any): void;
+ onStart(e: any): void;
+ onMove(e: any): void;
+ onEnd(e: any): void;
+ computedSize(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.js b/miniprogram_npm/tdesign-miniprogram/fab/fab.js
new file mode 100644
index 0000000..542c239
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";import{unitConvert,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-fab`,baseButtonProps={size:"large",shape:"circle",theme:"primary",tClass:`${prefix}-fab__button`};let Fab=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.properties=props,this.externalClasses=["class",`${prefix}-class`,`${prefix}-class-button`],this.data={prefix:prefix,classPrefix:name,buttonData:baseButtonProps,moveStyle:null},this.observers={"buttonProps.**, icon, text, ariaLabel, yBounds"(){var t;this.setData({buttonData:Object.assign(Object.assign(Object.assign(Object.assign({},baseButtonProps),{shape:this.properties.text?"round":"circle"}),this.properties.buttonProps),{icon:this.properties.icon,content:this.properties.text,ariaLabel:this.properties.ariaLabel})},null===(t=this.computedSize)||void 0===t?void 0:t.bind(this))}},this.methods={onTplButtonTap(t){this.triggerEvent("click",t)},onStart(t){this.triggerEvent("dragstart",t.detail.e)},onMove(t){const{yBounds:e}=this.properties,{distanceTop:o}=this.data,{x:s,y:i,rect:r}=t.detail,a=systemInfo.windowWidth-r.width,n=systemInfo.windowHeight-Math.max(o,unitConvert(e[0]))-r.height,p=Math.max(0,Math.min(s,a)),m=Math.max(0,unitConvert(e[1]),Math.min(i,n));this.setData({moveStyle:`right: ${p}px; bottom: ${m}px;`})},onEnd(t){this.triggerEvent("dragend",t.detail.e)},computedSize(){var t,e;if(!this.properties.draggable)return;const o=this.selectComponent("#draggable");(null===(e=null===(t=this.properties)||void 0===t?void 0:t.yBounds)||void 0===e?void 0:e[1])?this.setData({moveStyle:`bottom: ${unitConvert(this.properties.yBounds[1])}px`},o.computedRect):o.computedRect()}}}};Fab=__decorate([wxComponent()],Fab);export default Fab;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.json b/miniprogram_npm/tdesign-miniprogram/fab/fab.json
new file mode 100644
index 0000000..7273f2a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-button":"../button/button","t-draggable":"./draggable/draggable"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.wxml b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxml
new file mode 100644
index 0000000..999cc1a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.wxss b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxss
new file mode 100644
index 0000000..f64d244
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-fab{position:fixed}.t-fab__button{box-shadow:var(--td-fab-shadow,var(--td-shadow-2,0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1)))}.t-fab__draggable{position:fixed}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/props.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/props.d.ts
new file mode 100644
index 0000000..2cf4647
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/props.d.ts
@@ -0,0 +1,3 @@
+import { TdFabProps } from './type';
+declare const props: TdFabProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/props.js b/miniprogram_npm/tdesign-miniprogram/fab/props.js
new file mode 100644
index 0000000..8ff0761
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/props.js
@@ -0,0 +1 @@
+const props={buttonProps:{type:Object},draggable:{type:null,value:!1},icon:{type:String,value:""},style:{type:String,value:"right: 16px; bottom: 32px;"},text:{type:String,value:""},usingCustomNavbar:{type:Boolean,value:!1},yBounds:{type:Array}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/template/draggable.wxml b/miniprogram_npm/tdesign-miniprogram/fab/template/draggable.wxml
new file mode 100644
index 0000000..daa3a0a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/template/draggable.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/template/view.wxml b/miniprogram_npm/tdesign-miniprogram/fab/template/view.wxml
new file mode 100644
index 0000000..6d794b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/template/view.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/type.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/type.d.ts
new file mode 100644
index 0000000..722cf6d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/type.d.ts
@@ -0,0 +1,32 @@
+import { ButtonProps } from '../button/index';
+export interface TdFabProps {
+ buttonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ draggable?: {
+ type: null;
+ value?: boolean | FabDirectionEnum;
+ };
+ icon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ yBounds?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+}
+export declare type FabDirectionEnum = 'all' | 'vertical' | 'horizontal';
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/type.js b/miniprogram_npm/tdesign-miniprogram/fab/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.d.ts b/miniprogram_npm/tdesign-miniprogram/footer/footer.d.ts
new file mode 100644
index 0000000..6ffe46b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.d.ts
@@ -0,0 +1,9 @@
+import { SuperComponent } from '../common/src/index';
+export default class Footer extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdFooterProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.js b/miniprogram_npm/tdesign-miniprogram/footer/footer.js
new file mode 100644
index 0000000..0282185
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-footer`;let Footer=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={prefix:prefix,classPrefix:name}}};Footer=__decorate([wxComponent()],Footer);export default Footer;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.json b/miniprogram_npm/tdesign-miniprogram/footer/footer.json
new file mode 100644
index 0000000..1e4e103
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.wxml b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxml
new file mode 100644
index 0000000..7870d23
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxml
@@ -0,0 +1 @@
+{{logo.title}}{{item.name}}|{{text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.wxss b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxss
new file mode 100644
index 0000000..b2b844f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-footer{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.t-footer__text{font-size:var(--td-footer-text-font-size,var(--td-font-size-s,24rpx));line-height:var(--td-footer-text-line-height,40rpx);color:var(--td-footer-text-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-footer__link-list+.t-footer__text:not(:empty){margin-top:var(--td-footer-text-margin-top,8rpx)}.t-footer__link-list{display:flex;justify-content:center;align-items:center}.t-footer__link-item{color:var(--td-footer-link-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-size:var(--td-footer-link-font-size,var(--td-font-size-s,24rpx));line-height:var(--td-footer-link-line-height,40rpx);text-decoration:underline}.t-footer__link-line{font-size:24rpx;color:var(--td-footer-link-dividing-line-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));display:inline-block;padding:0 var(--td-footer-link-dividing-line-padding,var(--td-spacer-1,24rpx))}.t-footer__logo{display:flex;justify-content:center;align-items:center}.t-footer__icon{width:var(--td-footer-logo-icon-width,48rpx);height:var(--td-footer-logo-icon-height,48rpx);margin-right:var(--td-footer-logo-icon-margin-right,var(--td-spacer,16rpx))}.t-footer__title{color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));font-weight:700;font-size:var(--td-footer-logo-title-font-size,var(--td-font-size-m,32rpx));line-height:var(--td-footer-logo-title-line-height,48rpx);font-style:italic}.t-footer__title-url{width:var(--td-footer-logo-title-url-width,256rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/props.d.ts b/miniprogram_npm/tdesign-miniprogram/footer/props.d.ts
new file mode 100644
index 0000000..f9a5618
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/props.d.ts
@@ -0,0 +1,3 @@
+import { TdFooterProps } from './type';
+declare const props: TdFooterProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/props.js b/miniprogram_npm/tdesign-miniprogram/footer/props.js
new file mode 100644
index 0000000..f4be9f2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/props.js
@@ -0,0 +1 @@
+const props={links:{type:Array,value:[]},logo:{type:Object},text:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/type.d.ts b/miniprogram_npm/tdesign-miniprogram/footer/type.d.ts
new file mode 100644
index 0000000..1a69105
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/type.d.ts
@@ -0,0 +1,24 @@
+export interface TdFooterProps {
+ links?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ logo?: {
+ type: ObjectConstructor;
+ value?: FooterLogo;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export interface LinkObj {
+ name: string;
+ url?: string;
+ openType?: 'navigate' | 'redirect' | 'relaunch' | 'switchTab' | 'navigateBack';
+}
+export interface FooterLogo {
+ icon: string;
+ title?: string;
+ url?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/type.js b/miniprogram_npm/tdesign-miniprogram/footer/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.d.ts b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.d.ts
new file mode 100644
index 0000000..4c43196
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.d.ts
@@ -0,0 +1,31 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class GridItem extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ properties: import("./type").TdGridItemProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ gridItemStyle: string;
+ gridItemWrapperStyle: string;
+ gridItemContentStyle: string;
+ align: string;
+ column: number;
+ describedbyID: string;
+ };
+ observers: {
+ icon(icon: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ updateStyle(): void;
+ getWidthStyle(): string;
+ getPaddingStyle(): string;
+ getBorderStyle(): string;
+ onClick(e: any): void;
+ jumpLink(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.js b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.js
new file mode 100644
index 0000000..b4bd236
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{uniqueFactory,setIcon}from"../common/utils";import{isObject}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-grid-item`,getUniqueID=uniqueFactory("grid_item");var LinkTypes;!function(t){t["redirect-to"]="redirectTo",t["switch-tab"]="switchTab",t.relaunch="reLaunch",t["navigate-to"]="navigateTo"}(LinkTypes||(LinkTypes={}));let GridItem=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-image`,`${prefix}-class-text`,`${prefix}-class-description`],this.options={multipleSlots:!0},this.relations={"../grid/grid":{type:"ancestor",linked(t){this.parent=t,this.updateStyle(),this.setData({column:t.data.column})}}},this.properties=props,this.data={prefix:prefix,classPrefix:name,gridItemStyle:"",gridItemWrapperStyle:"",gridItemContentStyle:"",align:"center",column:0,describedbyID:""},this.observers={icon(t){const e=setIcon("icon",t,"");this.setData(Object.assign({},e))}},this.lifetimes={ready(){this.setData({describedbyID:getUniqueID()})}}}updateStyle(){const{hover:t,align:e}=this.parent.properties,r=[],i=[],o=[],s=this.getWidthStyle(),n=this.getPaddingStyle(),p=this.getBorderStyle();s&&r.push(s),n&&i.push(n),p&&o.push(p),this.setData({gridItemStyle:`${r.join(";")}`,gridItemWrapperStyle:i.join(";"),gridItemContentStyle:o.join(";"),hover:t,layout:this.properties.layout,align:e})}getWidthStyle(){const{column:t}=this.parent.properties;return t>0?`width:${1/t*100}%`:""}getPaddingStyle(){const{gutter:t}=this.parent.properties;return t?`padding-left:${t}rpx;padding-top:${t}rpx`:""}getBorderStyle(){const{gutter:t}=this.parent.properties;let{border:e}=this.parent.properties;if(!e)return"";isObject(e)||(e={});const{color:r="#266FE8",width:i=2,style:o="solid"}=e;return t?`border:${i}rpx ${o} ${r}`:`border-top:${i}rpx ${o} ${r};border-left:${i}rpx ${o} ${r}`}onClick(t){const{item:e}=t.currentTarget.dataset;this.triggerEvent("click",e),this.jumpLink()}jumpLink(){const{url:t,jumpType:e}=this.properties;t&&e&&LinkTypes[e]&&wx[LinkTypes[e]]({url:t})}};GridItem=__decorate([wxComponent()],GridItem);export default GridItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.json b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.json
new file mode 100644
index 0000000..22e1326
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-image":"../image/image","t-icon":"../icon/icon","t-badge":"../badge/badge"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxml b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxml
new file mode 100644
index 0000000..964a334
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxml
@@ -0,0 +1 @@
+module.exports.getImageSize = function(column) { if (column >= 5) return 'small'; if (column == 4) return 'middle'; return 'large'; }{{text}}{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxss b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxss
new file mode 100644
index 0000000..d11d9e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-grid-item{box-sizing:border-box;height:100%;display:inline-block;vertical-align:top;background-color:var(--td-grid-item-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-grid-item--hover{background-color:var(--td-grid-item-hover-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-grid-item--auto-size{width:168rpx}.t-grid-item__content{display:flex;flex-direction:column;align-items:center;overflow:hidden;position:relative;padding:var(--td-grid-item-padding,32rpx) 0 24rpx}.t-grid-item__content--horizontal{flex-direction:row;padding-left:var(--td-grid-item-padding,32rpx)}.t-grid-item__content--left{justify-self:flex-start;align-items:flex-start}.t-grid-item__content--left .t-grid-item__words{text-align:left}.t-grid-item__words{width:100%;text-align:center;position:relative;flex-direction:column;display:flex;flex:1;justify-content:center;align-items:center}.t-grid-item__words--horizontal{margin-left:24rpx}.t-grid-item__words:empty{display:none}.t-grid-item__image:not(:empty){width:var(--td-grid-item-image-width,96rpx);height:var(--td-grid-item-image-width,96rpx)}.t-grid-item__image:not(:empty).t-grid-item__image--small{width:var(--td-grid-item-image-small-width,64rpx);height:var(--td-grid-item-image-small-width,64rpx)}.t-grid-item__image:not(:empty).t-grid-item__image--middle{width:var(--td-grid-item-image-middle-width,80rpx);height:var(--td-grid-item-image-middle-width,80rpx)}.t-grid-item__image:not(:empty) .t-grid__image{width:100%;height:100%}.t-grid-item__image--icon{display:flex;align-items:center;justify-content:center;background:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));border-radius:var(--td-radius-default,12rpx)}.t-grid-item__text{width:inherit;color:var(--td-grid-item-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-grid-item-text-font-size,28rpx);line-height:var(--td-grid-item-text-line-height,44rpx);padding-top:var(--td-grid-item-text-padding-top,16rpx)}.t-grid-item__text--small{font-size:var(--td-grid-item-text-small-font-size,24rpx)}.t-grid-item__text--middle{font-size:var(--td-grid-item-text-middle-font-size,24rpx)}.t-grid-item__text--horizontal{padding-top:0;text-align:left}.t-grid-item__description{padding-top:var(--td-grid-item-description-padding-top,0);width:inherit;color:var(--td-grid-item-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-grid-item-description-font-size,24rpx);line-height:var(--td-grid-item-description-line-height,40rpx)}.t-grid-item__description--horizontal{margin-top:var(--td-grid-item-horizontal-text-description-top,0);padding-left:var(--td-grid-item-horizontal-text-padding-left,0);text-align-last:left}.t-grid-item__icon{font-size:48rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/grid-item/props.d.ts
new file mode 100644
index 0000000..bd6c2fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdGridItemProps } from './type';
+declare const props: TdGridItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/props.js b/miniprogram_npm/tdesign-miniprogram/grid-item/props.js
new file mode 100644
index 0000000..6d7fc9c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object,value:null},description:{type:String},icon:{type:null},image:{type:String},imageProps:{type:Object},jumpType:{type:String,value:"navigate-to"},layout:{type:String,value:"vertical"},text:{type:String},url:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/grid-item/type.d.ts
new file mode 100644
index 0000000..f4dc902
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/type.d.ts
@@ -0,0 +1,40 @@
+import { BadgeProps } from '../badge/index';
+import { ImageProps } from '../image/index';
+export interface TdGridItemProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: ImageProps;
+ };
+ jumpType?: {
+ type: StringConstructor;
+ value?: 'redirect-to' | 'switch-tab' | 'relaunch' | 'navigate-to';
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'vertical' | 'horizontal';
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ url?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/type.js b/miniprogram_npm/tdesign-miniprogram/grid-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.d.ts b/miniprogram_npm/tdesign-miniprogram/grid/grid.d.ts
new file mode 100644
index 0000000..5bc9604
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Grid extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ properties: import("./type").TdGridProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ contentStyle: string;
+ };
+ observers: {
+ 'column,hover,align,gutter,border'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ doForChild(action: (item: WechatMiniprogram.Component.TrivialInstance) => void): void;
+ updateContentStyle(): void;
+ getContentMargin(): string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.js b/miniprogram_npm/tdesign-miniprogram/grid/grid.js
new file mode 100644
index 0000000..0b083a2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{isObject}from"../common/validator";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-grid`;let Grid=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=["t-class"],this.relations={"../grid-item/grid-item":{type:"descendant"}},this.properties=props,this.data={prefix:prefix,classPrefix:name,contentStyle:""},this.observers={"column,hover,align,gutter,border"(){this.updateContentStyle(),this.doForChild((t=>t.updateStyle()))}},this.lifetimes={attached(){this.updateContentStyle()}},this.methods={doForChild(t){this.$children.forEach(t)},updateContentStyle(){const t=[],e=this.getContentMargin();e&&t.push(e),this.setData({contentStyle:t.join(";")})},getContentMargin(){const{gutter:t}=this.properties;let{border:e}=this.properties;if(!e)return`margin-left:-${t}rpx; margin-top:-${t}rpx`;isObject(e)||(e={});const{width:r=2}=e;return`margin-left:-${r}rpx; margin-top:-${r}rpx`}}}};Grid=__decorate([wxComponent()],Grid);export default Grid;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.json b/miniprogram_npm/tdesign-miniprogram/grid/grid.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.wxml b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxml
new file mode 100644
index 0000000..95f0fbb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.wxss b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxss
new file mode 100644
index 0000000..8a70a65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-grid{position:relative;overflow:hidden;background-color:var(--td-grid-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-grid__content{width:auto}.t-grid--card{margin:0 32rpx;border-radius:var(--td-grid-card-radius,var(--td-radius-large,18rpx));overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/props.d.ts b/miniprogram_npm/tdesign-miniprogram/grid/props.d.ts
new file mode 100644
index 0000000..f8f2feb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/props.d.ts
@@ -0,0 +1,3 @@
+import { TdGridProps } from './type';
+declare const props: TdGridProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/props.js b/miniprogram_npm/tdesign-miniprogram/grid/props.js
new file mode 100644
index 0000000..2c14f63
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"center"},border:{type:null,value:!1},column:{type:Number,value:4},gutter:{type:Number},hover:{type:Boolean,value:!1},theme:{type:String,value:"default"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/type.d.ts b/miniprogram_npm/tdesign-miniprogram/grid/type.d.ts
new file mode 100644
index 0000000..bb10d5e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdGridProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'left' | 'center';
+ };
+ border?: {
+ type: null;
+ value?: boolean | {
+ color?: string;
+ width?: string;
+ style?: 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'inset' | 'outset';
+ };
+ };
+ column?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ gutter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ hover?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'card';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/type.js b/miniprogram_npm/tdesign-miniprogram/grid/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/content.wxml b/miniprogram_npm/tdesign-miniprogram/guide/content.wxml
new file mode 100644
index 0000000..70702f7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/content.wxml
@@ -0,0 +1 @@
+{{title}}{{body}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.d.ts b/miniprogram_npm/tdesign-miniprogram/guide/guide.d.ts
new file mode 100644
index 0000000..b94871d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.d.ts
@@ -0,0 +1,103 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { TdGuideProps, GuideStep } from './type';
+export interface GuideProps extends TdGuideProps {
+}
+export { GuideStep };
+export default class Guide extends SuperComponent {
+ externalClasses: string[];
+ properties: TdGuideProps;
+ options: WechatMiniprogram.Component.ComponentOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ visible: boolean;
+ _current: number;
+ _steps: any[];
+ buttonProps: {};
+ referenceStyle: string;
+ popoverStyle: string;
+ title: string;
+ body: string;
+ nonOverlay: boolean;
+ modeType: string;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'steps, current, showOverlay'(): Promise;
+ };
+ lifetimes: {
+ created(): void;
+ attached(): void;
+ };
+ methods: {
+ init(): Promise;
+ placementOffset({ placement, offset }: GuideStep, place: CSSStyleDeclaration): Promise;
+ buttonProps(step: any, mode: any): {
+ skipButton: any;
+ nextButton: any;
+ backButton: any;
+ finishButton: any;
+ };
+ renderCounter(): any;
+ buttonContent(button: any): string;
+ onTplButtonTap(e: any): void;
+ getPlacement(): {
+ center: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ bottom: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'bottom-left': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'bottom-right': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ left: (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ 'left-top': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ 'left-bottom': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ right: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'right-top': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'right-bottom': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ top: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'top-left': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'top-right': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ };
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.js b/miniprogram_npm/tdesign-miniprogram/guide/guide.js
new file mode 100644
index 0000000..674567f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{isFunction,isNumber}from"../common/validator";import{debounce,getRect,rpx2px,styles,unitConvert,nextTick,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-guide`;let Guide=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-reference`,`${prefix}-class-popover`,`${prefix}-class-tooltip`,`${prefix}-class-title`,`${prefix}-class-body`,`${prefix}-class-footer`,`${prefix}-class-skip`,`${prefix}-class-next`,`${prefix}-class-back`,`${prefix}-class-finish`],this.properties=props,this.options={pureDataPattern:/^_/,multipleSlots:!0},this.data={prefix:prefix,classPrefix:name,visible:!1,_current:-1,_steps:[],buttonProps:{},referenceStyle:"",popoverStyle:"",title:"",body:"",nonOverlay:!1,modeType:""},this.controlledProps=[{key:"current",event:"change"}],this.observers={"steps, current, showOverlay"(){return __awaiter(this,void 0,void 0,(function*(){this._init()}))}},this.lifetimes={created(){this._init=debounce((()=>this.init()),20),this._getPlacement=this.getPlacement()},attached(){this._init()}},this.methods={init(){var t,e,i,s,a,o,n;return __awaiter(this,void 0,void 0,(function*(){const{steps:r,current:p}=this.properties,{_steps:l,_current:h}=this.data,c=r[p];if(!c)return this.setData({visible:!1});const u="dialog"===(null!==(t=c.mode)&&void 0!==t?t:this.data.mode)?"dialog":"popover",x=null!==(e=c.showOverlay)&&void 0!==e?e:this.data.showOverlay;if(this.setData({nonOverlay:!x,modeType:u}),r!==l||p!==h)if("popover"===u){const t=yield c.element();if(!t)return;const e=rpx2px(null!==(i=c.highlightPadding)&&void 0!==i?i:this.data.highlightPadding),o={top:`${t.top-e}px`,right:`${systemInfo.windowWidth-t.right-e}px`,left:`${t.left-e}px`,width:`${t.width+2*e}px`,height:`${t.height+2*e}px`};this.setData({_steps:this.data.steps,_current:this.data.current,visible:!0,referenceStyle:styles(o),title:null!==(s=c.title)&&void 0!==s?s:"",body:null!==(a=c.body)&&void 0!==a?a:"",buttonProps:this.buttonProps(c,"popover")});const n=yield this.placementOffset(c,o);this.setData({popoverStyle:n})}else this.setData({_steps:this.data.steps,_current:this.data.current,visible:!0,title:null!==(o=c.title)&&void 0!==o?o:"",body:null!==(n=c.body)&&void 0!==n?n:"",buttonProps:this.buttonProps(c,"dialog")})}))},placementOffset({placement:t,offset:e},i){var s,a;return __awaiter(this,void 0,void 0,(function*(){yield nextTick();const o=yield getRect(this,`.${name}__container`),n=null===(a=(s=this._getPlacement)[t])||void 0===a?void 0:a.call(s,o,i,e);return styles(Object.assign({position:"absolute"},n))}))},buttonProps(t,e){var i,s,a,o;let n=null!==(i=t.skipButtonProps)&&void 0!==i?i:this.data.skipButtonProps;const r="popover"===e?"extra-small":"medium";n=Object.assign(Object.assign({theme:"light",content:"跳过",size:r},n),{tClass:`${prefix}-class-skip ${name}__button ${(null==n?void 0:n.class)||""}`,type:"skip"});let p=null!==(s=t.nextButtonProps)&&void 0!==s?s:this.data.nextButtonProps;p=Object.assign(Object.assign({theme:"primary",content:"下一步",size:r},p),{tClass:`${prefix}-class-next ${name}__button ${(null==p?void 0:p.class)||""}`,type:"next"}),p=Object.assign(Object.assign({},p),{content:this.buttonContent(p)});let l=null!==(a=t.backButtonProps)&&void 0!==a?a:this.data.backButtonProps;l=Object.assign(Object.assign({theme:"light",content:"返回",size:r},l),{tClass:`${prefix}-class-back ${name}__button ${(null==l?void 0:l.class)||""}`,type:"back"});let h=null!==(o=t.finishButtonProps)&&void 0!==o?o:this.data.finishButtonProps;return h=Object.assign(Object.assign({theme:"primary",content:"完成",size:r},h),{tClass:`${prefix}-class-finish ${name}__button ${(null==h?void 0:h.class)||""}`,type:"finish"}),h=Object.assign(Object.assign({},h),{content:this.buttonContent(h)}),{skipButton:n,nextButton:p,backButton:l,finishButton:h}},renderCounter(){const{steps:t,current:e,counter:i}=this.data,s=t.length,a=e+1,o=isFunction(i)?i({total:s,current:a}):i;return i?o:`(${a}/${s})`},buttonContent(t){const{hideCounter:e}=this.data;return`${t.content.replace(/ \(.*?\)/,"")} ${e?"":this.renderCounter()}`},onTplButtonTap(t){const{type:e}=t.target.dataset,i={e:t,current:this.data.current,total:this.data.steps.length};switch(e){case"next":this.triggerEvent("next-step-click",Object.assign({next:this.data.current+1},i)),this.setData({current:this.data.current+1});break;case"skip":this.triggerEvent("skip",i),this.setData({current:-1});break;case"back":this.triggerEvent("back",i),this.setData({current:0});break;case"finish":this.triggerEvent("finish",i),this.setData({current:-1})}this.triggerEvent("change",{current:this.data.current})},getPlacement(){const t=rpx2px(32),e=t=>unitConvert(isNumber(null==t?void 0:t[0])?`${null==t?void 0:t[0]}rpx`:(null==t?void 0:t[0])||0),i=t=>unitConvert(isNumber(null==t?void 0:t[1])?`${null==t?void 0:t[1]}rpx`:(null==t?void 0:t[1])||0),s=t=>parseFloat(t.left),a=t=>parseFloat(t.right),o=t=>parseFloat(t.top),n=t=>parseFloat(t.height),r=t=>parseFloat(t.width);return{center:(a,p,l)=>({top:`${Math.max(n(p)+o(p)+t+i(l),1)}px`,left:`${Math.max(r(p)/2+s(p)-a.width/2+e(l),1)}px`}),bottom:(a,p,l)=>({top:`${Math.max(n(p)+o(p)+t+i(l),1)}px`,left:`${Math.max(r(p)/2+s(p)-a.width/2+e(l),1)}px`}),"bottom-left":(a,r,p)=>({top:`${Math.max(n(r)+o(r)+t+i(p),1)}px`,left:`${Math.max(s(r)+e(p),1)}px`}),"bottom-right":(s,r,p)=>({top:`${Math.max(n(r)+o(r)+t+i(p),1)}px`,right:`${Math.max(a(r)-e(p),1)}px`}),left:(s,p,l)=>({top:`${Math.max(n(p)/2+o(p)-s.height/2+i(l),1)}px`,right:`${Math.max(r(p)+a(p)+t-e(l),1)}px`}),"left-top":(s,n,p)=>({top:`${Math.max(o(n)+i(p),1)}px`,right:`${Math.max(r(n)+a(n)+t-e(p),1)}px`}),"left-bottom":(s,p,l)=>({top:`${Math.max(o(p)+n(p)-s.height-i(l),1)}px`,right:`${Math.max(r(p)+a(p)+t-e(l),1)}px`}),right:(a,p,l)=>({top:`${Math.max(n(p)/2+o(p)-a.height/2+i(l),1)}px`,left:`${Math.max(s(p)+r(p)+t+e(l),1)}px`}),"right-top":(a,n,p)=>({top:`${Math.max(o(n)+i(p),1)}px`,left:`${Math.max(s(n)+r(n)+t+e(p),1)}px`}),"right-bottom":(a,p,l)=>({top:`${Math.max(o(p)+n(p)-a.height-i(l),1)}px`,left:`${Math.max(s(p)+r(p)+t+e(l),1)}px`}),top:(a,n,p)=>({top:`${Math.max(o(n)-a.height-t+i(p),1)}px`,left:`${Math.max(r(n)/2+s(n)-a.width/2+e(p),1)}px`}),"top-left":(a,n,r)=>({top:`${Math.max(o(n)-a.height-t+i(r),1)}px`,left:`${Math.max(s(n)+e(r),1)}px`}),"top-right":(s,n,r)=>({top:`${Math.max(o(n)-s.height-t+i(r),1)}px`,right:`${Math.max(a(n)-e(r),1)}px`})}}}}};Guide=__decorate([wxComponent()],Guide);export default Guide;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.json b/miniprogram_npm/tdesign-miniprogram/guide/guide.json
new file mode 100644
index 0000000..3abf592
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-overlay":"../overlay/overlay","t-button":"../button/button","t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.wxml b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxml
new file mode 100644
index 0000000..0a6067a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.wxss b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxss
new file mode 100644
index 0000000..e1e5ebf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-guide__reference{position:absolute;box-shadow:0 0 0 0 var(--td-guide-reference-mask-color,var(--td-font-gray-2,rgba(0,0,0,.6))),var(--td-guide-reference-mask-color,var(--td-font-gray-2,rgba(0,0,0,.6))) 0 0 0 5000px;border-radius:var(--td-guide-reference-border-radius,var(--td-radius-default,12rpx));transition:all var(--td-anim-duration-base,.2s) var(--td-anim-time-fn-ease-out,cubic-bezier(0,0,.15,1))}.t-guide__reference--nonoverlay{box-shadow:none;border:var(--td-guide-reference-border,4rpx solid var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-guide__container{display:inline-block}.t-guide__container--popover{background-color:var(--td-guide-popover-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border:var(--td-guide-popover-border,2rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));border-radius:var(--td-guide-popover-border-radius,var(--td-radius-large,18rpx));box-shadow:var(--td-guide-popover-shadow,var(--td-shadow-3,0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08)));padding:var(--td-guide-popover-padding,var(--td-spacer-2,32rpx));min-width:var(--td-guide-popover-min-width,480rpx);max-width:var(--td-guide-popover-max-width,540rpx)}.t-guide__container--dialog{background-color:var(--td-guide-popover-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border-radius:var(--td-guide-dialog-border-radius,var(--td-radius-extra-large,24rpx));padding:var(--td-guide-dialog-padding,var(--td-spacer-3,48rpx) 0);width:var(--td-guide-dialog-width,622rpx)}.t-guide__title--popover{text-align:var(--td-guide-popover-title-text-align,left);color:var(--td-guide-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-guide-popover-title-font-size,var(--td-font-size-m,32rpx));font-weight:var(--td-guide-title-font-weight,600);line-height:var(--td-guide-popover-title-line-height,48rpx)}.t-guide__title--dialog{text-align:var(--td-guide-dialog-title-text-align,center);color:var(--td-guide-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-guide-dialog-title-font-size,36rpx);font-weight:var(--td-guide-title-font-weight,600);line-height:var(--td-guide-dialog-title-line-height,52rpx)}.t-guide__body--popover{margin-top:var(--td-guide-popover-body-margin-top,8rpx);text-align:var(--td-guide-popover-body-text-align,left);color:var(--td-guide-body-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-guide-popover-body-font-size,var(--td-font-size-base,28rpx));font-weight:var(--td-guide-body-font-weight,400);line-height:var(--td-guide-popover-body-line-height,44rpx)}.t-guide__body--dialog{margin-top:var(--td-guide-dialog-body-margin-top,16rpx);text-align:var(--td-guide-dialog-body-text-align,center);color:var(--td-guide-body-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-guide-dialog-body-font-size,var(--td-font-size-m,32rpx));font-weight:var(--td-guide-body-font-weight,400);line-height:var(--td-guide-dialog-body-line-height,48rpx)}.t-guide__footer{text-align:var(--td-guide-footer-text-align,right);margin-top:var(--td-guide-footer-margin-top,var(--td-spacer-3,48rpx))}.t-guide__footer .t-guide__button+.t-guide__button{margin-left:var(--td-guide-footer-button-space,var(--td-spacer-1,24rpx))}.t-guide__footer--dialog{display:flex;padding:var(--td-guide-dialog-footer-button-padding,0 var(--td-spacer-3,48rpx))}.t-guide__footer--dialog .t-guide__button:last-child{flex-grow:1}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/props.d.ts b/miniprogram_npm/tdesign-miniprogram/guide/props.d.ts
new file mode 100644
index 0000000..208d046
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/props.d.ts
@@ -0,0 +1,3 @@
+import { TdGuideProps } from './type';
+declare const props: TdGuideProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/props.js b/miniprogram_npm/tdesign-miniprogram/guide/props.js
new file mode 100644
index 0000000..0604e19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/props.js
@@ -0,0 +1 @@
+const props={backButtonProps:{type:Object},counter:{type:null},current:{type:Number,value:null},defaultCurrent:{type:Number},finishButtonProps:{type:Object},hideBack:{type:Boolean,value:!1},hideCounter:{type:Boolean,value:!1},hideSkip:{type:Boolean,value:!1},highlightPadding:{type:Number,value:16},mode:{type:String,value:"popover"},nextButtonProps:{type:Object},showOverlay:{type:Boolean,value:!0},skipButtonProps:{type:Object},steps:{type:Array},usingCustomNavbar:{type:Boolean,value:!1},zIndex:{type:Number,value:999999}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/type.d.ts b/miniprogram_npm/tdesign-miniprogram/guide/type.d.ts
new file mode 100644
index 0000000..54b7bdb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/type.d.ts
@@ -0,0 +1,87 @@
+///
+import { ButtonProps } from '../button/index';
+export interface TdGuideProps {
+ backButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ counter?: {
+ type: StringConstructor;
+ value?: string | ((params: {
+ total: number;
+ current: number;
+ }) => string);
+ };
+ current?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ defaultCurrent?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ finishButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ hideBack?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hideCounter?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hideSkip?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ highlightPadding?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ mode?: {
+ type: StringConstructor;
+ value?: 'popover' | 'dialog';
+ };
+ nextButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ skipButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ steps?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
+export interface GuideStep {
+ backButtonProps?: ButtonProps;
+ body?: string;
+ element: StepElement;
+ finishButtonProps?: ButtonProps;
+ highlightPadding?: number;
+ mode?: 'popover' | 'dialog';
+ nextButtonProps?: ButtonProps;
+ offset?: Array;
+ placement?: StepPopoverPlacement;
+ showOverlay?: boolean;
+ skipButtonProps?: ButtonProps;
+ title?: string;
+}
+export declare type StepElement = () => Promise;
+export declare type StepPopoverPlacement = 'top' | 'left' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom' | 'center';
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/type.js b/miniprogram_npm/tdesign-miniprogram/guide/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.d.ts b/miniprogram_npm/tdesign-miniprogram/icon/icon.d.ts
new file mode 100644
index 0000000..b70696a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.d.ts
@@ -0,0 +1,18 @@
+import { SuperComponent } from '../common/src/index';
+export default class Icon extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdIconProps;
+ data: {
+ componentPrefix: string;
+ classPrefix: string;
+ isImage: boolean;
+ iconStyle: any;
+ };
+ observers: {
+ 'name, color, size, style'(): void;
+ };
+ methods: {
+ onTap(event: any): void;
+ setIconStyle(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.js b/miniprogram_npm/tdesign-miniprogram/icon/icon.js
new file mode 100644
index 0000000..0259367
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{styles,addUnit,getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-icon`;let Icon=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={componentPrefix:prefix,classPrefix:name,isImage:!1,iconStyle:void 0},this.observers={"name, color, size, style"(){this.setIconStyle()}},this.methods={onTap(t){this.triggerEvent("click",t.detail)},setIconStyle(){const{name:t,color:e,size:o,classPrefix:i}=this.data,s=-1!==t.indexOf("/"),n=addUnit(o),r=e?{color:e}:{},c=o?{"font-size":n}:{},a=Object.assign(Object.assign({},r),c);this.setData({isImage:s},(()=>__awaiter(this,void 0,void 0,(function*(){if(s){let t=n;t||(yield getRect(this,`.${i}`).then((e=>{t=addUnit(null==e?void 0:e.height)})).catch((()=>{}))),a.width=t,a.height=t}this.setData({iconStyle:`${styles(a)}`})}))))}}}};Icon=__decorate([wxComponent()],Icon);export default Icon;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.json b/miniprogram_npm/tdesign-miniprogram/icon/icon.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.wxml b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxml
new file mode 100644
index 0000000..4b635a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.wxss b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxss
new file mode 100644
index 0000000..3818614
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';@font-face{font-family:t;src:url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.eot),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.eot?#iefix) format('ded-opentype'),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.woff) format('woff'),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.ttf) format('truetype'),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.svg) format('svg');font-weight:400;font-style:normal}.t-icon--image{width:100%;height:100%}.t-icon__image{vertical-align:top;width:100%;height:100%}.t-icon-base{font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;text-align:center;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.t-icon{font-family:t!important}.t-icon-accessibility-filled:before{content:'\E001'}.t-icon-accessibility:before{content:'\E002'}.t-icon-activity-filled:before{content:'\E003'}.t-icon-activity:before{content:'\E004'}.t-icon-add-and-subtract:before{content:'\E005'}.t-icon-add-circle-filled:before{content:'\E006'}.t-icon-add-circle:before{content:'\E007'}.t-icon-add-rectangle-filled:before{content:'\E008'}.t-icon-add-rectangle:before{content:'\E009'}.t-icon-add:before{content:'\E00A'}.t-icon-address-book-filled:before{content:'\E00B'}.t-icon-address-book:before{content:'\E00C'}.t-icon-adjustment-filled:before{content:'\E00D'}.t-icon-adjustment:before{content:'\E00E'}.t-icon-airplay-wave-filled:before{content:'\E00F'}.t-icon-airplay-wave:before{content:'\E010'}.t-icon-alarm-add-filled:before{content:'\E011'}.t-icon-alarm-add:before{content:'\E012'}.t-icon-alarm-filled:before{content:'\E013'}.t-icon-alarm-off-filled:before{content:'\E014'}.t-icon-alarm-off:before{content:'\E015'}.t-icon-alarm:before{content:'\E016'}.t-icon-align-top:before{content:'\E017'}.t-icon-align-vertical:before{content:'\E018'}.t-icon-alpha:before{content:'\E019'}.t-icon-analytics-filled:before{content:'\E01A'}.t-icon-analytics:before{content:'\E01B'}.t-icon-anchor:before{content:'\E01C'}.t-icon-angry-filled:before{content:'\E01D'}.t-icon-angry:before{content:'\E01E'}.t-icon-animation-1-filled:before{content:'\E01F'}.t-icon-animation-1:before{content:'\E020'}.t-icon-animation-filled:before{content:'\E021'}.t-icon-animation:before{content:'\E022'}.t-icon-anticlockwise-filled:before{content:'\E023'}.t-icon-anticlockwise:before{content:'\E024'}.t-icon-api:before{content:'\E025'}.t-icon-app-filled:before{content:'\E026'}.t-icon-app:before{content:'\E027'}.t-icon-apple-filled:before{content:'\E028'}.t-icon-apple:before{content:'\E029'}.t-icon-application-filled:before{content:'\E02A'}.t-icon-application:before{content:'\E02B'}.t-icon-architecture-hui-style-filled:before{content:'\E02C'}.t-icon-architecture-hui-style:before{content:'\E02D'}.t-icon-archway-1-filled:before{content:'\E02E'}.t-icon-archway-1:before{content:'\E02F'}.t-icon-archway-filled:before{content:'\E030'}.t-icon-archway:before{content:'\E031'}.t-icon-arrow-down-circle-filled:before{content:'\E032'}.t-icon-arrow-down-circle:before{content:'\E033'}.t-icon-arrow-down-rectangle-filled:before{content:'\E034'}.t-icon-arrow-down-rectangle:before{content:'\E035'}.t-icon-arrow-down:before{content:'\E036'}.t-icon-arrow-left-circle-filled:before{content:'\E037'}.t-icon-arrow-left-circle:before{content:'\E038'}.t-icon-arrow-left-down-circle-filled:before{content:'\E039'}.t-icon-arrow-left-down-circle:before{content:'\E03A'}.t-icon-arrow-left-down:before{content:'\E03B'}.t-icon-arrow-left-right-1:before{content:'\E03C'}.t-icon-arrow-left-right-2:before{content:'\E03D'}.t-icon-arrow-left-right-3:before{content:'\E03E'}.t-icon-arrow-left-right-circle-filled:before{content:'\E03F'}.t-icon-arrow-left-right-circle:before{content:'\E040'}.t-icon-arrow-left-up-circle-filled:before{content:'\E041'}.t-icon-arrow-left-up-circle:before{content:'\E042'}.t-icon-arrow-left-up:before{content:'\E043'}.t-icon-arrow-left:before{content:'\E044'}.t-icon-arrow-right-circle-filled:before{content:'\E045'}.t-icon-arrow-right-circle:before{content:'\E046'}.t-icon-arrow-right-down-circle-filled:before{content:'\E047'}.t-icon-arrow-right-down-circle:before{content:'\E048'}.t-icon-arrow-right-down:before{content:'\E049'}.t-icon-arrow-right-up-circle-filled:before{content:'\E04A'}.t-icon-arrow-right-up-circle:before{content:'\E04B'}.t-icon-arrow-right-up:before{content:'\E04C'}.t-icon-arrow-right:before{content:'\E04D'}.t-icon-arrow-triangle-down-filled:before{content:'\E04E'}.t-icon-arrow-triangle-down:before{content:'\E04F'}.t-icon-arrow-triangle-up-filled:before{content:'\E050'}.t-icon-arrow-triangle-up:before{content:'\E051'}.t-icon-arrow-up-circle-filled:before{content:'\E052'}.t-icon-arrow-up-circle:before{content:'\E053'}.t-icon-arrow-up-down-1:before{content:'\E054'}.t-icon-arrow-up-down-2:before{content:'\E055'}.t-icon-arrow-up-down-3:before{content:'\E056'}.t-icon-arrow-up-down-circle-filled:before{content:'\E057'}.t-icon-arrow-up-down-circle:before{content:'\E058'}.t-icon-arrow-up:before{content:'\E059'}.t-icon-artboard:before{content:'\E05A'}.t-icon-article-filled:before{content:'\E05B'}.t-icon-article:before{content:'\E05C'}.t-icon-assignment-checked-filled:before{content:'\E05D'}.t-icon-assignment-checked:before{content:'\E05E'}.t-icon-assignment-code-filled:before{content:'\E05F'}.t-icon-assignment-code:before{content:'\E060'}.t-icon-assignment-error-filled:before{content:'\E061'}.t-icon-assignment-error:before{content:'\E062'}.t-icon-assignment-filled:before{content:'\E063'}.t-icon-assignment-user-filled:before{content:'\E064'}.t-icon-assignment-user:before{content:'\E065'}.t-icon-assignment:before{content:'\E066'}.t-icon-attach:before{content:'\E067'}.t-icon-attic-1-filled:before{content:'\E068'}.t-icon-attic-1:before{content:'\E069'}.t-icon-attic-filled:before{content:'\E06A'}.t-icon-attic:before{content:'\E06B'}.t-icon-audio-filled:before{content:'\E06C'}.t-icon-audio:before{content:'\E06D'}.t-icon-awkward-filled:before{content:'\E06E'}.t-icon-awkward:before{content:'\E06F'}.t-icon-backtop-rectangle-filled:before{content:'\E070'}.t-icon-backtop-rectangle:before{content:'\E071'}.t-icon-backtop:before{content:'\E072'}.t-icon-backup-filled:before{content:'\E073'}.t-icon-backup:before{content:'\E074'}.t-icon-backward-filled:before{content:'\E075'}.t-icon-backward:before{content:'\E076'}.t-icon-bad-laugh-filled:before{content:'\E077'}.t-icon-bad-laugh:before{content:'\E078'}.t-icon-bamboo-shoot-filled:before{content:'\E079'}.t-icon-bamboo-shoot:before{content:'\E07A'}.t-icon-banana-filled:before{content:'\E07B'}.t-icon-banana:before{content:'\E07C'}.t-icon-barbecue-filled:before{content:'\E07D'}.t-icon-barbecue:before{content:'\E07E'}.t-icon-barcode-1:before{content:'\E07F'}.t-icon-barcode:before{content:'\E080'}.t-icon-base-station:before{content:'\E081'}.t-icon-battery-add-filled:before{content:'\E082'}.t-icon-battery-add:before{content:'\E083'}.t-icon-battery-charging-filled:before{content:'\E084'}.t-icon-battery-charging:before{content:'\E085'}.t-icon-battery-filled:before{content:'\E086'}.t-icon-battery-low-filled:before{content:'\E087'}.t-icon-battery-low:before{content:'\E088'}.t-icon-battery:before{content:'\E089'}.t-icon-bean-filled:before{content:'\E08A'}.t-icon-bean:before{content:'\E08B'}.t-icon-beer-filled:before{content:'\E08C'}.t-icon-beer:before{content:'\E08D'}.t-icon-beta:before{content:'\E08E'}.t-icon-bifurcate-filled:before{content:'\E08F'}.t-icon-bifurcate:before{content:'\E090'}.t-icon-bill-filled:before{content:'\E091'}.t-icon-bill:before{content:'\E092'}.t-icon-bluetooth:before{content:'\E093'}.t-icon-bone-filled:before{content:'\E094'}.t-icon-bone:before{content:'\E095'}.t-icon-book-filled:before{content:'\E096'}.t-icon-book-open-filled:before{content:'\E097'}.t-icon-book-open:before{content:'\E098'}.t-icon-book-unknown-filled:before{content:'\E099'}.t-icon-book-unknown:before{content:'\E09A'}.t-icon-book:before{content:'\E09B'}.t-icon-bookmark-add-filled:before{content:'\E09C'}.t-icon-bookmark-add:before{content:'\E09D'}.t-icon-bookmark-checked-filled:before{content:'\E09E'}.t-icon-bookmark-checked:before{content:'\E09F'}.t-icon-bookmark-double-filled:before{content:'\E0A0'}.t-icon-bookmark-double:before{content:'\E0A1'}.t-icon-bookmark-filled:before{content:'\E0A2'}.t-icon-bookmark-minus-filled:before{content:'\E0A3'}.t-icon-bookmark-minus:before{content:'\E0A4'}.t-icon-bookmark:before{content:'\E0A5'}.t-icon-braces:before{content:'\E0A6'}.t-icon-brackets:before{content:'\E0A7'}.t-icon-bread-filled:before{content:'\E0A8'}.t-icon-bread:before{content:'\E0A9'}.t-icon-bridge-1-filled:before{content:'\E0AA'}.t-icon-bridge-1:before{content:'\E0AB'}.t-icon-bridge-2-filled:before{content:'\E0AC'}.t-icon-bridge-2:before{content:'\E0AD'}.t-icon-bridge-3:before{content:'\E0AE'}.t-icon-bridge-4:before{content:'\E0AF'}.t-icon-bridge-5-filled:before{content:'\E0B0'}.t-icon-bridge-5:before{content:'\E0B1'}.t-icon-bridge-6-filled:before{content:'\E0B2'}.t-icon-bridge-6:before{content:'\E0B3'}.t-icon-bridge:before{content:'\E0B4'}.t-icon-brightness-1-filled:before{content:'\E0B5'}.t-icon-brightness-1:before{content:'\E0B6'}.t-icon-brightness-filled:before{content:'\E0B7'}.t-icon-brightness:before{content:'\E0B8'}.t-icon-broccoli-filled:before{content:'\E0B9'}.t-icon-broccoli:before{content:'\E0BA'}.t-icon-browse-filled:before{content:'\E0BB'}.t-icon-browse-gallery-filled:before{content:'\E0BC'}.t-icon-browse-gallery:before{content:'\E0BD'}.t-icon-browse-off-filled:before{content:'\E0BE'}.t-icon-browse-off:before{content:'\E0BF'}.t-icon-browse:before{content:'\E0C0'}.t-icon-brush-filled:before{content:'\E0C1'}.t-icon-brush:before{content:'\E0C2'}.t-icon-bug-filled:before{content:'\E0C3'}.t-icon-bug-report-filled:before{content:'\E0C4'}.t-icon-bug-report:before{content:'\E0C5'}.t-icon-bug:before{content:'\E0C6'}.t-icon-building-1-filled:before{content:'\E0C7'}.t-icon-building-1:before{content:'\E0C8'}.t-icon-building-2-filled:before{content:'\E0C9'}.t-icon-building-2:before{content:'\E0CA'}.t-icon-building-3-filled:before{content:'\E0CB'}.t-icon-building-3:before{content:'\E0CC'}.t-icon-building-4-filled:before{content:'\E0CD'}.t-icon-building-4:before{content:'\E0CE'}.t-icon-building-5-filled:before{content:'\E0CF'}.t-icon-building-5:before{content:'\E0D0'}.t-icon-building-filled:before{content:'\E0D1'}.t-icon-building:before{content:'\E0D2'}.t-icon-bulletpoint:before{content:'\E0D3'}.t-icon-button-filled:before{content:'\E0D4'}.t-icon-button:before{content:'\E0D5'}.t-icon-cabbage-filled:before{content:'\E0D6'}.t-icon-cabbage:before{content:'\E0D7'}.t-icon-cake-filled:before{content:'\E0D8'}.t-icon-cake:before{content:'\E0D9'}.t-icon-calculation-1-filled:before{content:'\E0DA'}.t-icon-calculation-1:before{content:'\E0DB'}.t-icon-calculation:before{content:'\E0DC'}.t-icon-calculator-1:before{content:'\E0DD'}.t-icon-calculator-filled:before{content:'\E0DE'}.t-icon-calculator:before{content:'\E0DF'}.t-icon-calendar-1-filled:before{content:'\E0E0'}.t-icon-calendar-1:before{content:'\E0E1'}.t-icon-calendar-2-filled:before{content:'\E0E2'}.t-icon-calendar-2:before{content:'\E0E3'}.t-icon-calendar-edit-filled:before{content:'\E0E4'}.t-icon-calendar-edit:before{content:'\E0E5'}.t-icon-calendar-event-filled:before{content:'\E0E6'}.t-icon-calendar-event:before{content:'\E0E7'}.t-icon-calendar-filled:before{content:'\E0E8'}.t-icon-calendar:before{content:'\E0E9'}.t-icon-call-1-filled:before{content:'\E0EA'}.t-icon-call-1:before{content:'\E0EB'}.t-icon-call-cancel-filled:before{content:'\E0EC'}.t-icon-call-cancel:before{content:'\E0ED'}.t-icon-call-filled:before{content:'\E0EE'}.t-icon-call-forwarded-filled:before{content:'\E0EF'}.t-icon-call-forwarded:before{content:'\E0F0'}.t-icon-call-incoming-filled:before{content:'\E0F1'}.t-icon-call-incoming:before{content:'\E0F2'}.t-icon-call-off-filled:before{content:'\E0F3'}.t-icon-call-off:before{content:'\E0F4'}.t-icon-call:before{content:'\E0F5'}.t-icon-calm-1-filled:before{content:'\E0F6'}.t-icon-calm-1:before{content:'\E0F7'}.t-icon-calm-filled:before{content:'\E0F8'}.t-icon-calm:before{content:'\E0F9'}.t-icon-camera-1-filled:before{content:'\E0FA'}.t-icon-camera-1:before{content:'\E0FB'}.t-icon-camera-2-filled:before{content:'\E0FC'}.t-icon-camera-2:before{content:'\E0FD'}.t-icon-camera-filled:before{content:'\E0FE'}.t-icon-camera-off-filled:before{content:'\E0FF'}.t-icon-camera-off:before{content:'\E100'}.t-icon-camera:before{content:'\E101'}.t-icon-candy-filled:before{content:'\E102'}.t-icon-candy:before{content:'\E103'}.t-icon-card-filled:before{content:'\E104'}.t-icon-card:before{content:'\E105'}.t-icon-cardmembership-filled:before{content:'\E106'}.t-icon-cardmembership:before{content:'\E107'}.t-icon-caret-down-small:before{content:'\E108'}.t-icon-caret-down:before{content:'\E109'}.t-icon-caret-left-small:before{content:'\E10A'}.t-icon-caret-left:before{content:'\E10B'}.t-icon-caret-right-small:before{content:'\E10C'}.t-icon-caret-right:before{content:'\E10D'}.t-icon-caret-up-small:before{content:'\E10E'}.t-icon-caret-up:before{content:'\E10F'}.t-icon-cart-add-filled:before{content:'\E110'}.t-icon-cart-add:before{content:'\E111'}.t-icon-cart-filled:before{content:'\E112'}.t-icon-cart:before{content:'\E113'}.t-icon-cast-filled:before{content:'\E114'}.t-icon-cast:before{content:'\E115'}.t-icon-castle-1-filled:before{content:'\E116'}.t-icon-castle-1:before{content:'\E117'}.t-icon-castle-2-filled:before{content:'\E118'}.t-icon-castle-2:before{content:'\E119'}.t-icon-castle-3-filled:before{content:'\E11A'}.t-icon-castle-3:before{content:'\E11B'}.t-icon-castle-4-filled:before{content:'\E11C'}.t-icon-castle-4:before{content:'\E11D'}.t-icon-castle-5-filled:before{content:'\E11E'}.t-icon-castle-5:before{content:'\E11F'}.t-icon-castle-6-filled:before{content:'\E120'}.t-icon-castle-6:before{content:'\E121'}.t-icon-castle-7-filled:before{content:'\E122'}.t-icon-castle-7:before{content:'\E123'}.t-icon-castle-filled:before{content:'\E124'}.t-icon-castle:before{content:'\E125'}.t-icon-cat-filled:before{content:'\E126'}.t-icon-cat:before{content:'\E127'}.t-icon-catalog-filled:before{content:'\E128'}.t-icon-catalog:before{content:'\E129'}.t-icon-cd-filled:before{content:'\E12A'}.t-icon-cd:before{content:'\E12B'}.t-icon-celsius:before{content:'\E12C'}.t-icon-center-focus-strong-filled:before{content:'\E12D'}.t-icon-center-focus-strong:before{content:'\E12E'}.t-icon-centimeter:before{content:'\E12F'}.t-icon-certificate-1-filled:before{content:'\E130'}.t-icon-certificate-1:before{content:'\E131'}.t-icon-certificate-filled:before{content:'\E132'}.t-icon-certificate:before{content:'\E133'}.t-icon-chart-3d-filled:before{content:'\E134'}.t-icon-chart-3d:before{content:'\E135'}.t-icon-chart-add-filled:before{content:'\E136'}.t-icon-chart-add:before{content:'\E137'}.t-icon-chart-analytics:before{content:'\E138'}.t-icon-chart-area-filled:before{content:'\E139'}.t-icon-chart-area-multi-filled:before{content:'\E13A'}.t-icon-chart-area-multi:before{content:'\E13B'}.t-icon-chart-area:before{content:'\E13C'}.t-icon-chart-bar-filled:before{content:'\E13D'}.t-icon-chart-bar:before{content:'\E13E'}.t-icon-chart-bubble-filled:before{content:'\E13F'}.t-icon-chart-bubble:before{content:'\E140'}.t-icon-chart-column-filled:before{content:'\E141'}.t-icon-chart-column:before{content:'\E142'}.t-icon-chart-combo-filled:before{content:'\E143'}.t-icon-chart-combo:before{content:'\E144'}.t-icon-chart-filled:before{content:'\E145'}.t-icon-chart-line-data-1:before{content:'\E146'}.t-icon-chart-line-data:before{content:'\E147'}.t-icon-chart-line-multi:before{content:'\E148'}.t-icon-chart-line:before{content:'\E149'}.t-icon-chart-maximum:before{content:'\E14A'}.t-icon-chart-median:before{content:'\E14B'}.t-icon-chart-minimum:before{content:'\E14C'}.t-icon-chart-pie-filled:before{content:'\E14D'}.t-icon-chart-pie:before{content:'\E14E'}.t-icon-chart-radar-filled:before{content:'\E14F'}.t-icon-chart-radar:before{content:'\E150'}.t-icon-chart-radial:before{content:'\E151'}.t-icon-chart-ring-1-filled:before{content:'\E152'}.t-icon-chart-ring-1:before{content:'\E153'}.t-icon-chart-ring-filled:before{content:'\E154'}.t-icon-chart-ring:before{content:'\E155'}.t-icon-chart-scatter:before{content:'\E156'}.t-icon-chart-stacked-filled:before{content:'\E157'}.t-icon-chart-stacked:before{content:'\E158'}.t-icon-chart:before{content:'\E159'}.t-icon-chat-add-filled:before{content:'\E15A'}.t-icon-chat-add:before{content:'\E15B'}.t-icon-chat-bubble-1-filled:before{content:'\E15C'}.t-icon-chat-bubble-1:before{content:'\E15D'}.t-icon-chat-bubble-add-filled:before{content:'\E15E'}.t-icon-chat-bubble-add:before{content:'\E15F'}.t-icon-chat-bubble-error-filled:before{content:'\E160'}.t-icon-chat-bubble-error:before{content:'\E161'}.t-icon-chat-bubble-filled:before{content:'\E162'}.t-icon-chat-bubble-help-filled:before{content:'\E163'}.t-icon-chat-bubble-help:before{content:'\E164'}.t-icon-chat-bubble-history-filled:before{content:'\E165'}.t-icon-chat-bubble-history:before{content:'\E166'}.t-icon-chat-bubble-locked-filled:before{content:'\E167'}.t-icon-chat-bubble-locked:before{content:'\E168'}.t-icon-chat-bubble-smile-filled:before{content:'\E169'}.t-icon-chat-bubble-smile:before{content:'\E16A'}.t-icon-chat-bubble:before{content:'\E16B'}.t-icon-chat-checked-filled:before{content:'\E16C'}.t-icon-chat-checked:before{content:'\E16D'}.t-icon-chat-clear-filled:before{content:'\E16E'}.t-icon-chat-clear:before{content:'\E16F'}.t-icon-chat-double-filled:before{content:'\E170'}.t-icon-chat-double:before{content:'\E171'}.t-icon-chat-error-filled:before{content:'\E172'}.t-icon-chat-error:before{content:'\E173'}.t-icon-chat-filled:before{content:'\E174'}.t-icon-chat-heart-filled:before{content:'\E175'}.t-icon-chat-heart:before{content:'\E176'}.t-icon-chat-message-filled:before{content:'\E177'}.t-icon-chat-message:before{content:'\E178'}.t-icon-chat-off-filled:before{content:'\E179'}.t-icon-chat-off:before{content:'\E17A'}.t-icon-chat-poll-filled:before{content:'\E17B'}.t-icon-chat-poll:before{content:'\E17C'}.t-icon-chat-setting-filled:before{content:'\E17D'}.t-icon-chat-setting:before{content:'\E17E'}.t-icon-chat:before{content:'\E17F'}.t-icon-check-circle-filled:before{content:'\E180'}.t-icon-check-circle:before{content:'\E181'}.t-icon-check-double:before{content:'\E182'}.t-icon-check-rectangle-filled:before{content:'\E183'}.t-icon-check-rectangle:before{content:'\E184'}.t-icon-check:before{content:'\E185'}.t-icon-cheese-filled:before{content:'\E186'}.t-icon-cheese:before{content:'\E187'}.t-icon-cherry-filled:before{content:'\E188'}.t-icon-cherry:before{content:'\E189'}.t-icon-chevron-down-circle-filled:before{content:'\E18A'}.t-icon-chevron-down-circle:before{content:'\E18B'}.t-icon-chevron-down-double-s:before{content:'\E18C'}.t-icon-chevron-down-double:before{content:'\E18D'}.t-icon-chevron-down-rectangle-filled:before{content:'\E18E'}.t-icon-chevron-down-rectangle:before{content:'\E18F'}.t-icon-chevron-down-s:before{content:'\E190'}.t-icon-chevron-down:before{content:'\E191'}.t-icon-chevron-left-circle-filled:before{content:'\E192'}.t-icon-chevron-left-circle:before{content:'\E193'}.t-icon-chevron-left-double-s:before{content:'\E194'}.t-icon-chevron-left-double:before{content:'\E195'}.t-icon-chevron-left-rectangle-filled:before{content:'\E196'}.t-icon-chevron-left-rectangle:before{content:'\E197'}.t-icon-chevron-left-s:before{content:'\E198'}.t-icon-chevron-left:before{content:'\E199'}.t-icon-chevron-right-circle-filled:before{content:'\E19A'}.t-icon-chevron-right-circle:before{content:'\E19B'}.t-icon-chevron-right-double-s:before{content:'\E19C'}.t-icon-chevron-right-double:before{content:'\E19D'}.t-icon-chevron-right-rectangle-filled:before{content:'\E19E'}.t-icon-chevron-right-rectangle:before{content:'\E19F'}.t-icon-chevron-right-s:before{content:'\E1A0'}.t-icon-chevron-right:before{content:'\E1A1'}.t-icon-chevron-up-circle-filled:before{content:'\E1A2'}.t-icon-chevron-up-circle:before{content:'\E1A3'}.t-icon-chevron-up-double-s:before{content:'\E1A4'}.t-icon-chevron-up-double:before{content:'\E1A5'}.t-icon-chevron-up-rectangle-filled:before{content:'\E1A6'}.t-icon-chevron-up-rectangle:before{content:'\E1A7'}.t-icon-chevron-up-s:before{content:'\E1A8'}.t-icon-chevron-up:before{content:'\E1A9'}.t-icon-chicken:before{content:'\E1AA'}.t-icon-chili-filled:before{content:'\E1AB'}.t-icon-chili:before{content:'\E1AC'}.t-icon-chimney-1-filled:before{content:'\E1AD'}.t-icon-chimney-1:before{content:'\E1AE'}.t-icon-chimney-2-filled:before{content:'\E1AF'}.t-icon-chimney-2:before{content:'\E1B0'}.t-icon-chimney-filled:before{content:'\E1B1'}.t-icon-chimney:before{content:'\E1B2'}.t-icon-chinese-cabbage-filled:before{content:'\E1B3'}.t-icon-chinese-cabbage:before{content:'\E1B4'}.t-icon-church-filled:before{content:'\E1B5'}.t-icon-church:before{content:'\E1B6'}.t-icon-circle-filled:before{content:'\E1B7'}.t-icon-circle:before{content:'\E1B8'}.t-icon-city-1-filled:before{content:'\E1B9'}.t-icon-city-1:before{content:'\E1BA'}.t-icon-city-10-filled:before{content:'\E1BB'}.t-icon-city-10:before{content:'\E1BC'}.t-icon-city-11-filled:before{content:'\E1BD'}.t-icon-city-11:before{content:'\E1BE'}.t-icon-city-12-filled:before{content:'\E1BF'}.t-icon-city-12:before{content:'\E1C0'}.t-icon-city-13-filled:before{content:'\E1C1'}.t-icon-city-13:before{content:'\E1C2'}.t-icon-city-14-filled:before{content:'\E1C3'}.t-icon-city-14:before{content:'\E1C4'}.t-icon-city-15-filled:before{content:'\E1C5'}.t-icon-city-15:before{content:'\E1C6'}.t-icon-city-2-filled:before{content:'\E1C7'}.t-icon-city-2:before{content:'\E1C8'}.t-icon-city-3-filled:before{content:'\E1C9'}.t-icon-city-3:before{content:'\E1CA'}.t-icon-city-4-filled:before{content:'\E1CB'}.t-icon-city-4:before{content:'\E1CC'}.t-icon-city-5-filled:before{content:'\E1CD'}.t-icon-city-5:before{content:'\E1CE'}.t-icon-city-6-filled:before{content:'\E1CF'}.t-icon-city-6:before{content:'\E1D0'}.t-icon-city-7-filled:before{content:'\E1D1'}.t-icon-city-7:before{content:'\E1D2'}.t-icon-city-8-filled:before{content:'\E1D3'}.t-icon-city-8:before{content:'\E1D4'}.t-icon-city-9-filled:before{content:'\E1D5'}.t-icon-city-9:before{content:'\E1D6'}.t-icon-city-ancient-1-filled:before{content:'\E1D7'}.t-icon-city-ancient-1:before{content:'\E1D8'}.t-icon-city-ancient-2-filled:before{content:'\E1D9'}.t-icon-city-ancient-2:before{content:'\E1DA'}.t-icon-city-ancient-filled:before{content:'\E1DB'}.t-icon-city-ancient:before{content:'\E1DC'}.t-icon-city-filled:before{content:'\E1DD'}.t-icon-city:before{content:'\E1DE'}.t-icon-clear-filled:before{content:'\E1DF'}.t-icon-clear-formatting-1-filled:before{content:'\E1E0'}.t-icon-clear-formatting-1:before{content:'\E1E1'}.t-icon-clear-formatting-filled:before{content:'\E1E2'}.t-icon-clear-formatting:before{content:'\E1E3'}.t-icon-clear:before{content:'\E1E4'}.t-icon-close-circle-filled:before{content:'\E1E5'}.t-icon-close-circle:before{content:'\E1E6'}.t-icon-close-octagon-filled:before{content:'\E1E7'}.t-icon-close-octagon:before{content:'\E1E8'}.t-icon-close-rectangle-filled:before{content:'\E1E9'}.t-icon-close-rectangle:before{content:'\E1EA'}.t-icon-close:before{content:'\E1EB'}.t-icon-cloud-download:before{content:'\E1EC'}.t-icon-cloud-filled:before{content:'\E1ED'}.t-icon-cloud-upload:before{content:'\E1EE'}.t-icon-cloud:before{content:'\E1EF'}.t-icon-cloudy-day-filled:before{content:'\E1F0'}.t-icon-cloudy-day:before{content:'\E1F1'}.t-icon-cloudy-night-filled:before{content:'\E1F2'}.t-icon-cloudy-night-rain-filled:before{content:'\E1F3'}.t-icon-cloudy-night-rain:before{content:'\E1F4'}.t-icon-cloudy-night:before{content:'\E1F5'}.t-icon-cloudy-rain-filled:before{content:'\E1F6'}.t-icon-cloudy-rain:before{content:'\E1F7'}.t-icon-cloudy-sunny-filled:before{content:'\E1F8'}.t-icon-cloudy-sunny:before{content:'\E1F9'}.t-icon-code-1:before{content:'\E1FA'}.t-icon-code-off:before{content:'\E1FB'}.t-icon-code:before{content:'\E1FC'}.t-icon-cola-filled:before{content:'\E1FD'}.t-icon-cola:before{content:'\E1FE'}.t-icon-collage-filled:before{content:'\E1FF'}.t-icon-collage:before{content:'\E200'}.t-icon-collection-filled:before{content:'\E201'}.t-icon-collection:before{content:'\E202'}.t-icon-color-invert-filled:before{content:'\E203'}.t-icon-color-invert:before{content:'\E204'}.t-icon-combination-filled:before{content:'\E205'}.t-icon-combination:before{content:'\E206'}.t-icon-command:before{content:'\E207'}.t-icon-compass-1-filled:before{content:'\E208'}.t-icon-compass-1:before{content:'\E209'}.t-icon-compass-filled:before{content:'\E20A'}.t-icon-compass:before{content:'\E20B'}.t-icon-component-breadcrumb-filled:before{content:'\E20C'}.t-icon-component-breadcrumb:before{content:'\E20D'}.t-icon-component-checkbox-filled:before{content:'\E20E'}.t-icon-component-checkbox:before{content:'\E20F'}.t-icon-component-divider-horizontal-filled:before{content:'\E210'}.t-icon-component-divider-horizontal:before{content:'\E211'}.t-icon-component-divider-vertical-filled:before{content:'\E212'}.t-icon-component-divider-vertical:before{content:'\E213'}.t-icon-component-dropdown-filled:before{content:'\E214'}.t-icon-component-dropdown:before{content:'\E215'}.t-icon-component-grid-filled:before{content:'\E216'}.t-icon-component-grid:before{content:'\E217'}.t-icon-component-input-filled:before{content:'\E218'}.t-icon-component-input:before{content:'\E219'}.t-icon-component-layout-filled:before{content:'\E21A'}.t-icon-component-layout:before{content:'\E21B'}.t-icon-component-radio:before{content:'\E21C'}.t-icon-component-space-filled:before{content:'\E21D'}.t-icon-component-space:before{content:'\E21E'}.t-icon-component-steps-filled:before{content:'\E21F'}.t-icon-component-steps:before{content:'\E220'}.t-icon-component-switch-filled:before{content:'\E221'}.t-icon-component-switch:before{content:'\E222'}.t-icon-constraint:before{content:'\E223'}.t-icon-contrast-1-filled:before{content:'\E224'}.t-icon-contrast-1:before{content:'\E225'}.t-icon-contrast-filled:before{content:'\E226'}.t-icon-contrast:before{content:'\E227'}.t-icon-control-platform-filled:before{content:'\E228'}.t-icon-control-platform:before{content:'\E229'}.t-icon-cooperate-filled:before{content:'\E22A'}.t-icon-cooperate:before{content:'\E22B'}.t-icon-coordinate-system-filled:before{content:'\E22C'}.t-icon-coordinate-system:before{content:'\E22D'}.t-icon-copy-filled:before{content:'\E22E'}.t-icon-copy:before{content:'\E22F'}.t-icon-copyright-filled:before{content:'\E230'}.t-icon-copyright:before{content:'\E231'}.t-icon-corn-filled:before{content:'\E232'}.t-icon-corn:before{content:'\E233'}.t-icon-coupon-filled:before{content:'\E234'}.t-icon-coupon:before{content:'\E235'}.t-icon-course-filled:before{content:'\E236'}.t-icon-course:before{content:'\E237'}.t-icon-cpu-filled:before{content:'\E238'}.t-icon-cpu:before{content:'\E239'}.t-icon-crack-filled:before{content:'\E23A'}.t-icon-crack:before{content:'\E23B'}.t-icon-creditcard-add-filled:before{content:'\E23C'}.t-icon-creditcard-add:before{content:'\E23D'}.t-icon-creditcard-filled:before{content:'\E23E'}.t-icon-creditcard-off-filled:before{content:'\E23F'}.t-icon-creditcard-off:before{content:'\E240'}.t-icon-creditcard:before{content:'\E241'}.t-icon-crooked-smile-filled:before{content:'\E242'}.t-icon-crooked-smile:before{content:'\E243'}.t-icon-cry-and-laugh-filled:before{content:'\E244'}.t-icon-cry-and-laugh:before{content:'\E245'}.t-icon-cry-loudly-filled:before{content:'\E246'}.t-icon-cry-loudly:before{content:'\E247'}.t-icon-css3-filled:before{content:'\E248'}.t-icon-css3:before{content:'\E249'}.t-icon-cucumber:before{content:'\E24A'}.t-icon-currency-exchange:before{content:'\E24B'}.t-icon-cursor-filled:before{content:'\E24C'}.t-icon-cursor:before{content:'\E24D'}.t-icon-curtain-filled:before{content:'\E24E'}.t-icon-curtain:before{content:'\E24F'}.t-icon-curve:before{content:'\E250'}.t-icon-cut-1:before{content:'\E251'}.t-icon-cut:before{content:'\E252'}.t-icon-dam-1-filled:before{content:'\E253'}.t-icon-dam-1:before{content:'\E254'}.t-icon-dam-2-filled:before{content:'\E255'}.t-icon-dam-2:before{content:'\E256'}.t-icon-dam-3-filled:before{content:'\E257'}.t-icon-dam-3:before{content:'\E258'}.t-icon-dam-4-filled:before{content:'\E259'}.t-icon-dam-4:before{content:'\E25A'}.t-icon-dam-5-filled:before{content:'\E25B'}.t-icon-dam-5:before{content:'\E25C'}.t-icon-dam-6-filled:before{content:'\E25D'}.t-icon-dam-6:before{content:'\E25E'}.t-icon-dam-7-filled:before{content:'\E25F'}.t-icon-dam-7:before{content:'\E260'}.t-icon-dam-filled:before{content:'\E261'}.t-icon-dam:before{content:'\E262'}.t-icon-dart-board-filled:before{content:'\E263'}.t-icon-dart-board:before{content:'\E264'}.t-icon-dashboard-1-filled:before{content:'\E265'}.t-icon-dashboard-1:before{content:'\E266'}.t-icon-dashboard-filled:before{content:'\E267'}.t-icon-dashboard:before{content:'\E268'}.t-icon-data-base-filled:before{content:'\E269'}.t-icon-data-base:before{content:'\E26A'}.t-icon-data-checked-filled:before{content:'\E26B'}.t-icon-data-checked:before{content:'\E26C'}.t-icon-data-display:before{content:'\E26D'}.t-icon-data-error-filled:before{content:'\E26E'}.t-icon-data-error:before{content:'\E26F'}.t-icon-data-filled:before{content:'\E270'}.t-icon-data-search-filled:before{content:'\E271'}.t-icon-data-search:before{content:'\E272'}.t-icon-data:before{content:'\E273'}.t-icon-delete-1-filled:before{content:'\E274'}.t-icon-delete-1:before{content:'\E275'}.t-icon-delete-filled:before{content:'\E276'}.t-icon-delete-time-filled:before{content:'\E277'}.t-icon-delete-time:before{content:'\E278'}.t-icon-delete:before{content:'\E279'}.t-icon-delta-filled:before{content:'\E27A'}.t-icon-delta:before{content:'\E27B'}.t-icon-depressed-filled:before{content:'\E27C'}.t-icon-depressed:before{content:'\E27D'}.t-icon-desktop-1-filled:before{content:'\E27E'}.t-icon-desktop-1:before{content:'\E27F'}.t-icon-desktop-filled:before{content:'\E280'}.t-icon-desktop:before{content:'\E281'}.t-icon-despise-filled:before{content:'\E282'}.t-icon-despise:before{content:'\E283'}.t-icon-device-filled:before{content:'\E284'}.t-icon-device:before{content:'\E285'}.t-icon-discount-filled:before{content:'\E286'}.t-icon-discount:before{content:'\E287'}.t-icon-dissatisfaction-filled:before{content:'\E288'}.t-icon-dissatisfaction:before{content:'\E289'}.t-icon-divide:before{content:'\E28A'}.t-icon-dividers-1:before{content:'\E28B'}.t-icon-dividers:before{content:'\E28C'}.t-icon-doge-filled:before{content:'\E28D'}.t-icon-doge:before{content:'\E28E'}.t-icon-double-storey-filled:before{content:'\E28F'}.t-icon-double-storey:before{content:'\E290'}.t-icon-download-1:before{content:'\E291'}.t-icon-download-2-filled:before{content:'\E292'}.t-icon-download-2:before{content:'\E293'}.t-icon-download:before{content:'\E294'}.t-icon-downscale:before{content:'\E295'}.t-icon-drag-drop:before{content:'\E296'}.t-icon-drag-move:before{content:'\E297'}.t-icon-drink-filled:before{content:'\E298'}.t-icon-drink:before{content:'\E299'}.t-icon-drumstick-filled:before{content:'\E29A'}.t-icon-drumstick:before{content:'\E29B'}.t-icon-dv-filled:before{content:'\E29C'}.t-icon-dv:before{content:'\E29D'}.t-icon-dvd-filled:before{content:'\E29E'}.t-icon-dvd:before{content:'\E29F'}.t-icon-earphone-filled:before{content:'\E2A0'}.t-icon-earphone:before{content:'\E2A1'}.t-icon-earth-filled:before{content:'\E2A2'}.t-icon-earth:before{content:'\E2A3'}.t-icon-edit-1-filled:before{content:'\E2A4'}.t-icon-edit-1:before{content:'\E2A5'}.t-icon-edit-2-filled:before{content:'\E2A6'}.t-icon-edit-2:before{content:'\E2A7'}.t-icon-edit-filled:before{content:'\E2A8'}.t-icon-edit-off-filled:before{content:'\E2A9'}.t-icon-edit-off:before{content:'\E2AA'}.t-icon-edit:before{content:'\E2AB'}.t-icon-education-filled:before{content:'\E2AC'}.t-icon-education:before{content:'\E2AD'}.t-icon-eggplant-filled:before{content:'\E2AE'}.t-icon-eggplant:before{content:'\E2AF'}.t-icon-ellipsis:before{content:'\E2B0'}.t-icon-emo-emotional-filled:before{content:'\E2B1'}.t-icon-emo-emotional:before{content:'\E2B2'}.t-icon-enter:before{content:'\E2B3'}.t-icon-equal:before{content:'\E2B4'}.t-icon-error-circle-filled:before{content:'\E2B5'}.t-icon-error-circle:before{content:'\E2B6'}.t-icon-error-triangle-filled:before{content:'\E2B7'}.t-icon-error-triangle:before{content:'\E2B8'}.t-icon-error:before{content:'\E2B9'}.t-icon-excited-1-filled:before{content:'\E2BA'}.t-icon-excited-1:before{content:'\E2BB'}.t-icon-excited-filled:before{content:'\E2BC'}.t-icon-excited:before{content:'\E2BD'}.t-icon-expand-down-filled:before{content:'\E2BE'}.t-icon-expand-down:before{content:'\E2BF'}.t-icon-expand-horizontal:before{content:'\E2C0'}.t-icon-expand-up-filled:before{content:'\E2C1'}.t-icon-expand-up:before{content:'\E2C2'}.t-icon-expand-vertical:before{content:'\E2C3'}.t-icon-explore-filled:before{content:'\E2C4'}.t-icon-explore-off-filled:before{content:'\E2C5'}.t-icon-explore-off:before{content:'\E2C6'}.t-icon-explore:before{content:'\E2C7'}.t-icon-exposure-filled:before{content:'\E2C8'}.t-icon-exposure:before{content:'\E2C9'}.t-icon-extension-filled:before{content:'\E2CA'}.t-icon-extension-off-filled:before{content:'\E2CB'}.t-icon-extension-off:before{content:'\E2CC'}.t-icon-extension:before{content:'\E2CD'}.t-icon-face-retouching-filled:before{content:'\E2CE'}.t-icon-face-retouching:before{content:'\E2CF'}.t-icon-fact-check-filled:before{content:'\E2D0'}.t-icon-fact-check:before{content:'\E2D1'}.t-icon-fahrenheit-scale:before{content:'\E2D2'}.t-icon-feel-at-ease-filled:before{content:'\E2D3'}.t-icon-feel-at-ease:before{content:'\E2D4'}.t-icon-ferocious-filled:before{content:'\E2D5'}.t-icon-ferocious:before{content:'\E2D6'}.t-icon-ferris-wheel-filled:before{content:'\E2D7'}.t-icon-ferris-wheel:before{content:'\E2D8'}.t-icon-file-1-filled:before{content:'\E2D9'}.t-icon-file-1:before{content:'\E2DA'}.t-icon-file-add-1-filled:before{content:'\E2DB'}.t-icon-file-add-1:before{content:'\E2DC'}.t-icon-file-add-filled:before{content:'\E2DD'}.t-icon-file-add:before{content:'\E2DE'}.t-icon-file-attachment-filled:before{content:'\E2DF'}.t-icon-file-attachment:before{content:'\E2E0'}.t-icon-file-blocked-filled:before{content:'\E2E1'}.t-icon-file-blocked:before{content:'\E2E2'}.t-icon-file-code-1-filled:before{content:'\E2E3'}.t-icon-file-code-1:before{content:'\E2E4'}.t-icon-file-code-filled:before{content:'\E2E5'}.t-icon-file-code:before{content:'\E2E6'}.t-icon-file-copy-filled:before{content:'\E2E7'}.t-icon-file-copy:before{content:'\E2E8'}.t-icon-file-download-filled:before{content:'\E2E9'}.t-icon-file-download:before{content:'\E2EA'}.t-icon-file-excel-filled:before{content:'\E2EB'}.t-icon-file-excel:before{content:'\E2EC'}.t-icon-file-export-filled:before{content:'\E2ED'}.t-icon-file-export:before{content:'\E2EE'}.t-icon-file-filled:before{content:'\E2EF'}.t-icon-file-icon-filled:before{content:'\E2F0'}.t-icon-file-icon:before{content:'\E2F1'}.t-icon-file-image-filled:before{content:'\E2F2'}.t-icon-file-image:before{content:'\E2F3'}.t-icon-file-import-filled:before{content:'\E2F4'}.t-icon-file-import:before{content:'\E2F5'}.t-icon-file-locked-filled:before{content:'\E2F6'}.t-icon-file-locked:before{content:'\E2F7'}.t-icon-file-minus-filled:before{content:'\E2F8'}.t-icon-file-minus:before{content:'\E2F9'}.t-icon-file-music-filled:before{content:'\E2FA'}.t-icon-file-music:before{content:'\E2FB'}.t-icon-file-onenote-filled:before{content:'\E2FC'}.t-icon-file-onenote:before{content:'\E2FD'}.t-icon-file-outlook-filled:before{content:'\E2FE'}.t-icon-file-outlook:before{content:'\E2FF'}.t-icon-file-paste-filled:before{content:'\E300'}.t-icon-file-paste:before{content:'\E301'}.t-icon-file-pdf-filled:before{content:'\E302'}.t-icon-file-pdf:before{content:'\E303'}.t-icon-file-powerpoint-filled:before{content:'\E304'}.t-icon-file-powerpoint:before{content:'\E305'}.t-icon-file-restore-filled:before{content:'\E306'}.t-icon-file-restore:before{content:'\E307'}.t-icon-file-safety-filled:before{content:'\E308'}.t-icon-file-safety:before{content:'\E309'}.t-icon-file-search-filled:before{content:'\E30A'}.t-icon-file-search:before{content:'\E30B'}.t-icon-file-setting-filled:before{content:'\E30C'}.t-icon-file-setting:before{content:'\E30D'}.t-icon-file-teams-filled:before{content:'\E30E'}.t-icon-file-teams:before{content:'\E30F'}.t-icon-file-transmit-double-filled:before{content:'\E310'}.t-icon-file-transmit-double:before{content:'\E311'}.t-icon-file-transmit-filled:before{content:'\E312'}.t-icon-file-transmit:before{content:'\E313'}.t-icon-file-unknown-filled:before{content:'\E314'}.t-icon-file-unknown:before{content:'\E315'}.t-icon-file-unlocked-filled:before{content:'\E316'}.t-icon-file-unlocked:before{content:'\E317'}.t-icon-file-word-filled:before{content:'\E318'}.t-icon-file-word:before{content:'\E319'}.t-icon-file-zip-filled:before{content:'\E31A'}.t-icon-file-zip:before{content:'\E31B'}.t-icon-file:before{content:'\E31C'}.t-icon-fill-color-1-filled:before{content:'\E31D'}.t-icon-fill-color-1:before{content:'\E31E'}.t-icon-fill-color-filled:before{content:'\E31F'}.t-icon-fill-color:before{content:'\E320'}.t-icon-film-1-filled:before{content:'\E321'}.t-icon-film-1:before{content:'\E322'}.t-icon-film-filled:before{content:'\E323'}.t-icon-film:before{content:'\E324'}.t-icon-filter-1-filled:before{content:'\E325'}.t-icon-filter-1:before{content:'\E326'}.t-icon-filter-2-filled:before{content:'\E327'}.t-icon-filter-2:before{content:'\E328'}.t-icon-filter-3-filled:before{content:'\E329'}.t-icon-filter-3:before{content:'\E32A'}.t-icon-filter-clear-filled:before{content:'\E32B'}.t-icon-filter-clear:before{content:'\E32C'}.t-icon-filter-filled:before{content:'\E32D'}.t-icon-filter-off-filled:before{content:'\E32E'}.t-icon-filter-off:before{content:'\E32F'}.t-icon-filter-sort-filled:before{content:'\E330'}.t-icon-filter-sort:before{content:'\E331'}.t-icon-filter:before{content:'\E332'}.t-icon-fingerprint-1:before{content:'\E333'}.t-icon-fingerprint-2:before{content:'\E334'}.t-icon-fingerprint-3:before{content:'\E335'}.t-icon-fingerprint:before{content:'\E336'}.t-icon-fish-filled:before{content:'\E337'}.t-icon-fish:before{content:'\E338'}.t-icon-flag-1-filled:before{content:'\E339'}.t-icon-flag-1:before{content:'\E33A'}.t-icon-flag-2-filled:before{content:'\E33B'}.t-icon-flag-2:before{content:'\E33C'}.t-icon-flag-3-filled:before{content:'\E33D'}.t-icon-flag-3:before{content:'\E33E'}.t-icon-flag-4-filled:before{content:'\E33F'}.t-icon-flag-4:before{content:'\E340'}.t-icon-flag-filled:before{content:'\E341'}.t-icon-flag:before{content:'\E342'}.t-icon-flashlight-filled:before{content:'\E343'}.t-icon-flashlight:before{content:'\E344'}.t-icon-flight-landing-filled:before{content:'\E345'}.t-icon-flight-landing:before{content:'\E346'}.t-icon-flight-takeoff-filled:before{content:'\E347'}.t-icon-flight-takeoff:before{content:'\E348'}.t-icon-flip-smiling-face-filled:before{content:'\E349'}.t-icon-flip-smiling-face:before{content:'\E34A'}.t-icon-flip-to-back-filled:before{content:'\E34B'}.t-icon-flip-to-back:before{content:'\E34C'}.t-icon-flip-to-front-filled:before{content:'\E34D'}.t-icon-flip-to-front:before{content:'\E34E'}.t-icon-focus-filled:before{content:'\E34F'}.t-icon-focus:before{content:'\E350'}.t-icon-fog-filled:before{content:'\E351'}.t-icon-fog-night-filled:before{content:'\E352'}.t-icon-fog-night:before{content:'\E353'}.t-icon-fog-sunny-filled:before{content:'\E354'}.t-icon-fog-sunny:before{content:'\E355'}.t-icon-fog:before{content:'\E356'}.t-icon-folder-1-filled:before{content:'\E357'}.t-icon-folder-1:before{content:'\E358'}.t-icon-folder-add-1-filled:before{content:'\E359'}.t-icon-folder-add-1:before{content:'\E35A'}.t-icon-folder-add-filled:before{content:'\E35B'}.t-icon-folder-add:before{content:'\E35C'}.t-icon-folder-blocked-filled:before{content:'\E35D'}.t-icon-folder-blocked:before{content:'\E35E'}.t-icon-folder-details-filled:before{content:'\E35F'}.t-icon-folder-details:before{content:'\E360'}.t-icon-folder-export-filled:before{content:'\E361'}.t-icon-folder-export:before{content:'\E362'}.t-icon-folder-filled:before{content:'\E363'}.t-icon-folder-import-filled:before{content:'\E364'}.t-icon-folder-import:before{content:'\E365'}.t-icon-folder-locked-filled:before{content:'\E366'}.t-icon-folder-locked:before{content:'\E367'}.t-icon-folder-minus-filled:before{content:'\E368'}.t-icon-folder-minus:before{content:'\E369'}.t-icon-folder-move-filled:before{content:'\E36A'}.t-icon-folder-move:before{content:'\E36B'}.t-icon-folder-off-filled:before{content:'\E36C'}.t-icon-folder-off:before{content:'\E36D'}.t-icon-folder-open-1-filled:before{content:'\E36E'}.t-icon-folder-open-1:before{content:'\E36F'}.t-icon-folder-open-filled:before{content:'\E370'}.t-icon-folder-open:before{content:'\E371'}.t-icon-folder-search-filled:before{content:'\E372'}.t-icon-folder-search:before{content:'\E373'}.t-icon-folder-setting-filled:before{content:'\E374'}.t-icon-folder-setting:before{content:'\E375'}.t-icon-folder-shared-filled:before{content:'\E376'}.t-icon-folder-shared:before{content:'\E377'}.t-icon-folder-unlocked-filled:before{content:'\E378'}.t-icon-folder-unlocked:before{content:'\E379'}.t-icon-folder-zip-filled:before{content:'\E37A'}.t-icon-folder-zip:before{content:'\E37B'}.t-icon-folder:before{content:'\E37C'}.t-icon-forest-filled:before{content:'\E37D'}.t-icon-forest:before{content:'\E37E'}.t-icon-fork-filled:before{content:'\E37F'}.t-icon-fork:before{content:'\E380'}.t-icon-form-filled:before{content:'\E381'}.t-icon-form:before{content:'\E382'}.t-icon-format-horizontal-align-bottom:before{content:'\E383'}.t-icon-format-horizontal-align-center:before{content:'\E384'}.t-icon-format-horizontal-align-top:before{content:'\E385'}.t-icon-format-vertical-align-center:before{content:'\E386'}.t-icon-format-vertical-align-left:before{content:'\E387'}.t-icon-format-vertical-align-right:before{content:'\E388'}.t-icon-forward-filled:before{content:'\E389'}.t-icon-forward:before{content:'\E38A'}.t-icon-frame-1-filled:before{content:'\E38B'}.t-icon-frame-1:before{content:'\E38C'}.t-icon-frame-filled:before{content:'\E38D'}.t-icon-frame:before{content:'\E38E'}.t-icon-fries-filled:before{content:'\E38F'}.t-icon-fries:before{content:'\E390'}.t-icon-fullscreen-1:before{content:'\E391'}.t-icon-fullscreen-2:before{content:'\E392'}.t-icon-fullscreen-exit-1:before{content:'\E393'}.t-icon-fullscreen-exit:before{content:'\E394'}.t-icon-fullscreen:before{content:'\E395'}.t-icon-function-curve:before{content:'\E396'}.t-icon-functions-1:before{content:'\E397'}.t-icon-functions:before{content:'\E398'}.t-icon-gamepad-1-filled:before{content:'\E399'}.t-icon-gamepad-1:before{content:'\E39A'}.t-icon-gamepad-filled:before{content:'\E39B'}.t-icon-gamepad:before{content:'\E39C'}.t-icon-gamma:before{content:'\E39D'}.t-icon-garlic-filled:before{content:'\E39E'}.t-icon-garlic:before{content:'\E39F'}.t-icon-gender-female:before{content:'\E3A0'}.t-icon-gender-male:before{content:'\E3A1'}.t-icon-gesture-applause-filled:before{content:'\E3A2'}.t-icon-gesture-applause:before{content:'\E3A3'}.t-icon-gesture-click-filled:before{content:'\E3A4'}.t-icon-gesture-click:before{content:'\E3A5'}.t-icon-gesture-down-filled:before{content:'\E3A6'}.t-icon-gesture-down:before{content:'\E3A7'}.t-icon-gesture-expansion-filled:before{content:'\E3A8'}.t-icon-gesture-expansion:before{content:'\E3A9'}.t-icon-gesture-left-filled:before{content:'\E3AA'}.t-icon-gesture-left-slip-filled:before{content:'\E3AB'}.t-icon-gesture-left-slip:before{content:'\E3AC'}.t-icon-gesture-left:before{content:'\E3AD'}.t-icon-gesture-open-filled:before{content:'\E3AE'}.t-icon-gesture-open:before{content:'\E3AF'}.t-icon-gesture-pray-filled:before{content:'\E3B0'}.t-icon-gesture-pray:before{content:'\E3B1'}.t-icon-gesture-press-filled:before{content:'\E3B2'}.t-icon-gesture-press:before{content:'\E3B3'}.t-icon-gesture-ranslation-filled:before{content:'\E3B4'}.t-icon-gesture-ranslation:before{content:'\E3B5'}.t-icon-gesture-right-filled:before{content:'\E3B6'}.t-icon-gesture-right-slip-filled:before{content:'\E3B7'}.t-icon-gesture-right-slip:before{content:'\E3B8'}.t-icon-gesture-right:before{content:'\E3B9'}.t-icon-gesture-slide-left-and-right-filled:before{content:'\E3BA'}.t-icon-gesture-slide-left-and-right:before{content:'\E3BB'}.t-icon-gesture-slide-up-filled:before{content:'\E3BC'}.t-icon-gesture-slide-up:before{content:'\E3BD'}.t-icon-gesture-typing-filled:before{content:'\E3BE'}.t-icon-gesture-typing:before{content:'\E3BF'}.t-icon-gesture-up-and-down-filled:before{content:'\E3C0'}.t-icon-gesture-up-and-down:before{content:'\E3C1'}.t-icon-gesture-up-filled:before{content:'\E3C2'}.t-icon-gesture-up:before{content:'\E3C3'}.t-icon-gesture-wipe-down-filled:before{content:'\E3C4'}.t-icon-gesture-wipe-down:before{content:'\E3C5'}.t-icon-gift-filled:before{content:'\E3C6'}.t-icon-gift:before{content:'\E3C7'}.t-icon-giggle-filled:before{content:'\E3C8'}.t-icon-giggle:before{content:'\E3C9'}.t-icon-git-branch-filled:before{content:'\E3CA'}.t-icon-git-branch:before{content:'\E3CB'}.t-icon-git-commit-filled:before{content:'\E3CC'}.t-icon-git-commit:before{content:'\E3CD'}.t-icon-git-merge-filled:before{content:'\E3CE'}.t-icon-git-merge:before{content:'\E3CF'}.t-icon-git-pull-request-filled:before{content:'\E3D0'}.t-icon-git-pull-request:before{content:'\E3D1'}.t-icon-git-repository-commits-filled:before{content:'\E3D2'}.t-icon-git-repository-commits:before{content:'\E3D3'}.t-icon-git-repository-filled:before{content:'\E3D4'}.t-icon-git-repository-private-filled:before{content:'\E3D5'}.t-icon-git-repository-private:before{content:'\E3D6'}.t-icon-git-repository:before{content:'\E3D7'}.t-icon-gps-filled:before{content:'\E3D8'}.t-icon-gps:before{content:'\E3D9'}.t-icon-grape-filled:before{content:'\E3DA'}.t-icon-grape:before{content:'\E3DB'}.t-icon-greater-than-or-equal:before{content:'\E3DC'}.t-icon-greater-than:before{content:'\E3DD'}.t-icon-green-onion:before{content:'\E3DE'}.t-icon-grid-add-filled:before{content:'\E3DF'}.t-icon-grid-add:before{content:'\E3E0'}.t-icon-grid-view-filled:before{content:'\E3E1'}.t-icon-grid-view:before{content:'\E3E2'}.t-icon-guitar-filled:before{content:'\E3E3'}.t-icon-guitar:before{content:'\E3E4'}.t-icon-hamburger-filled:before{content:'\E3E5'}.t-icon-hamburger:before{content:'\E3E6'}.t-icon-happy-filled:before{content:'\E3E7'}.t-icon-happy:before{content:'\E3E8'}.t-icon-hard-disk-storage-filled:before{content:'\E3E9'}.t-icon-hard-disk-storage:before{content:'\E3EA'}.t-icon-hard-drive-filled:before{content:'\E3EB'}.t-icon-hard-drive:before{content:'\E3EC'}.t-icon-hashtag:before{content:'\E3ED'}.t-icon-hd-filled:before{content:'\E3EE'}.t-icon-hd:before{content:'\E3EF'}.t-icon-heart-filled:before{content:'\E3F0'}.t-icon-heart:before{content:'\E3F1'}.t-icon-help-circle-filled:before{content:'\E3F2'}.t-icon-help-circle:before{content:'\E3F3'}.t-icon-help-rectangle-filled:before{content:'\E3F4'}.t-icon-help-rectangle:before{content:'\E3F5'}.t-icon-help:before{content:'\E3F6'}.t-icon-highlight-1-filled:before{content:'\E3F7'}.t-icon-highlight-1:before{content:'\E3F8'}.t-icon-highlight:before{content:'\E3F9'}.t-icon-history-setting:before{content:'\E3FA'}.t-icon-history:before{content:'\E3FB'}.t-icon-home-filled:before{content:'\E3FC'}.t-icon-home:before{content:'\E3FD'}.t-icon-horizontal-filled:before{content:'\E3FE'}.t-icon-horizontal:before{content:'\E3FF'}.t-icon-hospital-1-filled:before{content:'\E400'}.t-icon-hospital-1:before{content:'\E401'}.t-icon-hospital-filled:before{content:'\E402'}.t-icon-hospital:before{content:'\E403'}.t-icon-hotspot-wave-filled:before{content:'\E404'}.t-icon-hotspot-wave:before{content:'\E405'}.t-icon-hourglass-filled:before{content:'\E406'}.t-icon-hourglass:before{content:'\E407'}.t-icon-houses-1-filled:before{content:'\E408'}.t-icon-houses-1:before{content:'\E409'}.t-icon-houses-2-filled:before{content:'\E40A'}.t-icon-houses-2:before{content:'\E40B'}.t-icon-houses-filled:before{content:'\E40C'}.t-icon-houses:before{content:'\E40D'}.t-icon-html5-filled:before{content:'\E40E'}.t-icon-html5:before{content:'\E40F'}.t-icon-https-filled:before{content:'\E410'}.t-icon-https:before{content:'\E411'}.t-icon-ice-cream-filled:before{content:'\E412'}.t-icon-ice-cream:before{content:'\E413'}.t-icon-icon-filled:before{content:'\E414'}.t-icon-icon:before{content:'\E415'}.t-icon-image-1-filled:before{content:'\E416'}.t-icon-image-1:before{content:'\E417'}.t-icon-image-add-filled:before{content:'\E418'}.t-icon-image-add:before{content:'\E419'}.t-icon-image-edit-filled:before{content:'\E41A'}.t-icon-image-edit:before{content:'\E41B'}.t-icon-image-error-filled:before{content:'\E41C'}.t-icon-image-error:before{content:'\E41D'}.t-icon-image-filled:before{content:'\E41E'}.t-icon-image-off-filled:before{content:'\E41F'}.t-icon-image-off:before{content:'\E420'}.t-icon-image-search-filled:before{content:'\E421'}.t-icon-image-search:before{content:'\E422'}.t-icon-image:before{content:'\E423'}.t-icon-indent-left:before{content:'\E424'}.t-icon-indent-right:before{content:'\E425'}.t-icon-indicator-filled:before{content:'\E426'}.t-icon-indicator:before{content:'\E427'}.t-icon-info-circle-filled:before{content:'\E428'}.t-icon-info-circle:before{content:'\E429'}.t-icon-ink-filled:before{content:'\E42A'}.t-icon-ink:before{content:'\E42B'}.t-icon-install-desktop-filled:before{content:'\E42C'}.t-icon-install-desktop:before{content:'\E42D'}.t-icon-install-filled:before{content:'\E42E'}.t-icon-install-mobile-filled:before{content:'\E42F'}.t-icon-install-mobile:before{content:'\E430'}.t-icon-install:before{content:'\E431'}.t-icon-institution-checked-filled:before{content:'\E432'}.t-icon-institution-checked:before{content:'\E433'}.t-icon-institution-filled:before{content:'\E434'}.t-icon-institution:before{content:'\E435'}.t-icon-internet-filled:before{content:'\E436'}.t-icon-internet:before{content:'\E437'}.t-icon-ipod-filled:before{content:'\E438'}.t-icon-ipod:before{content:'\E439'}.t-icon-joyful-filled:before{content:'\E43A'}.t-icon-joyful:before{content:'\E43B'}.t-icon-jump-double:before{content:'\E43C'}.t-icon-jump-off:before{content:'\E43D'}.t-icon-jump:before{content:'\E43E'}.t-icon-key-filled:before{content:'\E43F'}.t-icon-key:before{content:'\E440'}.t-icon-keyboard-filled:before{content:'\E441'}.t-icon-keyboard:before{content:'\E442'}.t-icon-laptop-filled:before{content:'\E443'}.t-icon-laptop:before{content:'\E444'}.t-icon-layers-filled:before{content:'\E445'}.t-icon-layers:before{content:'\E446'}.t-icon-layout-filled:before{content:'\E447'}.t-icon-layout:before{content:'\E448'}.t-icon-leaderboard-filled:before{content:'\E449'}.t-icon-leaderboard:before{content:'\E44A'}.t-icon-lemon-filled:before{content:'\E44B'}.t-icon-lemon-slice-filled:before{content:'\E44C'}.t-icon-lemon-slice:before{content:'\E44D'}.t-icon-lemon:before{content:'\E44E'}.t-icon-less-than-or-equal:before{content:'\E44F'}.t-icon-less-than:before{content:'\E450'}.t-icon-letters-a:before{content:'\E451'}.t-icon-letters-b:before{content:'\E452'}.t-icon-letters-c:before{content:'\E453'}.t-icon-letters-d:before{content:'\E454'}.t-icon-letters-e:before{content:'\E455'}.t-icon-letters-f:before{content:'\E456'}.t-icon-letters-g:before{content:'\E457'}.t-icon-letters-h:before{content:'\E458'}.t-icon-letters-i:before{content:'\E459'}.t-icon-letters-j:before{content:'\E45A'}.t-icon-letters-k:before{content:'\E45B'}.t-icon-letters-l:before{content:'\E45C'}.t-icon-letters-m:before{content:'\E45D'}.t-icon-letters-n:before{content:'\E45E'}.t-icon-letters-o:before{content:'\E45F'}.t-icon-letters-p:before{content:'\E460'}.t-icon-letters-q:before{content:'\E461'}.t-icon-letters-r:before{content:'\E462'}.t-icon-letters-s:before{content:'\E463'}.t-icon-letters-t:before{content:'\E464'}.t-icon-letters-u:before{content:'\E465'}.t-icon-letters-v:before{content:'\E466'}.t-icon-letters-w:before{content:'\E467'}.t-icon-letters-x:before{content:'\E468'}.t-icon-letters-y:before{content:'\E469'}.t-icon-letters-z:before{content:'\E46A'}.t-icon-lightbulb-circle-filled:before{content:'\E46B'}.t-icon-lightbulb-circle:before{content:'\E46C'}.t-icon-lightbulb-filled:before{content:'\E46D'}.t-icon-lightbulb:before{content:'\E46E'}.t-icon-lighthouse-1-filled:before{content:'\E46F'}.t-icon-lighthouse-1:before{content:'\E470'}.t-icon-lighthouse-2-filled:before{content:'\E471'}.t-icon-lighthouse-2:before{content:'\E472'}.t-icon-lighthouse-filled:before{content:'\E473'}.t-icon-lighthouse:before{content:'\E474'}.t-icon-lighting-circle-filled:before{content:'\E475'}.t-icon-lighting-circle:before{content:'\E476'}.t-icon-line-height:before{content:'\E477'}.t-icon-link-1:before{content:'\E478'}.t-icon-link-unlink:before{content:'\E479'}.t-icon-link:before{content:'\E47A'}.t-icon-liquor-filled:before{content:'\E47B'}.t-icon-liquor:before{content:'\E47C'}.t-icon-list-numbered:before{content:'\E47D'}.t-icon-list:before{content:'\E47E'}.t-icon-load:before{content:'\E47F'}.t-icon-loading:before{content:'\E480'}.t-icon-location-1-filled:before{content:'\E481'}.t-icon-location-1:before{content:'\E482'}.t-icon-location-enlargement-filled:before{content:'\E483'}.t-icon-location-enlargement:before{content:'\E484'}.t-icon-location-error-filled:before{content:'\E485'}.t-icon-location-error:before{content:'\E486'}.t-icon-location-filled:before{content:'\E487'}.t-icon-location-parking-place-filled:before{content:'\E488'}.t-icon-location-parking-place:before{content:'\E489'}.t-icon-location-reduction-filled:before{content:'\E48A'}.t-icon-location-reduction:before{content:'\E48B'}.t-icon-location-setting-filled:before{content:'\E48C'}.t-icon-location-setting:before{content:'\E48D'}.t-icon-location:before{content:'\E48E'}.t-icon-lock-off-filled:before{content:'\E48F'}.t-icon-lock-off:before{content:'\E490'}.t-icon-lock-on-filled:before{content:'\E491'}.t-icon-lock-on:before{content:'\E492'}.t-icon-lock-time-filled:before{content:'\E493'}.t-icon-lock-time:before{content:'\E494'}.t-icon-login:before{content:'\E495'}.t-icon-logo-adobe-illustrate-filled:before{content:'\E496'}.t-icon-logo-adobe-illustrate:before{content:'\E497'}.t-icon-logo-adobe-lightroom-filled:before{content:'\E498'}.t-icon-logo-adobe-lightroom:before{content:'\E499'}.t-icon-logo-adobe-photoshop-filled:before{content:'\E49A'}.t-icon-logo-adobe-photoshop:before{content:'\E49B'}.t-icon-logo-alipay-filled:before{content:'\E49C'}.t-icon-logo-alipay:before{content:'\E49D'}.t-icon-logo-android-filled:before{content:'\E49E'}.t-icon-logo-android:before{content:'\E49F'}.t-icon-logo-apple-filled:before{content:'\E4A0'}.t-icon-logo-apple:before{content:'\E4A1'}.t-icon-logo-behance-filled:before{content:'\E4A2'}.t-icon-logo-behance:before{content:'\E4A3'}.t-icon-logo-chrome-filled:before{content:'\E4A4'}.t-icon-logo-chrome:before{content:'\E4A5'}.t-icon-logo-cinema4d-filled:before{content:'\E4A6'}.t-icon-logo-cinema4d:before{content:'\E4A7'}.t-icon-logo-cnb-filled:before{content:'\E4A8'}.t-icon-logo-cnb:before{content:'\E4A9'}.t-icon-logo-codepen:before{content:'\E4AA'}.t-icon-logo-codesandbox:before{content:'\E4AB'}.t-icon-logo-dribbble-filled:before{content:'\E4AC'}.t-icon-logo-dribbble:before{content:'\E4AD'}.t-icon-logo-facebook-filled:before{content:'\E4AE'}.t-icon-logo-facebook:before{content:'\E4AF'}.t-icon-logo-figma-filled:before{content:'\E4B0'}.t-icon-logo-figma:before{content:'\E4B1'}.t-icon-logo-framer-filled:before{content:'\E4B2'}.t-icon-logo-framer:before{content:'\E4B3'}.t-icon-logo-github-filled:before{content:'\E4B4'}.t-icon-logo-github:before{content:'\E4B5'}.t-icon-logo-gitlab-filled:before{content:'\E4B6'}.t-icon-logo-gitlab:before{content:'\E4B7'}.t-icon-logo-ie-filled:before{content:'\E4B8'}.t-icon-logo-ie:before{content:'\E4B9'}.t-icon-logo-instagram-filled:before{content:'\E4BA'}.t-icon-logo-instagram:before{content:'\E4BB'}.t-icon-logo-miniprogram-filled:before{content:'\E4BC'}.t-icon-logo-miniprogram:before{content:'\E4BD'}.t-icon-logo-qq-filled:before{content:'\E4BE'}.t-icon-logo-qq:before{content:'\E4BF'}.t-icon-logo-twitter-filled:before{content:'\E4C0'}.t-icon-logo-twitter:before{content:'\E4C1'}.t-icon-logo-wechat-stroke-filled:before{content:'\E4C2'}.t-icon-logo-wechat-stroke:before{content:'\E4C3'}.t-icon-logo-wechatpay-filled:before{content:'\E4C4'}.t-icon-logo-wechatpay:before{content:'\E4C5'}.t-icon-logo-wecom:before{content:'\E4C6'}.t-icon-logo-windows-filled:before{content:'\E4C7'}.t-icon-logo-windows:before{content:'\E4C8'}.t-icon-logo-youtube-filled:before{content:'\E4C9'}.t-icon-logo-youtube:before{content:'\E4CA'}.t-icon-logout:before{content:'\E4CB'}.t-icon-look-around-filled:before{content:'\E4CC'}.t-icon-look-around:before{content:'\E4CD'}.t-icon-loudspeaker-filled:before{content:'\E4CE'}.t-icon-loudspeaker:before{content:'\E4CF'}.t-icon-mail-filled:before{content:'\E4D0'}.t-icon-mail:before{content:'\E4D1'}.t-icon-map-3d-filled:before{content:'\E4D2'}.t-icon-map-3d:before{content:'\E4D3'}.t-icon-map-add-filled:before{content:'\E4D4'}.t-icon-map-add:before{content:'\E4D5'}.t-icon-map-aiming-filled:before{content:'\E4D6'}.t-icon-map-aiming:before{content:'\E4D7'}.t-icon-map-blocked-filled:before{content:'\E4D8'}.t-icon-map-blocked:before{content:'\E4D9'}.t-icon-map-bubble-filled:before{content:'\E4DA'}.t-icon-map-bubble:before{content:'\E4DB'}.t-icon-map-cancel-filled:before{content:'\E4DC'}.t-icon-map-cancel:before{content:'\E4DD'}.t-icon-map-chat-filled:before{content:'\E4DE'}.t-icon-map-chat:before{content:'\E4DF'}.t-icon-map-checked-filled:before{content:'\E4E0'}.t-icon-map-checked:before{content:'\E4E1'}.t-icon-map-collection-filled:before{content:'\E4E2'}.t-icon-map-collection:before{content:'\E4E3'}.t-icon-map-connection-filled:before{content:'\E4E4'}.t-icon-map-connection:before{content:'\E4E5'}.t-icon-map-distance-filled:before{content:'\E4E6'}.t-icon-map-distance:before{content:'\E4E7'}.t-icon-map-double-filled:before{content:'\E4E8'}.t-icon-map-double:before{content:'\E4E9'}.t-icon-map-edit-filled:before{content:'\E4EA'}.t-icon-map-edit:before{content:'\E4EB'}.t-icon-map-filled:before{content:'\E4EC'}.t-icon-map-grid-filled:before{content:'\E4ED'}.t-icon-map-grid:before{content:'\E4EE'}.t-icon-map-information-1-filled:before{content:'\E4EF'}.t-icon-map-information-1:before{content:'\E4F0'}.t-icon-map-information-2-filled:before{content:'\E4F1'}.t-icon-map-information-2:before{content:'\E4F2'}.t-icon-map-information-filled:before{content:'\E4F3'}.t-icon-map-information:before{content:'\E4F4'}.t-icon-map-location-filled:before{content:'\E4F5'}.t-icon-map-location:before{content:'\E4F6'}.t-icon-map-locked-filled:before{content:'\E4F7'}.t-icon-map-locked:before{content:'\E4F8'}.t-icon-map-marked-filled:before{content:'\E4F9'}.t-icon-map-marked:before{content:'\E4FA'}.t-icon-map-navigation-filled:before{content:'\E4FB'}.t-icon-map-navigation:before{content:'\E4FC'}.t-icon-map-outline-filled:before{content:'\E4FD'}.t-icon-map-outline:before{content:'\E4FE'}.t-icon-map-route-planning-filled:before{content:'\E4FF'}.t-icon-map-route-planning:before{content:'\E500'}.t-icon-map-ruler-filled:before{content:'\E501'}.t-icon-map-ruler:before{content:'\E502'}.t-icon-map-safety-filled:before{content:'\E503'}.t-icon-map-safety:before{content:'\E504'}.t-icon-map-search-1-filled:before{content:'\E505'}.t-icon-map-search-1:before{content:'\E506'}.t-icon-map-search-filled:before{content:'\E507'}.t-icon-map-search:before{content:'\E508'}.t-icon-map-setting-filled:before{content:'\E509'}.t-icon-map-setting:before{content:'\E50A'}.t-icon-map-unlocked-filled:before{content:'\E50B'}.t-icon-map-unlocked:before{content:'\E50C'}.t-icon-map:before{content:'\E50D'}.t-icon-mark-as-unread-filled:before{content:'\E50E'}.t-icon-mark-as-unread:before{content:'\E50F'}.t-icon-markup-filled:before{content:'\E510'}.t-icon-markup:before{content:'\E511'}.t-icon-mathematics-filled:before{content:'\E512'}.t-icon-mathematics:before{content:'\E513'}.t-icon-measurement-1-filled:before{content:'\E514'}.t-icon-measurement-1:before{content:'\E515'}.t-icon-measurement-2-filled:before{content:'\E516'}.t-icon-measurement-2:before{content:'\E517'}.t-icon-measurement-filled:before{content:'\E518'}.t-icon-measurement:before{content:'\E519'}.t-icon-meat-pepper-filled:before{content:'\E51A'}.t-icon-meat-pepper:before{content:'\E51B'}.t-icon-media-library-filled:before{content:'\E51C'}.t-icon-media-library:before{content:'\E51D'}.t-icon-member-filled:before{content:'\E51E'}.t-icon-member:before{content:'\E51F'}.t-icon-menu-application:before{content:'\E520'}.t-icon-menu-filled:before{content:'\E521'}.t-icon-menu-fold:before{content:'\E522'}.t-icon-menu-unfold:before{content:'\E523'}.t-icon-menu:before{content:'\E524'}.t-icon-merge-cells-filled:before{content:'\E525'}.t-icon-merge-cells:before{content:'\E526'}.t-icon-microphone-1-filled:before{content:'\E527'}.t-icon-microphone-1:before{content:'\E528'}.t-icon-microphone-2-filled:before{content:'\E529'}.t-icon-microphone-2:before{content:'\E52A'}.t-icon-microphone-filled:before{content:'\E52B'}.t-icon-microphone:before{content:'\E52C'}.t-icon-milk-filled:before{content:'\E52D'}.t-icon-milk:before{content:'\E52E'}.t-icon-minus-circle-filled:before{content:'\E52F'}.t-icon-minus-circle:before{content:'\E530'}.t-icon-minus-rectangle-filled:before{content:'\E531'}.t-icon-minus-rectangle:before{content:'\E532'}.t-icon-minus:before{content:'\E533'}.t-icon-mirror-filled:before{content:'\E534'}.t-icon-mirror:before{content:'\E535'}.t-icon-mobile-blocked-filled:before{content:'\E536'}.t-icon-mobile-blocked:before{content:'\E537'}.t-icon-mobile-filled:before{content:'\E538'}.t-icon-mobile-list-filled:before{content:'\E539'}.t-icon-mobile-list:before{content:'\E53A'}.t-icon-mobile-navigation-filled:before{content:'\E53B'}.t-icon-mobile-navigation:before{content:'\E53C'}.t-icon-mobile-shortcut-filled:before{content:'\E53D'}.t-icon-mobile-shortcut:before{content:'\E53E'}.t-icon-mobile-vibrate-filled:before{content:'\E53F'}.t-icon-mobile-vibrate:before{content:'\E540'}.t-icon-mobile:before{content:'\E541'}.t-icon-mode-dark-filled:before{content:'\E542'}.t-icon-mode-dark:before{content:'\E543'}.t-icon-mode-light-filled:before{content:'\E544'}.t-icon-mode-light:before{content:'\E545'}.t-icon-module-filled:before{content:'\E546'}.t-icon-module:before{content:'\E547'}.t-icon-money-filled:before{content:'\E548'}.t-icon-money:before{content:'\E549'}.t-icon-monument-filled:before{content:'\E54A'}.t-icon-monument:before{content:'\E54B'}.t-icon-moon-fall-filled:before{content:'\E54C'}.t-icon-moon-fall:before{content:'\E54D'}.t-icon-moon-filled:before{content:'\E54E'}.t-icon-moon-rising-filled:before{content:'\E54F'}.t-icon-moon-rising:before{content:'\E550'}.t-icon-moon:before{content:'\E551'}.t-icon-more:before{content:'\E552'}.t-icon-mosque-1-filled:before{content:'\E553'}.t-icon-mosque-1:before{content:'\E554'}.t-icon-mosque-filled:before{content:'\E555'}.t-icon-mosque:before{content:'\E556'}.t-icon-mouse-filled:before{content:'\E557'}.t-icon-mouse:before{content:'\E558'}.t-icon-move-1:before{content:'\E559'}.t-icon-move:before{content:'\E55A'}.t-icon-movie-clapper-filled:before{content:'\E55B'}.t-icon-movie-clapper:before{content:'\E55C'}.t-icon-multiply:before{content:'\E55D'}.t-icon-museum-1-filled:before{content:'\E55E'}.t-icon-museum-1:before{content:'\E55F'}.t-icon-museum-2-filled:before{content:'\E560'}.t-icon-museum-2:before{content:'\E561'}.t-icon-museum-filled:before{content:'\E562'}.t-icon-museum:before{content:'\E563'}.t-icon-mushroom-1-filled:before{content:'\E564'}.t-icon-mushroom-1:before{content:'\E565'}.t-icon-mushroom-filled:before{content:'\E566'}.t-icon-mushroom:before{content:'\E567'}.t-icon-music-1-filled:before{content:'\E568'}.t-icon-music-1:before{content:'\E569'}.t-icon-music-2-filled:before{content:'\E56A'}.t-icon-music-2:before{content:'\E56B'}.t-icon-music-filled:before{content:'\E56C'}.t-icon-music-rectangle-add-filled:before{content:'\E56D'}.t-icon-music-rectangle-add:before{content:'\E56E'}.t-icon-music:before{content:'\E56F'}.t-icon-navigation-arrow-filled:before{content:'\E570'}.t-icon-navigation-arrow:before{content:'\E571'}.t-icon-next-filled:before{content:'\E572'}.t-icon-next:before{content:'\E573'}.t-icon-no-expression-filled:before{content:'\E574'}.t-icon-no-expression:before{content:'\E575'}.t-icon-noodle-filled:before{content:'\E576'}.t-icon-noodle:before{content:'\E577'}.t-icon-notification-add-filled:before{content:'\E578'}.t-icon-notification-add:before{content:'\E579'}.t-icon-notification-circle-filled:before{content:'\E57A'}.t-icon-notification-circle:before{content:'\E57B'}.t-icon-notification-error-filled:before{content:'\E57C'}.t-icon-notification-error:before{content:'\E57D'}.t-icon-notification-filled:before{content:'\E57E'}.t-icon-notification:before{content:'\E57F'}.t-icon-numbers-0-1:before{content:'\E580'}.t-icon-numbers-0:before{content:'\E581'}.t-icon-numbers-1-1:before{content:'\E582'}.t-icon-numbers-1:before{content:'\E583'}.t-icon-numbers-2-1:before{content:'\E584'}.t-icon-numbers-2:before{content:'\E585'}.t-icon-numbers-3-1:before{content:'\E586'}.t-icon-numbers-3:before{content:'\E587'}.t-icon-numbers-4-1:before{content:'\E588'}.t-icon-numbers-4:before{content:'\E589'}.t-icon-numbers-5-1:before{content:'\E58A'}.t-icon-numbers-5:before{content:'\E58B'}.t-icon-numbers-6-1:before{content:'\E58C'}.t-icon-numbers-6:before{content:'\E58D'}.t-icon-numbers-7-1:before{content:'\E58E'}.t-icon-numbers-7:before{content:'\E58F'}.t-icon-numbers-8-1:before{content:'\E590'}.t-icon-numbers-8:before{content:'\E591'}.t-icon-numbers-9-1:before{content:'\E592'}.t-icon-numbers-9:before{content:'\E593'}.t-icon-nut-filled:before{content:'\E594'}.t-icon-nut:before{content:'\E595'}.t-icon-object-storage:before{content:'\E596'}.t-icon-open-mouth-filled:before{content:'\E597'}.t-icon-open-mouth:before{content:'\E598'}.t-icon-opera-filled:before{content:'\E599'}.t-icon-opera:before{content:'\E59A'}.t-icon-order-adjustment-column:before{content:'\E59B'}.t-icon-order-ascending:before{content:'\E59C'}.t-icon-order-descending:before{content:'\E59D'}.t-icon-outbox-filled:before{content:'\E59E'}.t-icon-outbox:before{content:'\E59F'}.t-icon-page-first:before{content:'\E5A0'}.t-icon-page-head-filled:before{content:'\E5A1'}.t-icon-page-head:before{content:'\E5A2'}.t-icon-page-last:before{content:'\E5A3'}.t-icon-palace-1-filled:before{content:'\E5A4'}.t-icon-palace-1:before{content:'\E5A5'}.t-icon-palace-2-filled:before{content:'\E5A6'}.t-icon-palace-2:before{content:'\E5A7'}.t-icon-palace-3-filled:before{content:'\E5A8'}.t-icon-palace-3:before{content:'\E5A9'}.t-icon-palace-4-filled:before{content:'\E5AA'}.t-icon-palace-4:before{content:'\E5AB'}.t-icon-palace-filled:before{content:'\E5AC'}.t-icon-palace:before{content:'\E5AD'}.t-icon-palette-1-filled:before{content:'\E5AE'}.t-icon-palette-1:before{content:'\E5AF'}.t-icon-palette-filled:before{content:'\E5B0'}.t-icon-palette:before{content:'\E5B1'}.t-icon-panorama-horizontal-filled:before{content:'\E5B2'}.t-icon-panorama-horizontal:before{content:'\E5B3'}.t-icon-panorama-vertical-filled:before{content:'\E5B4'}.t-icon-panorama-vertical:before{content:'\E5B5'}.t-icon-pantone-filled:before{content:'\E5B6'}.t-icon-pantone:before{content:'\E5B7'}.t-icon-parabola:before{content:'\E5B8'}.t-icon-parentheses:before{content:'\E5B9'}.t-icon-paste-filled:before{content:'\E5BA'}.t-icon-paste:before{content:'\E5BB'}.t-icon-patio-filled:before{content:'\E5BC'}.t-icon-patio:before{content:'\E5BD'}.t-icon-pause-circle-filled:before{content:'\E5BE'}.t-icon-pause-circle-stroke-filled:before{content:'\E5BF'}.t-icon-pause-circle-stroke:before{content:'\E5C0'}.t-icon-pause-circle:before{content:'\E5C1'}.t-icon-pause:before{content:'\E5C2'}.t-icon-pea-filled:before{content:'\E5C3'}.t-icon-pea:before{content:'\E5C4'}.t-icon-peach-filled:before{content:'\E5C5'}.t-icon-peach:before{content:'\E5C6'}.t-icon-pear-filled:before{content:'\E5C7'}.t-icon-pear:before{content:'\E5C8'}.t-icon-pearl-of-the-orient-filled:before{content:'\E5C9'}.t-icon-pearl-of-the-orient:before{content:'\E5CA'}.t-icon-pen-ball-filled:before{content:'\E5CB'}.t-icon-pen-ball:before{content:'\E5CC'}.t-icon-pen-brush-filled:before{content:'\E5CD'}.t-icon-pen-brush:before{content:'\E5CE'}.t-icon-pen-filled:before{content:'\E5CF'}.t-icon-pen-mark-filled:before{content:'\E5D0'}.t-icon-pen-mark:before{content:'\E5D1'}.t-icon-pen-quill-filled:before{content:'\E5D2'}.t-icon-pen-quill:before{content:'\E5D3'}.t-icon-pen:before{content:'\E5D4'}.t-icon-pending-filled:before{content:'\E5D5'}.t-icon-pending:before{content:'\E5D6'}.t-icon-percent:before{content:'\E5D7'}.t-icon-personal-information-filled:before{content:'\E5D8'}.t-icon-personal-information:before{content:'\E5D9'}.t-icon-phone-locked-filled:before{content:'\E5DA'}.t-icon-phone-locked:before{content:'\E5DB'}.t-icon-phone-search-filled:before{content:'\E5DC'}.t-icon-phone-search:before{content:'\E5DD'}.t-icon-pi:before{content:'\E5DE'}.t-icon-piano-filled:before{content:'\E5DF'}.t-icon-piano:before{content:'\E5E0'}.t-icon-pin-filled:before{content:'\E5E1'}.t-icon-pin:before{content:'\E5E2'}.t-icon-play-circle-filled:before{content:'\E5E3'}.t-icon-play-circle-stroke-add-filled:before{content:'\E5E4'}.t-icon-play-circle-stroke-add:before{content:'\E5E5'}.t-icon-play-circle-stroke-filled:before{content:'\E5E6'}.t-icon-play-circle-stroke:before{content:'\E5E7'}.t-icon-play-circle:before{content:'\E5E8'}.t-icon-play-demo-filled:before{content:'\E5E9'}.t-icon-play-demo:before{content:'\E5EA'}.t-icon-play-rectangle-filled:before{content:'\E5EB'}.t-icon-play-rectangle:before{content:'\E5EC'}.t-icon-play:before{content:'\E5ED'}.t-icon-plus:before{content:'\E5EE'}.t-icon-popsicle-filled:before{content:'\E5EF'}.t-icon-popsicle:before{content:'\E5F0'}.t-icon-portrait-filled:before{content:'\E5F1'}.t-icon-portrait:before{content:'\E5F2'}.t-icon-pout-filled:before{content:'\E5F3'}.t-icon-pout:before{content:'\E5F4'}.t-icon-poweroff:before{content:'\E5F5'}.t-icon-precise-monitor:before{content:'\E5F6'}.t-icon-previous-filled:before{content:'\E5F7'}.t-icon-previous:before{content:'\E5F8'}.t-icon-print-filled:before{content:'\E5F9'}.t-icon-print:before{content:'\E5FA'}.t-icon-pumpkin-filled:before{content:'\E5FB'}.t-icon-pumpkin:before{content:'\E5FC'}.t-icon-pyramid-filled:before{content:'\E5FD'}.t-icon-pyramid-maya-filled:before{content:'\E5FE'}.t-icon-pyramid-maya:before{content:'\E5FF'}.t-icon-pyramid:before{content:'\E600'}.t-icon-qrcode:before{content:'\E601'}.t-icon-quadratic:before{content:'\E602'}.t-icon-questionnaire-double-filled:before{content:'\E603'}.t-icon-questionnaire-double:before{content:'\E604'}.t-icon-questionnaire-filled:before{content:'\E605'}.t-icon-questionnaire:before{content:'\E606'}.t-icon-queue-filled:before{content:'\E607'}.t-icon-queue:before{content:'\E608'}.t-icon-quote-filled:before{content:'\E609'}.t-icon-quote:before{content:'\E60A'}.t-icon-radar:before{content:'\E60B'}.t-icon-radio-1-filled:before{content:'\E60C'}.t-icon-radio-1:before{content:'\E60D'}.t-icon-radio-2-filled:before{content:'\E60E'}.t-icon-radio-2:before{content:'\E60F'}.t-icon-radish-filled:before{content:'\E610'}.t-icon-radish:before{content:'\E611'}.t-icon-rain-heavy:before{content:'\E612'}.t-icon-rain-light-filled:before{content:'\E613'}.t-icon-rain-light:before{content:'\E614'}.t-icon-rain-medium:before{content:'\E615'}.t-icon-rainbow:before{content:'\E616'}.t-icon-rectangle-filled:before{content:'\E617'}.t-icon-rectangle:before{content:'\E618'}.t-icon-refresh:before{content:'\E619'}.t-icon-relation:before{content:'\E61A'}.t-icon-relativity-filled:before{content:'\E61B'}.t-icon-relativity:before{content:'\E61C'}.t-icon-remote-wave-filled:before{content:'\E61D'}.t-icon-remote-wave:before{content:'\E61E'}.t-icon-remove:before{content:'\E61F'}.t-icon-replay-filled:before{content:'\E620'}.t-icon-replay:before{content:'\E621'}.t-icon-rice-ball-filled:before{content:'\E622'}.t-icon-rice-ball:before{content:'\E623'}.t-icon-rice-filled:before{content:'\E624'}.t-icon-rice:before{content:'\E625'}.t-icon-roast-filled:before{content:'\E626'}.t-icon-roast:before{content:'\E627'}.t-icon-rocket-filled:before{content:'\E628'}.t-icon-rocket:before{content:'\E629'}.t-icon-rollback:before{content:'\E62A'}.t-icon-rollfront:before{content:'\E62B'}.t-icon-root-list-filled:before{content:'\E62C'}.t-icon-root-list:before{content:'\E62D'}.t-icon-rotate-locked-filled:before{content:'\E62E'}.t-icon-rotate-locked:before{content:'\E62F'}.t-icon-rotate:before{content:'\E630'}.t-icon-rotation:before{content:'\E631'}.t-icon-round-filled:before{content:'\E632'}.t-icon-round:before{content:'\E633'}.t-icon-router-wave-filled:before{content:'\E634'}.t-icon-router-wave:before{content:'\E635'}.t-icon-rss:before{content:'\E636'}.t-icon-ruler-filled:before{content:'\E637'}.t-icon-ruler:before{content:'\E638'}.t-icon-sailing-hotel-filled:before{content:'\E639'}.t-icon-sailing-hotel:before{content:'\E63A'}.t-icon-sandwich-filled:before{content:'\E63B'}.t-icon-sandwich:before{content:'\E63C'}.t-icon-saturation-filled:before{content:'\E63D'}.t-icon-saturation:before{content:'\E63E'}.t-icon-sausage-filled:before{content:'\E63F'}.t-icon-sausage:before{content:'\E640'}.t-icon-save-filled:before{content:'\E641'}.t-icon-save:before{content:'\E642'}.t-icon-saving-pot-filled:before{content:'\E643'}.t-icon-saving-pot:before{content:'\E644'}.t-icon-scan:before{content:'\E645'}.t-icon-screen-4k-filled:before{content:'\E646'}.t-icon-screen-4k:before{content:'\E647'}.t-icon-screencast-filled:before{content:'\E648'}.t-icon-screencast:before{content:'\E649'}.t-icon-screenshot:before{content:'\E64A'}.t-icon-scroll-bar-filled:before{content:'\E64B'}.t-icon-scroll-bar:before{content:'\E64C'}.t-icon-sd-card-1-filled:before{content:'\E64D'}.t-icon-sd-card-1:before{content:'\E64E'}.t-icon-sd-card-filled:before{content:'\E64F'}.t-icon-sd-card:before{content:'\E650'}.t-icon-seal-filled:before{content:'\E651'}.t-icon-seal:before{content:'\E652'}.t-icon-search-error-filled:before{content:'\E653'}.t-icon-search-error:before{content:'\E654'}.t-icon-search-filled:before{content:'\E655'}.t-icon-search:before{content:'\E656'}.t-icon-secured-filled:before{content:'\E657'}.t-icon-secured:before{content:'\E658'}.t-icon-send-cancel-filled:before{content:'\E659'}.t-icon-send-cancel:before{content:'\E65A'}.t-icon-send-filled:before{content:'\E65B'}.t-icon-send:before{content:'\E65C'}.t-icon-sensors-1:before{content:'\E65D'}.t-icon-sensors-2:before{content:'\E65E'}.t-icon-sensors-off:before{content:'\E65F'}.t-icon-sensors:before{content:'\E660'}.t-icon-sequence-filled:before{content:'\E661'}.t-icon-sequence:before{content:'\E662'}.t-icon-serenity-filled:before{content:'\E663'}.t-icon-serenity:before{content:'\E664'}.t-icon-server-filled:before{content:'\E665'}.t-icon-server:before{content:'\E666'}.t-icon-service-filled:before{content:'\E667'}.t-icon-service:before{content:'\E668'}.t-icon-setting-1-filled:before{content:'\E669'}.t-icon-setting-1:before{content:'\E66A'}.t-icon-setting-filled:before{content:'\E66B'}.t-icon-setting:before{content:'\E66C'}.t-icon-share-1-filled:before{content:'\E66D'}.t-icon-share-1:before{content:'\E66E'}.t-icon-share-filled:before{content:'\E66F'}.t-icon-share:before{content:'\E670'}.t-icon-sharpness-filled:before{content:'\E671'}.t-icon-sharpness:before{content:'\E672'}.t-icon-shield-error-filled:before{content:'\E673'}.t-icon-shield-error:before{content:'\E674'}.t-icon-shimen-filled:before{content:'\E675'}.t-icon-shimen:before{content:'\E676'}.t-icon-shop-1-filled:before{content:'\E677'}.t-icon-shop-1:before{content:'\E678'}.t-icon-shop-2-filled:before{content:'\E679'}.t-icon-shop-2:before{content:'\E67A'}.t-icon-shop-3-filled:before{content:'\E67B'}.t-icon-shop-3:before{content:'\E67C'}.t-icon-shop-4-filled:before{content:'\E67D'}.t-icon-shop-4:before{content:'\E67E'}.t-icon-shop-5-filled:before{content:'\E67F'}.t-icon-shop-5:before{content:'\E680'}.t-icon-shop-filled:before{content:'\E681'}.t-icon-shop:before{content:'\E682'}.t-icon-shrimp-filled:before{content:'\E683'}.t-icon-shrimp:before{content:'\E684'}.t-icon-shrink-horizontal:before{content:'\E685'}.t-icon-shrink-vertical:before{content:'\E686'}.t-icon-shutter-filled:before{content:'\E687'}.t-icon-shutter:before{content:'\E688'}.t-icon-shutup-filled:before{content:'\E689'}.t-icon-shutup:before{content:'\E68A'}.t-icon-sim-card-1-filled:before{content:'\E68B'}.t-icon-sim-card-1:before{content:'\E68C'}.t-icon-sim-card-2-filled:before{content:'\E68D'}.t-icon-sim-card-2:before{content:'\E68E'}.t-icon-sim-card-filled:before{content:'\E68F'}.t-icon-sim-card:before{content:'\E690'}.t-icon-sinister-smile-filled:before{content:'\E691'}.t-icon-sinister-smile:before{content:'\E692'}.t-icon-sip-filled:before{content:'\E693'}.t-icon-sip:before{content:'\E694'}.t-icon-sitemap-filled:before{content:'\E695'}.t-icon-sitemap:before{content:'\E696'}.t-icon-slash:before{content:'\E697'}.t-icon-sleep-filled:before{content:'\E698'}.t-icon-sleep:before{content:'\E699'}.t-icon-slice-filled:before{content:'\E69A'}.t-icon-slice:before{content:'\E69B'}.t-icon-slideshow-filled:before{content:'\E69C'}.t-icon-slideshow:before{content:'\E69D'}.t-icon-smile-filled:before{content:'\E69E'}.t-icon-smile:before{content:'\E69F'}.t-icon-sneer-filled:before{content:'\E6A0'}.t-icon-sneer:before{content:'\E6A1'}.t-icon-snowflake:before{content:'\E6A2'}.t-icon-sonic:before{content:'\E6A3'}.t-icon-sound-down-filled:before{content:'\E6A4'}.t-icon-sound-down:before{content:'\E6A5'}.t-icon-sound-filled:before{content:'\E6A6'}.t-icon-sound-high-filled:before{content:'\E6A7'}.t-icon-sound-high:before{content:'\E6A8'}.t-icon-sound-low-filled:before{content:'\E6A9'}.t-icon-sound-low:before{content:'\E6AA'}.t-icon-sound-mute-1-filled:before{content:'\E6AB'}.t-icon-sound-mute-1:before{content:'\E6AC'}.t-icon-sound-mute-filled:before{content:'\E6AD'}.t-icon-sound-mute:before{content:'\E6AE'}.t-icon-sound-up-filled:before{content:'\E6AF'}.t-icon-sound-up:before{content:'\E6B0'}.t-icon-sound:before{content:'\E6B1'}.t-icon-space:before{content:'\E6B2'}.t-icon-speechless-1-filled:before{content:'\E6B3'}.t-icon-speechless-1:before{content:'\E6B4'}.t-icon-speechless-filled:before{content:'\E6B5'}.t-icon-speechless:before{content:'\E6B6'}.t-icon-star-filled:before{content:'\E6B7'}.t-icon-star:before{content:'\E6B8'}.t-icon-statue-of-jesus-filled:before{content:'\E6B9'}.t-icon-statue-of-jesus:before{content:'\E6BA'}.t-icon-sticky-note-filled:before{content:'\E6BB'}.t-icon-sticky-note:before{content:'\E6BC'}.t-icon-stop-circle-filled:before{content:'\E6BD'}.t-icon-stop-circle-stroke-filled:before{content:'\E6BE'}.t-icon-stop-circle-stroke:before{content:'\E6BF'}.t-icon-stop-circle:before{content:'\E6C0'}.t-icon-stop:before{content:'\E6C1'}.t-icon-store-filled:before{content:'\E6C2'}.t-icon-store:before{content:'\E6C3'}.t-icon-street-road-1-filled:before{content:'\E6C4'}.t-icon-street-road-1:before{content:'\E6C5'}.t-icon-street-road-filled:before{content:'\E6C6'}.t-icon-street-road:before{content:'\E6C7'}.t-icon-subtitle-filled:before{content:'\E6C8'}.t-icon-subtitle:before{content:'\E6C9'}.t-icon-subway-line-filled:before{content:'\E6CA'}.t-icon-subway-line:before{content:'\E6CB'}.t-icon-sum:before{content:'\E6CC'}.t-icon-sun-fall-filled:before{content:'\E6CD'}.t-icon-sun-fall:before{content:'\E6CE'}.t-icon-sun-rising-filled:before{content:'\E6CF'}.t-icon-sun-rising:before{content:'\E6D0'}.t-icon-sunny-filled:before{content:'\E6D1'}.t-icon-sunny:before{content:'\E6D2'}.t-icon-support-filled:before{content:'\E6D3'}.t-icon-support:before{content:'\E6D4'}.t-icon-surprised-1-filled:before{content:'\E6D5'}.t-icon-surprised-1:before{content:'\E6D6'}.t-icon-surprised-filled:before{content:'\E6D7'}.t-icon-surprised:before{content:'\E6D8'}.t-icon-swap-left:before{content:'\E6D9'}.t-icon-swap-right:before{content:'\E6DA'}.t-icon-swap:before{content:'\E6DB'}.t-icon-swear-1-filled:before{content:'\E6DC'}.t-icon-swear-1:before{content:'\E6DD'}.t-icon-swear-2-filled:before{content:'\E6DE'}.t-icon-swear-2:before{content:'\E6DF'}.t-icon-system-2:before{content:'\E6E0'}.t-icon-system-3-filled:before{content:'\E6E1'}.t-icon-system-3:before{content:'\E6E2'}.t-icon-system-application-filled:before{content:'\E6E3'}.t-icon-system-application:before{content:'\E6E4'}.t-icon-system-blocked-filled:before{content:'\E6E5'}.t-icon-system-blocked:before{content:'\E6E6'}.t-icon-system-code-filled:before{content:'\E6E7'}.t-icon-system-code:before{content:'\E6E8'}.t-icon-system-components-filled:before{content:'\E6E9'}.t-icon-system-components:before{content:'\E6EA'}.t-icon-system-coordinate-filled:before{content:'\E6EB'}.t-icon-system-coordinate:before{content:'\E6EC'}.t-icon-system-device-filled:before{content:'\E6ED'}.t-icon-system-device:before{content:'\E6EE'}.t-icon-system-interface-filled:before{content:'\E6EF'}.t-icon-system-interface:before{content:'\E6F0'}.t-icon-system-location-filled:before{content:'\E6F1'}.t-icon-system-location:before{content:'\E6F2'}.t-icon-system-locked-filled:before{content:'\E6F3'}.t-icon-system-locked:before{content:'\E6F4'}.t-icon-system-log-filled:before{content:'\E6F5'}.t-icon-system-log:before{content:'\E6F6'}.t-icon-system-marked-filled:before{content:'\E6F7'}.t-icon-system-marked:before{content:'\E6F8'}.t-icon-system-messages-filled:before{content:'\E6F9'}.t-icon-system-messages:before{content:'\E6FA'}.t-icon-system-regulation-filled:before{content:'\E6FB'}.t-icon-system-regulation:before{content:'\E6FC'}.t-icon-system-search-filled:before{content:'\E6FD'}.t-icon-system-search:before{content:'\E6FE'}.t-icon-system-setting-filled:before{content:'\E6FF'}.t-icon-system-setting:before{content:'\E700'}.t-icon-system-storage-filled:before{content:'\E701'}.t-icon-system-storage:before{content:'\E702'}.t-icon-system-sum:before{content:'\E703'}.t-icon-system-unlocked-filled:before{content:'\E704'}.t-icon-system-unlocked:before{content:'\E705'}.t-icon-tab-filled:before{content:'\E706'}.t-icon-tab:before{content:'\E707'}.t-icon-table-1-filled:before{content:'\E708'}.t-icon-table-1:before{content:'\E709'}.t-icon-table-2-filled:before{content:'\E70A'}.t-icon-table-2:before{content:'\E70B'}.t-icon-table-add-filled:before{content:'\E70C'}.t-icon-table-add:before{content:'\E70D'}.t-icon-table-filled:before{content:'\E70E'}.t-icon-table-split-filled:before{content:'\E70F'}.t-icon-table-split:before{content:'\E710'}.t-icon-table:before{content:'\E711'}.t-icon-tag-filled:before{content:'\E712'}.t-icon-tag:before{content:'\E713'}.t-icon-tangerinr-filled:before{content:'\E714'}.t-icon-tangerinr:before{content:'\E715'}.t-icon-tape-filled:before{content:'\E716'}.t-icon-tape:before{content:'\E717'}.t-icon-task-1-filled:before{content:'\E718'}.t-icon-task-1:before{content:'\E719'}.t-icon-task-add-1:before{content:'\E71A'}.t-icon-task-add-filled:before{content:'\E71B'}.t-icon-task-add:before{content:'\E71C'}.t-icon-task-checked-1:before{content:'\E71D'}.t-icon-task-checked-filled:before{content:'\E71E'}.t-icon-task-checked:before{content:'\E71F'}.t-icon-task-double-filled:before{content:'\E720'}.t-icon-task-double:before{content:'\E721'}.t-icon-task-error-filled:before{content:'\E722'}.t-icon-task-error:before{content:'\E723'}.t-icon-task-filled:before{content:'\E724'}.t-icon-task-location-filled:before{content:'\E725'}.t-icon-task-location:before{content:'\E726'}.t-icon-task-marked-filled:before{content:'\E727'}.t-icon-task-marked:before{content:'\E728'}.t-icon-task-setting-filled:before{content:'\E729'}.t-icon-task-setting:before{content:'\E72A'}.t-icon-task-time-filled:before{content:'\E72B'}.t-icon-task-time:before{content:'\E72C'}.t-icon-task-visible-filled:before{content:'\E72D'}.t-icon-task-visible:before{content:'\E72E'}.t-icon-task:before{content:'\E72F'}.t-icon-tea-filled:before{content:'\E730'}.t-icon-tea:before{content:'\E731'}.t-icon-teahouse-filled:before{content:'\E732'}.t-icon-teahouse:before{content:'\E733'}.t-icon-template-filled:before{content:'\E734'}.t-icon-template:before{content:'\E735'}.t-icon-temple-filled:before{content:'\E736'}.t-icon-temple:before{content:'\E737'}.t-icon-terminal-rectangle-1-filled:before{content:'\E738'}.t-icon-terminal-rectangle-1:before{content:'\E739'}.t-icon-terminal-rectangle-filled:before{content:'\E73A'}.t-icon-terminal-rectangle:before{content:'\E73B'}.t-icon-terminal-window-filled:before{content:'\E73C'}.t-icon-terminal-window:before{content:'\E73D'}.t-icon-terminal:before{content:'\E73E'}.t-icon-textbox-filled:before{content:'\E73F'}.t-icon-textbox:before{content:'\E740'}.t-icon-textformat-bold:before{content:'\E741'}.t-icon-textformat-color:before{content:'\E742'}.t-icon-textformat-italic:before{content:'\E743'}.t-icon-textformat-strikethrough:before{content:'\E744'}.t-icon-textformat-underline:before{content:'\E745'}.t-icon-textformat-wrap:before{content:'\E746'}.t-icon-theaters-filled:before{content:'\E747'}.t-icon-theaters:before{content:'\E748'}.t-icon-thumb-down-1-filled:before{content:'\E749'}.t-icon-thumb-down-1:before{content:'\E74A'}.t-icon-thumb-down-2-filled:before{content:'\E74B'}.t-icon-thumb-down-2:before{content:'\E74C'}.t-icon-thumb-down-filled:before{content:'\E74D'}.t-icon-thumb-down:before{content:'\E74E'}.t-icon-thumb-up-1-filled:before{content:'\E74F'}.t-icon-thumb-up-1:before{content:'\E750'}.t-icon-thumb-up-2-filled:before{content:'\E751'}.t-icon-thumb-up-2:before{content:'\E752'}.t-icon-thumb-up-filled:before{content:'\E753'}.t-icon-thumb-up:before{content:'\E754'}.t-icon-thunder:before{content:'\E755'}.t-icon-thunderstorm-night-filled:before{content:'\E756'}.t-icon-thunderstorm-night:before{content:'\E757'}.t-icon-thunderstorm-sunny-filled:before{content:'\E758'}.t-icon-thunderstorm-sunny:before{content:'\E759'}.t-icon-thunderstorm:before{content:'\E75A'}.t-icon-ticket-filled:before{content:'\E75B'}.t-icon-ticket:before{content:'\E75C'}.t-icon-time-filled:before{content:'\E75D'}.t-icon-time:before{content:'\E75E'}.t-icon-tips-double-filled:before{content:'\E75F'}.t-icon-tips-double:before{content:'\E760'}.t-icon-tips-filled:before{content:'\E761'}.t-icon-tips:before{content:'\E762'}.t-icon-tomato-filled:before{content:'\E763'}.t-icon-tomato:before{content:'\E764'}.t-icon-tools-circle-filled:before{content:'\E765'}.t-icon-tools-circle:before{content:'\E766'}.t-icon-tools-filled:before{content:'\E767'}.t-icon-tools:before{content:'\E768'}.t-icon-tornado:before{content:'\E769'}.t-icon-tower-1-filled:before{content:'\E76A'}.t-icon-tower-1:before{content:'\E76B'}.t-icon-tower-2-filled:before{content:'\E76C'}.t-icon-tower-2:before{content:'\E76D'}.t-icon-tower-3-filled:before{content:'\E76E'}.t-icon-tower-3:before{content:'\E76F'}.t-icon-tower-clock-filled:before{content:'\E770'}.t-icon-tower-clock:before{content:'\E771'}.t-icon-tower-filled:before{content:'\E772'}.t-icon-tower:before{content:'\E773'}.t-icon-town-filled:before{content:'\E774'}.t-icon-town:before{content:'\E775'}.t-icon-traffic-events-filled:before{content:'\E776'}.t-icon-traffic-events:before{content:'\E777'}.t-icon-traffic-filled:before{content:'\E778'}.t-icon-traffic:before{content:'\E779'}.t-icon-transform-1-filled:before{content:'\E77A'}.t-icon-transform-1:before{content:'\E77B'}.t-icon-transform-2:before{content:'\E77C'}.t-icon-transform-3:before{content:'\E77D'}.t-icon-transform-filled:before{content:'\E77E'}.t-icon-transform:before{content:'\E77F'}.t-icon-translate-1:before{content:'\E780'}.t-icon-translate:before{content:'\E781'}.t-icon-tree-round-dot-filled:before{content:'\E782'}.t-icon-tree-round-dot-vertical-filled:before{content:'\E783'}.t-icon-tree-round-dot-vertical:before{content:'\E784'}.t-icon-tree-round-dot:before{content:'\E785'}.t-icon-tree-square-dot-filled:before{content:'\E786'}.t-icon-tree-square-dot-vertical-filled:before{content:'\E787'}.t-icon-tree-square-dot-vertical:before{content:'\E788'}.t-icon-tree-square-dot:before{content:'\E789'}.t-icon-trending-down:before{content:'\E78A'}.t-icon-trending-up:before{content:'\E78B'}.t-icon-tv-1-filled:before{content:'\E78C'}.t-icon-tv-1:before{content:'\E78D'}.t-icon-tv-2-filled:before{content:'\E78E'}.t-icon-tv-2:before{content:'\E78F'}.t-icon-tv-filled:before{content:'\E790'}.t-icon-tv:before{content:'\E791'}.t-icon-typography-filled:before{content:'\E792'}.t-icon-typography:before{content:'\E793'}.t-icon-uncomfortable-1-filled:before{content:'\E794'}.t-icon-uncomfortable-1:before{content:'\E795'}.t-icon-uncomfortable-2-filled:before{content:'\E796'}.t-icon-uncomfortable-2:before{content:'\E797'}.t-icon-uncomfortable-filled:before{content:'\E798'}.t-icon-uncomfortable:before{content:'\E799'}.t-icon-undertake-delivery-filled:before{content:'\E79A'}.t-icon-undertake-delivery:before{content:'\E79B'}.t-icon-undertake-environment-protection-filled:before{content:'\E79C'}.t-icon-undertake-environment-protection:before{content:'\E79D'}.t-icon-undertake-filled:before{content:'\E79E'}.t-icon-undertake-hold-up-filled:before{content:'\E79F'}.t-icon-undertake-hold-up:before{content:'\E7A0'}.t-icon-undertake-transaction-filled:before{content:'\E7A1'}.t-icon-undertake-transaction:before{content:'\E7A2'}.t-icon-undertake:before{content:'\E7A3'}.t-icon-unfold-less:before{content:'\E7A4'}.t-icon-unfold-more:before{content:'\E7A5'}.t-icon-unhappy-1-filled:before{content:'\E7A6'}.t-icon-unhappy-1:before{content:'\E7A7'}.t-icon-unhappy-filled:before{content:'\E7A8'}.t-icon-unhappy:before{content:'\E7A9'}.t-icon-uninstall-filled:before{content:'\E7AA'}.t-icon-uninstall:before{content:'\E7AB'}.t-icon-upload-1:before{content:'\E7AC'}.t-icon-upload:before{content:'\E7AD'}.t-icon-upscale:before{content:'\E7AE'}.t-icon-usb-filled:before{content:'\E7AF'}.t-icon-usb:before{content:'\E7B0'}.t-icon-user-1-filled:before{content:'\E7B1'}.t-icon-user-1:before{content:'\E7B2'}.t-icon-user-add-filled:before{content:'\E7B3'}.t-icon-user-add:before{content:'\E7B4'}.t-icon-user-arrow-down-filled:before{content:'\E7B5'}.t-icon-user-arrow-down:before{content:'\E7B6'}.t-icon-user-arrow-left-filled:before{content:'\E7B7'}.t-icon-user-arrow-left:before{content:'\E7B8'}.t-icon-user-arrow-right-filled:before{content:'\E7B9'}.t-icon-user-arrow-right:before{content:'\E7BA'}.t-icon-user-arrow-up-filled:before{content:'\E7BB'}.t-icon-user-arrow-up:before{content:'\E7BC'}.t-icon-user-avatar-filled:before{content:'\E7BD'}.t-icon-user-avatar:before{content:'\E7BE'}.t-icon-user-blocked-filled:before{content:'\E7BF'}.t-icon-user-blocked:before{content:'\E7C0'}.t-icon-user-business-filled:before{content:'\E7C1'}.t-icon-user-business:before{content:'\E7C2'}.t-icon-user-checked-1-filled:before{content:'\E7C3'}.t-icon-user-checked-1:before{content:'\E7C4'}.t-icon-user-checked-filled:before{content:'\E7C5'}.t-icon-user-checked:before{content:'\E7C6'}.t-icon-user-circle-filled:before{content:'\E7C7'}.t-icon-user-circle:before{content:'\E7C8'}.t-icon-user-clear-filled:before{content:'\E7C9'}.t-icon-user-clear:before{content:'\E7CA'}.t-icon-user-error-1-filled:before{content:'\E7CB'}.t-icon-user-error-1:before{content:'\E7CC'}.t-icon-user-filled:before{content:'\E7CD'}.t-icon-user-invisible-filled:before{content:'\E7CE'}.t-icon-user-invisible:before{content:'\E7CF'}.t-icon-user-list-filled:before{content:'\E7D0'}.t-icon-user-list:before{content:'\E7D1'}.t-icon-user-locked-filled:before{content:'\E7D2'}.t-icon-user-locked:before{content:'\E7D3'}.t-icon-user-marked-filled:before{content:'\E7D4'}.t-icon-user-marked:before{content:'\E7D5'}.t-icon-user-password-filled:before{content:'\E7D6'}.t-icon-user-password:before{content:'\E7D7'}.t-icon-user-safety-filled:before{content:'\E7D8'}.t-icon-user-safety:before{content:'\E7D9'}.t-icon-user-search-filled:before{content:'\E7DA'}.t-icon-user-search:before{content:'\E7DB'}.t-icon-user-setting-filled:before{content:'\E7DC'}.t-icon-user-setting:before{content:'\E7DD'}.t-icon-user-talk-1-filled:before{content:'\E7DE'}.t-icon-user-talk-1:before{content:'\E7DF'}.t-icon-user-talk-filled:before{content:'\E7E0'}.t-icon-user-talk-off-1-filled:before{content:'\E7E1'}.t-icon-user-talk-off-1:before{content:'\E7E2'}.t-icon-user-talk:before{content:'\E7E3'}.t-icon-user-time-filled:before{content:'\E7E4'}.t-icon-user-time:before{content:'\E7E5'}.t-icon-user-transmit-filled:before{content:'\E7E6'}.t-icon-user-transmit:before{content:'\E7E7'}.t-icon-user-unknown-filled:before{content:'\E7E8'}.t-icon-user-unknown:before{content:'\E7E9'}.t-icon-user-unlocked-filled:before{content:'\E7EA'}.t-icon-user-unlocked:before{content:'\E7EB'}.t-icon-user-vip-filled:before{content:'\E7EC'}.t-icon-user-vip:before{content:'\E7ED'}.t-icon-user-visible-filled:before{content:'\E7EE'}.t-icon-user-visible:before{content:'\E7EF'}.t-icon-user:before{content:'\E7F0'}.t-icon-usercase-filled:before{content:'\E7F1'}.t-icon-usercase-link-filled:before{content:'\E7F2'}.t-icon-usercase-link:before{content:'\E7F3'}.t-icon-usercase:before{content:'\E7F4'}.t-icon-usergroup-add-filled:before{content:'\E7F5'}.t-icon-usergroup-add:before{content:'\E7F6'}.t-icon-usergroup-clear-filled:before{content:'\E7F7'}.t-icon-usergroup-clear:before{content:'\E7F8'}.t-icon-usergroup-filled:before{content:'\E7F9'}.t-icon-usergroup:before{content:'\E7FA'}.t-icon-vehicle-filled:before{content:'\E7FB'}.t-icon-vehicle:before{content:'\E7FC'}.t-icon-verified-filled:before{content:'\E7FD'}.t-icon-verified:before{content:'\E7FE'}.t-icon-verify-filled:before{content:'\E7FF'}.t-icon-verify:before{content:'\E800'}.t-icon-vertical-filled:before{content:'\E801'}.t-icon-vertical:before{content:'\E802'}.t-icon-video-camera-1-filled:before{content:'\E803'}.t-icon-video-camera-1:before{content:'\E804'}.t-icon-video-camera-2-filled:before{content:'\E805'}.t-icon-video-camera-2:before{content:'\E806'}.t-icon-video-camera-3-filled:before{content:'\E807'}.t-icon-video-camera-3:before{content:'\E808'}.t-icon-video-camera-dollar-filled:before{content:'\E809'}.t-icon-video-camera-dollar:before{content:'\E80A'}.t-icon-video-camera-filled:before{content:'\E80B'}.t-icon-video-camera-minus-filled:before{content:'\E80C'}.t-icon-video-camera-minus:before{content:'\E80D'}.t-icon-video-camera-music-filled:before{content:'\E80E'}.t-icon-video-camera-music:before{content:'\E80F'}.t-icon-video-camera-off-filled:before{content:'\E810'}.t-icon-video-camera-off:before{content:'\E811'}.t-icon-video-camera:before{content:'\E812'}.t-icon-video-filled:before{content:'\E813'}.t-icon-video-library-filled:before{content:'\E814'}.t-icon-video-library:before{content:'\E815'}.t-icon-video:before{content:'\E816'}.t-icon-view-agenda-filled:before{content:'\E817'}.t-icon-view-agenda:before{content:'\E818'}.t-icon-view-column:before{content:'\E819'}.t-icon-view-in-ar-filled:before{content:'\E81A'}.t-icon-view-in-ar:before{content:'\E81B'}.t-icon-view-list:before{content:'\E81C'}.t-icon-view-module-filled:before{content:'\E81D'}.t-icon-view-module:before{content:'\E81E'}.t-icon-visual-recognition-filled:before{content:'\E81F'}.t-icon-visual-recognition:before{content:'\E820'}.t-icon-wallet-filled:before{content:'\E821'}.t-icon-wallet:before{content:'\E822'}.t-icon-watch-filled:before{content:'\E823'}.t-icon-watch:before{content:'\E824'}.t-icon-watermelon-filled:before{content:'\E825'}.t-icon-watermelon:before{content:'\E826'}.t-icon-wave-bye-filled:before{content:'\E827'}.t-icon-wave-bye:before{content:'\E828'}.t-icon-wave-left-filled:before{content:'\E829'}.t-icon-wave-left:before{content:'\E82A'}.t-icon-wave-right-filled:before{content:'\E82B'}.t-icon-wave-right:before{content:'\E82C'}.t-icon-wealth-1-filled:before{content:'\E82D'}.t-icon-wealth-1:before{content:'\E82E'}.t-icon-wealth-filled:before{content:'\E82F'}.t-icon-wealth:before{content:'\E830'}.t-icon-widget-filled:before{content:'\E831'}.t-icon-widget:before{content:'\E832'}.t-icon-wifi-1-filled:before{content:'\E833'}.t-icon-wifi-1:before{content:'\E834'}.t-icon-wifi-off-1-filled:before{content:'\E835'}.t-icon-wifi-off-1:before{content:'\E836'}.t-icon-wifi-off:before{content:'\E837'}.t-icon-wifi:before{content:'\E838'}.t-icon-window-1-filled:before{content:'\E839'}.t-icon-window-1:before{content:'\E83A'}.t-icon-window-filled:before{content:'\E83B'}.t-icon-window:before{content:'\E83C'}.t-icon-windy-rain:before{content:'\E83D'}.t-icon-windy:before{content:'\E83E'}.t-icon-wink-filled:before{content:'\E83F'}.t-icon-wink:before{content:'\E840'}.t-icon-work-filled:before{content:'\E841'}.t-icon-work-history-filled:before{content:'\E842'}.t-icon-work-history:before{content:'\E843'}.t-icon-work-off-filled:before{content:'\E844'}.t-icon-work-off:before{content:'\E845'}.t-icon-work:before{content:'\E846'}.t-icon-wry-smile-filled:before{content:'\E847'}.t-icon-wry-smile:before{content:'\E848'}.t-icon-zoom-in-filled:before{content:'\E849'}.t-icon-zoom-in:before{content:'\E84A'}.t-icon-zoom-out-filled:before{content:'\E84B'}.t-icon-zoom-out:before{content:'\E84C'}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/props.d.ts b/miniprogram_npm/tdesign-miniprogram/icon/props.d.ts
new file mode 100644
index 0000000..a472c01
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/props.d.ts
@@ -0,0 +1,3 @@
+import { TdIconProps } from './type';
+declare const props: TdIconProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/props.js b/miniprogram_npm/tdesign-miniprogram/icon/props.js
new file mode 100644
index 0000000..b05c530
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/props.js
@@ -0,0 +1 @@
+const props={color:{type:String,value:""},name:{type:String,value:"",required:!0},prefix:{type:String,value:""},size:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/type.d.ts b/miniprogram_npm/tdesign-miniprogram/icon/type.d.ts
new file mode 100644
index 0000000..c92226c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/type.d.ts
@@ -0,0 +1,19 @@
+export interface TdIconProps {
+ color?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ name: {
+ type: StringConstructor;
+ value?: string;
+ required?: boolean;
+ };
+ prefix?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ size?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/type.js b/miniprogram_npm/tdesign-miniprogram/icon/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.d.ts b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.d.ts
new file mode 100644
index 0000000..d5766e9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.d.ts
@@ -0,0 +1,93 @@
+import { SuperComponent } from '../common/src/index';
+export default class ImageViewer extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ backgroundColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ closeBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ deleteBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ images?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ initialIndex?: {
+ type: NumberConstructor;
+ value?: Number;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showIndex?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ currentSwiperIndex: number;
+ loadedImageIndexes: any[];
+ windowHeight: number;
+ windowWidth: number;
+ swiperStyle: {};
+ imagesStyle: {};
+ maskTop: number;
+ };
+ options: {
+ multipleSlots: boolean;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ ready(): void;
+ observers: {
+ 'visible,initialIndex,images'(visible: any, initialIndex: any, images: any): void;
+ closeBtn(v: any): void;
+ deleteBtn(v: any): void;
+ };
+ methods: {
+ calcMaskTop(): void;
+ saveScreenSize(): void;
+ calcImageDisplayStyle(imageWidth: any, imageHeight: any): {
+ styleObj: {
+ width: string;
+ height: string;
+ left: string;
+ transform: string;
+ };
+ } | {
+ styleObj: {
+ width: string;
+ height: string;
+ left?: undefined;
+ transform?: undefined;
+ };
+ };
+ onImageLoadSuccess(e: WechatMiniprogram.TouchEvent): void;
+ onSwiperChange(e: WechatMiniprogram.TouchEvent): void;
+ onClose(e: any): void;
+ onDelete(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.js b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.js
new file mode 100644
index 0000000..2de47d7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{styles,calcIcon,systemInfo}from"../common/utils";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-image-viewer`;let ImageViewer=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,currentSwiperIndex:0,loadedImageIndexes:[],windowHeight:0,windowWidth:0,swiperStyle:{},imagesStyle:{},maskTop:0},this.options={multipleSlots:!0},this.controlledProps=[{key:"visible",event:"close"}],this.observers={"visible,initialIndex,images"(e,t,s){e&&(null==s?void 0:s.length)&&this.setData({loadedImageIndexes:[],currentSwiperIndex:t>=s.length?s.length-1:t})},closeBtn(e){this.setData({_closeBtn:calcIcon(e,"close")})},deleteBtn(e){this.setData({_deleteBtn:calcIcon(e,"delete")})}},this.methods={calcMaskTop(){if(this.data.usingCustomNavbar){const e=(null===wx||void 0===wx?void 0:wx.getMenuButtonBoundingClientRect())||null,{statusBarHeight:t}=systemInfo;e&&t&&this.setData({maskTop:e.top-t+e.bottom})}},saveScreenSize(){const{windowHeight:e,windowWidth:t}=systemInfo;this.setData({windowHeight:e,windowWidth:t})},calcImageDisplayStyle(e,t){const{windowWidth:s,windowHeight:i}=this.data,a=e/t;if(e=1)return{styleObj:{width:"100vw",height:s/a*2+"rpx"}};const n=a*i*2;return n{{currentSwiperIndex + 1}}/{{images.length}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxs b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxs
new file mode 100644
index 0000000..780bb4e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxs
@@ -0,0 +1,7 @@
+function shouldLoadImage(index, currentIndex, loadedIndexes) {
+ return Math.abs(index - currentIndex) <= 1 || (loadedIndexes && loadedIndexes.indexOf(index) !== -1);
+}
+
+module.exports = {
+ shouldLoadImage: shouldLoadImage,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxss b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxss
new file mode 100644
index 0000000..9acec8b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-image-viewer{position:fixed;top:var(--td-image-viewer-top,var(--td-position-fixed-top,0));left:0;bottom:0;right:0;z-index:1001;transform:translateZ(0);overflow:hidden}.t-image-viewer__mask{position:absolute;z-index:1000;left:0;top:0;width:100%;height:100%}.t-image-viewer__content{width:100vw;display:inline-block;position:absolute;top:50%;transform:translateY(-50%);z-index:1005}.t-image-viewer .swiper{outline:0}.t-image-viewer__image{width:100%;display:inline-block;position:absolute;top:50%;transform:translateY(-50%)}.t-image-viewer .t-image--external{width:inherit;height:inherit;display:block}.t-image-viewer__nav{width:100%;position:absolute;display:flex;align-items:center;justify-content:space-between;height:var(--td-image-viewer-nav-height,96rpx);background-color:var(--td-image-viewer-nav-bg-color,var(--td-font-gray-3,rgba(0,0,0,.4)));left:0;color:var(--td-image-viewer-nav-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));z-index:1005}.t-image-viewer__nav-close{margin-left:var(--td-image-viewer-close-margin-left,var(--td-spacer-1,24rpx))}.t-image-viewer__nav-close:empty{display:none}.t-image-viewer__nav-delete{margin-right:var(--td-image-viewer-delete-margin-right,var(--td-spacer-1,24rpx))}.t-image-viewer__nav-delete:empty{display:none}.t-image-viewer__nav-close,.t-image-viewer__nav-delete{font-size:48rpx}.t-image-viewer__nav-index{flex:1;font-size:var(--td-image-viewer-nav-index-font-size,var(--td-font-size-base,28rpx));text-align:center}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/props.d.ts b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.d.ts
new file mode 100644
index 0000000..9fec1e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.d.ts
@@ -0,0 +1,3 @@
+import { TdImageViewerProps } from './type';
+declare const props: TdImageViewerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/props.js b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.js
new file mode 100644
index 0000000..02d586a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.js
@@ -0,0 +1 @@
+const props={backgroundColor:{type:String,value:"rgba(0, 0, 0, 1)"},closeBtn:{type:null,value:!1},deleteBtn:{type:null,value:!1},images:{type:Array,value:[]},initialIndex:{type:Number,value:0},lazy:{type:Boolean,value:!0},showIndex:{type:Boolean,value:!1},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/type.d.ts b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.d.ts
new file mode 100644
index 0000000..8a5da94
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.d.ts
@@ -0,0 +1,42 @@
+export interface TdImageViewerProps {
+ backgroundColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ closeBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ deleteBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ images?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ initialIndex?: {
+ type: NumberConstructor;
+ value?: Number;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showIndex?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/type.js b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image-info.json b/miniprogram_npm/tdesign-miniprogram/image/image-info.json
new file mode 100644
index 0000000..e4999ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image-info.json
@@ -0,0 +1 @@
+{"key":"Image","label":"图片","icon":"","properties":[{"key":"error","type":["String","TNode"],"defaultValue":"'default'","desc":"加载失败时显示的内容。值为 `default` 则表示使用默认加载失败风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `error`;值为其他则表示普通文本内容,如“加载失败”","label":""},{"key":"externalClasses","type":["Array"],"defaultValue":"","desc":"组件类名,分别用于设置加载组件外层元素,中间内容等元素类名","label":""},{"key":"lazy","type":["Boolean"],"defaultValue":"false","desc":"是否开启图片懒加载","label":""},{"key":"loading","type":["String","TNode"],"defaultValue":"'default'","desc":"加载态内容。值为 `default` 则表示使用默认加载中风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `loading`;值为其他则表示普通文本内容,如“加载中”","label":""},{"key":"MP_EXCLUDE_PROPS","type":["String"],"defaultValue":"","desc":"为避免重复或冲突,需要过滤掉的小程序原生属性","label":""},{"key":"MP_PROPS","type":["String"],"defaultValue":"","desc":"[小程序原生属性](https://developers.weixin.qq.com/miniprogram/dev/component/image.html)","label":""},{"key":"shape","type":["String"],"defaultValue":"square","desc":"图片圆角类型","label":""},{"key":"src","type":["String"],"defaultValue":"","desc":"图片链接","label":""}],"events":[{"key":"error","desc":"图片加载失败时触发","label":""},{"key":"load","desc":"图片加载完成时触发","label":""}]}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.d.ts b/miniprogram_npm/tdesign-miniprogram/image/image.d.ts
new file mode 100644
index 0000000..36dc635
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.d.ts
@@ -0,0 +1,26 @@
+import { SuperComponent } from '../common/src/index';
+export default class Image extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdImageProps;
+ data: {
+ prefix: string;
+ isLoading: boolean;
+ isFailed: boolean;
+ innerStyle: string;
+ classPrefix: string;
+ };
+ preSrc: any;
+ observers: {
+ src(): void;
+ 'width, height'(width: any, height: any): void;
+ };
+ methods: {
+ onLoaded(e: any): void;
+ onLoadError(e: any): void;
+ calcSize(width: any, height: any): void;
+ update(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.js b/miniprogram_npm/tdesign-miniprogram/image/image.js
new file mode 100644
index 0000000..6a67fa8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import ImageProps from"./props";import config from"../common/config";import{addUnit,getRect,appBaseInfo}from"../common/utils";import{compareVersion}from"../common/version";const{prefix:prefix}=config,name=`${prefix}-image`;let Image=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-load`,`${prefix}-class-image`,`${prefix}-class-error`],this.options={multipleSlots:!0},this.properties=ImageProps,this.data={prefix:prefix,isLoading:!0,isFailed:!1,innerStyle:"",classPrefix:name},this.preSrc=void 0,this.observers={src(){this.preSrc!==this.properties.src&&this.update()},"width, height"(e,i){this.calcSize(e,i)}},this.methods={onLoaded(e){const i=appBaseInfo.SDKVersion,{mode:t,tId:s}=this.properties,r=compareVersion(i,"2.10.3")<0;if("heightFix"===t&&r){const{height:i,width:t}=e.detail;getRect(this,`#${s||"image"}`).then((e=>{const{height:s}=e,r=(s/i*t).toFixed(2);this.setData({innerStyle:`height: ${addUnit(s)}; width: ${r}px;`})}))}this.setData({isLoading:!1,isFailed:!1}),this.triggerEvent("load",e.detail)},onLoadError(e){this.setData({isLoading:!1,isFailed:!0}),this.triggerEvent("error",e.detail)},calcSize(e,i){let t="";e&&(t+=`width: ${addUnit(e)};`),i&&(t+=`height: ${addUnit(i)};`),this.setData({innerStyle:t})},update(){const{src:e}=this.properties;this.preSrc=e,e?this.setData({isLoading:!0,isFailed:!1}):this.onLoadError({errMsg:"图片链接为空"})}}}};Image=__decorate([wxComponent()],Image);export default Image;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.json b/miniprogram_npm/tdesign-miniprogram/image/image.json
new file mode 100644
index 0000000..3b6ed8c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-loading":"../loading/loading","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.wxml b/miniprogram_npm/tdesign-miniprogram/image/image.wxml
new file mode 100644
index 0000000..c735d3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.wxml
@@ -0,0 +1 @@
+{{loading}}{{error}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.wxss b/miniprogram_npm/tdesign-miniprogram/image/image.wxss
new file mode 100644
index 0000000..623b66f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-image{position:relative;display:inline-block}.t-image__img,.t-image__mask{color:var(--td-image-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));vertical-align:top;width:inherit;height:inherit}.t-image__mask{display:flex;align-items:center;justify-content:center;background-color:var(--td-image-loading-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));color:var(--td-image-loading-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-image--loading-text{width:0;height:0}.t-image__common{width:100%;height:100%}.t-image--lazy{position:absolute;top:0;left:0;z-index:-1}.t-image--shape-circle{border-radius:50%;overflow:hidden}.t-image--shape-round{border-radius:var(--td-image-round-radius,var(--td-radius-default,12rpx));overflow:hidden}.t-image--shape-square{border-radius:0;overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/index.d.ts b/miniprogram_npm/tdesign-miniprogram/image/index.d.ts
new file mode 100644
index 0000000..0f85c43
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/index.d.ts
@@ -0,0 +1,4 @@
+import { TdImageProps } from './type';
+export declare type ImageProps = TdImageProps;
+export * from './props';
+export * from './image';
diff --git a/miniprogram_npm/tdesign-miniprogram/image/index.js b/miniprogram_npm/tdesign-miniprogram/image/index.js
new file mode 100644
index 0000000..b2b8ed2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./image";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/props.d.ts b/miniprogram_npm/tdesign-miniprogram/image/props.d.ts
new file mode 100644
index 0000000..0ab571b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/props.d.ts
@@ -0,0 +1,3 @@
+import { TdImageProps } from './type';
+declare const props: TdImageProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/image/props.js b/miniprogram_npm/tdesign-miniprogram/image/props.js
new file mode 100644
index 0000000..dd7132a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/props.js
@@ -0,0 +1 @@
+const props={error:{type:String,value:"default"},height:{type:null},lazy:{type:Boolean,value:!1},loading:{type:String,value:"default"},mode:{type:String,value:"scaleToFill"},shape:{type:String,value:"square"},showMenuByLongpress:{type:Boolean,value:!1},src:{type:String,value:""},tId:{type:String,value:""},webp:{type:Boolean,value:!1},width:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/type.d.ts b/miniprogram_npm/tdesign-miniprogram/image/type.d.ts
new file mode 100644
index 0000000..4279319
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/type.d.ts
@@ -0,0 +1,46 @@
+export interface TdImageProps {
+ error?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ height?: {
+ type: null;
+ value?: string | number;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ loading?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ mode?: {
+ type: StringConstructor;
+ value?: 'scaleToFill' | 'aspectFit' | 'aspectFill' | 'widthFix' | 'heightFix' | 'top' | 'bottom' | 'center' | 'left' | 'right' | 'top left' | 'top right' | 'bottom left' | 'bottom right';
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'circle' | 'round' | 'square';
+ };
+ showMenuByLongpress?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ src?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ tId?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ webp?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ width?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image/type.js b/miniprogram_npm/tdesign-miniprogram/image/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/index.d.ts b/miniprogram_npm/tdesign-miniprogram/index.d.ts
new file mode 100644
index 0000000..9af8cc5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/index.d.ts
@@ -0,0 +1,4 @@
+export { default as ActionSheet, ActionSheetTheme } from './action-sheet/index';
+export { default as Dialog } from './dialog/index';
+export { default as Message } from './message/index';
+export { default as Toast } from './toast/index';
diff --git a/miniprogram_npm/tdesign-miniprogram/index.js b/miniprogram_npm/tdesign-miniprogram/index.js
new file mode 100644
index 0000000..c65d7b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/index.js
@@ -0,0 +1 @@
+export{default as ActionSheet,ActionSheetTheme}from"./action-sheet/index";export{default as Dialog}from"./dialog/index";export{default as Message}from"./message/index";export{default as Toast}from"./toast/index";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.d.ts
new file mode 100644
index 0000000..62d07a1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.d.ts
@@ -0,0 +1,13 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+export default class IndexesAnchor extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdIndexesAnchorProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ anchorStyle: string;
+ sticky: boolean;
+ active: boolean;
+ };
+ relations: RelationsOptions;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.js b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.js
new file mode 100644
index 0000000..7da837b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-indexes-anchor`;let IndexesAnchor=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={prefix:prefix,classPrefix:name,anchorStyle:"",sticky:!1,active:!1},this.relations={"../indexes/indexes":{type:"parent"}}}};IndexesAnchor=__decorate([wxComponent()],IndexesAnchor);export default IndexesAnchor;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.json b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxml b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxml
new file mode 100644
index 0000000..5a5311b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxss b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxss
new file mode 100644
index 0000000..5094a6f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-indexes-anchor{color:var(--td-indexes-anchor-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-indexes-anchor-font-size,28rpx);line-height:var(--td-indexes-anchor-line-height,44rpx)}.t-indexes-anchor__header{display:none;padding:8rpx 32rpx;background-color:var(--td-indexes-anchor-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-indexes-anchor__header--active{background-color:var(--td-indexes-anchor-active-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));position:relative}.t-indexes-anchor__header--active::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-indexes-anchor__header--active::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-indexes-anchor__slot{overflow:hidden}.t-indexes-anchor__slot:empty+.t-indexes-anchor__header{display:block}.t-indexes-anchor__wrapper{will-change:transform}.t-indexes-anchor__wrapper--sticky{position:fixed;top:0;left:0;width:100%;z-index:1}.t-indexes-anchor__wrapper--active{color:var(--td-indexes-anchor-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:var(--td-indexes-anchor-active-font-weight,600)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.d.ts
new file mode 100644
index 0000000..7b52adf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.d.ts
@@ -0,0 +1,3 @@
+import { TdIndexesAnchorProps } from './type';
+declare const props: TdIndexesAnchorProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.js b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.js
new file mode 100644
index 0000000..d33a8b7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.js
@@ -0,0 +1 @@
+const props={index:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.d.ts
new file mode 100644
index 0000000..1e7fe4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.d.ts
@@ -0,0 +1,6 @@
+export interface TdIndexesAnchorProps {
+ index?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.js b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.d.ts
new file mode 100644
index 0000000..0071d19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.d.ts
@@ -0,0 +1,45 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+export default class Indexes extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdIndexesProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ _height: number;
+ _indexList: any[];
+ scrollTop: number;
+ activeAnchor: any;
+ showTips: boolean;
+ };
+ relations: RelationsOptions;
+ behaviors: string[];
+ timer: any;
+ groupTop: any[];
+ sidebar: any;
+ currentTouchAnchor: any;
+ observers: {
+ indexList(v: any): void;
+ height(v: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ setHeight(height: string | number): void;
+ setIndexList(list: any): void;
+ getAllRect(): void;
+ getAnchorsRect(): Promise;
+ getSidebarRect(): void;
+ toggleTips(flag: boolean): void;
+ setAnchorByIndex(index: any): void;
+ onClick(e: any): void;
+ onTouchMove(e: any): void;
+ onTouchCancel(): void;
+ onTouchEnd(e: any): void;
+ onAnchorTouch: (...args: any[]) => void;
+ setAnchorOnScroll(scrollTop: number): void;
+ onScroll({ scrollTop }: {
+ scrollTop: any;
+ }): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.js b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.js
new file mode 100644
index 0000000..2f2d369
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect,throttle,systemInfo}from"../common/utils";import pageScrollMixin from"../mixins/page-scroll";const{prefix:prefix}=config,name=`${prefix}-indexes`;let Indexes=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-sidebar`,`${prefix}-class-sidebar-item`],this.properties=props,this.data={prefix:prefix,classPrefix:name,_height:0,_indexList:[],scrollTop:0,activeAnchor:null,showTips:!1},this.relations={"../indexes-anchor/indexes-anchor":{type:"child"}},this.behaviors=[pageScrollMixin()],this.timer=null,this.groupTop=[],this.sidebar=null,this.currentTouchAnchor=null,this.observers={indexList(t){this.setIndexList(t),this.setHeight(this.data._height)},height(t){this.setHeight(t)}},this.lifetimes={ready(){this.timer=null,this.groupTop=[],this.sidebar=null,0===this.data._height&&this.setHeight(),null===this.data.indexList&&this.setIndexList()}},this.methods={setHeight(t){if(!t){const{windowHeight:e}=systemInfo;t=e}this.setData({_height:t},(()=>{this.getAllRect()}))},setIndexList(t){if(t)this.setData({_indexList:t});else{const t="A".charCodeAt(0),e=[];for(let i=t,s=t+26;i{this.groupTop.forEach(((t,e)=>{const i=this.groupTop[e+1];t.totalHeight=((null==i?void 0:i.top)||1/0)-t.top})),this.setAnchorOnScroll(0)})),this.getSidebarRect()},getAnchorsRect(){return Promise.all(this.$children.map((t=>getRect(t,`.${name}-anchor`).then((e=>{this.groupTop.push({height:e.height,top:e.top,anchor:t.data.index})})))))},getSidebarRect(){getRect(this,`#id-${name}__bar`).then((t=>{const{top:e,height:i}=t,{length:s}=this.data._indexList;this.sidebar={top:e,height:i,itemHeight:(i-2*(s-1))/s}}))},toggleTips(t){t?this.setData({showTips:!0}):(clearInterval(this.timer),this.timer=setTimeout((()=>{this.setData({showTips:!1})}),300))},setAnchorByIndex(t){const{_indexList:e,stickyOffset:i}=this.data,s=e[t];if(null!==this.data.activeAnchor&&this.data.activeAnchor===s)return;const o=this.groupTop.find((t=>t.anchor===s));if(o){this.currentTouchAnchor=s;const t=o.top-i;wx.pageScrollTo({scrollTop:t,duration:0}),this.toggleTips(!0),this.triggerEvent("select",{index:s}),this.setData({activeAnchor:s})}},onClick(t){const{index:e}=t.currentTarget.dataset;this.setAnchorByIndex(e)},onTouchMove(t){this.onAnchorTouch(t)},onTouchCancel(){this.toggleTips(!1)},onTouchEnd(t){this.toggleTips(!1),this.onAnchorTouch(t)},onAnchorTouch:throttle((function(t){const e=(t=>{const e=t-this.sidebar.top;return e<=0?0:e>this.sidebar.height?this.data._indexList.length-1:Math.floor(e/this.sidebar.itemHeight)})(t.changedTouches[0].clientY);this.setAnchorByIndex(e)}),1e3/30),setAnchorOnScroll(t){if(!this.groupTop)return;const{sticky:e,stickyOffset:i,activeAnchor:s}=this.data;t+=i;const o=this.groupTop.findIndex((e=>t>=e.top-e.height&&t<=e.top+e.totalHeight-e.height));if(-1===o)return;const h=this.groupTop[o];if(null!==this.currentTouchAnchor?(this.triggerEvent("change",{index:h.anchor}),this.currentTouchAnchor=null):s!==h.anchor&&(this.triggerEvent("change",{index:h.anchor}),this.setData({activeAnchor:h.anchor})),e){const e=h.top-t,s=e0&&t>i;this.$children.forEach(((n,r)=>{if(r===o){const o=t>i,r=`transform: translate3d(0, ${s?e:0}px, 0); top: ${i}px`;r===n.data.anchorStyle&&o===n.data.sticky||n.setData({sticky:o,active:!0,style:`height: ${h.height}px`,anchorStyle:r})}else if(r+1===o){const t=`transform: translate3d(0, ${s?e-h.height:0}px, 0); top: ${i}px`;t!==n.data.anchorStyle&&n.setData({sticky:!0,active:!0,style:`height: ${h.height}px`,anchorStyle:t})}else n.setData({active:!1,sticky:!1,anchorStyle:""})}))}},onScroll({scrollTop:t}){this.setAnchorOnScroll(t)}}}};Indexes=__decorate([wxComponent()],Indexes);export default Indexes;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.json b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.json
new file mode 100644
index 0000000..020034e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-cell":"../cell/cell","t-cell-group":"../cell-group/cell-group"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxml b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxml
new file mode 100644
index 0000000..5d11a73
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxs b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxs
new file mode 100644
index 0000000..e8bbe2b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxs
@@ -0,0 +1,7 @@
+function getFirstCharacter(str) {
+ return str.toString().substring(0, 1);
+}
+
+module.exports = {
+ getFirstCharacter: getFirstCharacter,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxss b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxss
new file mode 100644
index 0000000..2cd267f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-indexes{position:relative;height:100vh}.t-indexes__sidebar{position:fixed;right:var(--td-indexes-sidebar-right,16rpx);width:var(--td-indexes-sidebar-item-size,40rpx);color:var(--td-indexes-sidebar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-indexes-sidebar-font-size,24rpx);line-height:var(--td-indexes-sidebar-line-height,40rpx);display:flex;flex-flow:column nowrap;top:50%;transform:translateY(-50%);z-index:1}.t-indexes__sidebar-item{border-radius:50%;position:relative;text-align:center}.t-indexes__sidebar-item--active{background-color:var(--td-indexes-sidebar-active-bg-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));color:var(--td-indexes-sidebar-active-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-indexes__sidebar-item+.t-indexes__sidebar-item{margin-top:4rpx}.t-indexes__sidebar-tips{min-width:var(--td-indexes-sidebar-tips-size,96rpx);max-width:198rpx;padding:0 32rpx;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:var(--td-indexes-sidebar-tips-size,96rpx);line-height:var(--td-indexes-sidebar-tips-size,96rpx);text-align:center;font-size:var(--td-indexes-sidebar-tips-font-size,40rpx);font-weight:700;color:var(--td-indexes-sidebar-tips-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-indexes-sidebar-tips-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));border-radius:var(--td-indexes-sidebar-tips-size,96rpx);position:absolute;top:50%;bottom:0;transform:translateY(-50%);right:var(--td-indexes-sidebar-tips-right,calc(100% + 32rpx))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/props.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes/props.d.ts
new file mode 100644
index 0000000..a3e1619
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/props.d.ts
@@ -0,0 +1,3 @@
+import { TdIndexesProps } from './type';
+declare const props: TdIndexesProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/props.js b/miniprogram_npm/tdesign-miniprogram/indexes/props.js
new file mode 100644
index 0000000..5da56b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/props.js
@@ -0,0 +1 @@
+const props={indexList:{type:null},sticky:{type:Boolean,value:!0},stickyOffset:{type:Number,value:0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/type.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes/type.d.ts
new file mode 100644
index 0000000..ecf0242
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/type.d.ts
@@ -0,0 +1,14 @@
+export interface TdIndexesProps {
+ indexList?: {
+ type: null;
+ value?: string[] | number[];
+ };
+ sticky?: {
+ type: BooleanConstructor;
+ value?: Boolean;
+ };
+ stickyOffset?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/type.js b/miniprogram_npm/tdesign-miniprogram/indexes/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.d.ts b/miniprogram_npm/tdesign-miniprogram/input/input.d.ts
new file mode 100644
index 0000000..94b84bc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.d.ts
@@ -0,0 +1,37 @@
+import { SuperComponent } from '../common/src/index';
+export default class Input extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ behaviors: string[];
+ properties: import("./type").TdInputProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ classBasePrefix: string;
+ showClearIcon: boolean;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ observers: {
+ prefixIcon(v: any): void;
+ suffixIcon(v: any): void;
+ clearable(v: any): void;
+ 'clearTrigger, clearable, disabled, readonly'(): void;
+ };
+ methods: {
+ updateValue(value: any): void;
+ updateClearIconVisible(value?: boolean): void;
+ onInput(e: any): void;
+ onFocus(e: any): void;
+ onBlur(e: any): void;
+ onConfirm(e: any): void;
+ onSuffixClick(): void;
+ onSuffixIconClick(): void;
+ clearInput(e: any): void;
+ onKeyboardHeightChange(e: any): void;
+ onNickNameReview(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.js b/miniprogram_npm/tdesign-miniprogram/input/input.js
new file mode 100644
index 0000000..1fc3069
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getCharacterLength,calcIcon}from"../common/utils";import{isDef}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-input`;let Input=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-prefix-icon`,`${prefix}-class-label`,`${prefix}-class-input`,`${prefix}-class-clearable`,`${prefix}-class-suffix`,`${prefix}-class-suffix-icon`,`${prefix}-class-tips`],this.behaviors=["wx://form-field"],this.properties=props,this.data={prefix:prefix,classPrefix:name,classBasePrefix:prefix,showClearIcon:!0},this.lifetimes={ready(){var e;const{value:t,defaultValue:i}=this.properties;this.updateValue(null!==(e=null!=t?t:i)&&void 0!==e?e:"")}},this.observers={prefixIcon(e){this.setData({_prefixIcon:calcIcon(e)})},suffixIcon(e){this.setData({_suffixIcon:calcIcon(e)})},clearable(e){this.setData({_clearIcon:calcIcon(e,"close-circle-filled")})},"clearTrigger, clearable, disabled, readonly"(){this.updateClearIconVisible()}},this.methods={updateValue(e){const{allowInputOverMax:t,maxcharacter:i,maxlength:r}=this.properties;if(!t&&i&&i>0&&!Number.isNaN(i)){const{length:t,characters:r}=getCharacterLength("maxcharacter",e,i);this.setData({value:r,count:t})}else if(!t&&r&&r>0&&!Number.isNaN(r)){const{length:t,characters:i}=getCharacterLength("maxlength",e,r);this.setData({value:i,count:t})}else this.setData({value:e,count:isDef(e)?String(e).length:0})},updateClearIconVisible(e=!1){const{clearTrigger:t,disabled:i,readonly:r}=this.properties;i||r?this.setData({showClearIcon:!1}):this.setData({showClearIcon:e||"always"===t})},onInput(e){const{value:t,cursor:i,keyCode:r}=e.detail;this.updateValue(t),this.triggerEvent("change",{value:this.data.value,cursor:i,keyCode:r})},onFocus(e){this.updateClearIconVisible(!0),this.triggerEvent("focus",e.detail)},onBlur(e){if(this.updateClearIconVisible(),"function"==typeof this.properties.format){const t=this.properties.format(e.detail.value);return this.updateValue(t),void this.triggerEvent("blur",{value:this.data.value,cursor:this.data.count})}this.triggerEvent("blur",e.detail)},onConfirm(e){this.triggerEvent("enter",e.detail)},onSuffixClick(){this.triggerEvent("click",{trigger:"suffix"})},onSuffixIconClick(){this.triggerEvent("click",{trigger:"suffix-icon"})},clearInput(e){this.triggerEvent("clear",e.detail),this.setData({value:""})},onKeyboardHeightChange(e){this.triggerEvent("keyboardheightchange",e.detail)},onNickNameReview(e){this.triggerEvent("nicknamereview",e.detail)}}}};Input=__decorate([wxComponent()],Input);export default Input;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.json b/miniprogram_npm/tdesign-miniprogram/input/input.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.wxml b/miniprogram_npm/tdesign-miniprogram/input/input.wxml
new file mode 100644
index 0000000..b7215d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.wxml
@@ -0,0 +1 @@
+{{label}}{{suffix}}{{tips}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.wxs b/miniprogram_npm/tdesign-miniprogram/input/input.wxs
new file mode 100644
index 0000000..ee9eb11
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.wxs
@@ -0,0 +1,16 @@
+function getInputClass(classPrefix, suffix, align, disabled) {
+ var className = [classPrefix + '__control'];
+
+ if (align) {
+ className.push(classPrefix + '--' + align);
+ }
+
+ if (disabled) {
+ className.push(classPrefix + '__control--disabled');
+ }
+ return className.join(' ');
+}
+
+module.exports = {
+ getInputClass: getInputClass,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.wxss b/miniprogram_npm/tdesign-miniprogram/input/input.wxss
new file mode 100644
index 0000000..bc19c66
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-input{background-color:var(--td-input-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));display:flex;align-items:var(--td-input-align-items,center);flex:1;padding:var(--td-input-vertical-padding,32rpx);overflow:hidden}.t-input--border{position:relative}.t-input--border::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-input-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)))}.t-input--border::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-input--border:after{left:var(--td-input-border-left-space,32rpx);right:var(--td-input-border-right-space,0)}.t-input--layout-vertical{flex-direction:column;align-items:start}.t-input__wrap--prefix{display:flex}.t-input__icon--prefix{font-size:48rpx;color:var(--td-input-prefix-icon-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-input__label:not(:empty){min-width:var(--td-input-label-min-width,2em);max-width:var(--td-input-label-max-width,5em);font-size:var(--td-font-size-m,32rpx);line-height:48rpx;color:var(--td-input-label-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));margin-right:var(--td-spacer-2,32rpx);word-wrap:break-word}.t-input--layout-vertical .t-input__label:not(:empty){font-size:var(--td-font-size-base,28rpx);padding-bottom:8rpx}.t-input__icon--prefix:not(:empty)+.t-input__label:not(:empty){padding-left:8rpx}.t-input__label:not(:empty)+.t-input__wrap{margin-left:var(--td-spacer-2,32rpx)}.t-input__icon--prefix:not(:empty)+.t-input__label:empty{margin-right:var(--td-spacer-2,32rpx)}.t-input__wrap{width:100%;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center;flex-shrink:1;flex:1}.t-input__wrap .t-input__content{display:flex;width:100%;align-items:center;line-height:48rpx;font-size:var(--td-font-size-m,32rpx)}.t-input__wrap--clearable-icon,.t-input__wrap--suffix,.t-input__wrap--suffix-icon{flex:0 0 auto;padding-left:var(--td-spacer-1,24rpx)}.t-input__wrap--clearable-icon:empty,.t-input__wrap--suffix-icon:empty,.t-input__wrap--suffix:empty{display:none}.t-input__wrap--clearable-icon,.t-input__wrap--suffix-icon{font-size:48rpx;color:var(--td-input-suffix-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-input__wrap--suffix{font-size:var(--td-font-size-m,32rpx);color:var(--td-input-suffix-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-input__icon--prefix:empty,.t-input__tips:empty,.t-input__wrap--clearable-icon:empty,.t-input__wrap--suffix-icon:empty,.t-input__wrap--suffix:empty{display:none}.t-input__control{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:48rpx;margin:0;padding:0;color:var(--td-input-default-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:inherit;background-color:transparent;border:0;resize:none;font-size:inherit}.t-input__control--disabled{color:var(--td-input-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));cursor:not-allowed;opacity:1;-webkit-text-fill-color:currentColor}.t-input__control--read-only{cursor:default}.t-input--left{text-align:left}.t-input--right{text-align:right}.t-input--center{text-align:center}.t-input__placeholder{color:var(--td-input-placeholder-text-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-input-placeholder-text-font-size,var(--td-font-size-m,32rpx))}.t-input__placeholder--disabled{color:var(--td-input-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-input__tips{font-size:var(--td-font-size-s,24rpx);line-height:40rpx;padding-top:8rpx}.t-input--default+.t-input__tips{color:var(--td-input-default-tips-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-input--success+.t-input__tips{color:var(--td-input-success-tips-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-input--warning+.t-input__tips{color:var(--td-input-warning-tips-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-input--error+.t-input__tips{color:var(--td-input-error-tips-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/props.d.ts b/miniprogram_npm/tdesign-miniprogram/input/props.d.ts
new file mode 100644
index 0000000..1bd2f9a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/props.d.ts
@@ -0,0 +1,3 @@
+import { TdInputProps } from './type';
+declare const props: TdInputProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/input/props.js b/miniprogram_npm/tdesign-miniprogram/input/props.js
new file mode 100644
index 0000000..819dfb7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/props.js
@@ -0,0 +1 @@
+const props={adjustPosition:{type:Boolean,value:!0},align:{type:String,value:"left"},allowInputOverMax:{type:Boolean,value:!1},alwaysEmbed:{type:Boolean,value:!1},autoFocus:{type:Boolean,value:!1},borderless:{type:Boolean,value:!1},clearTrigger:{type:String,value:"always"},clearable:{type:null,value:!1},confirmHold:{type:Boolean,value:!1},confirmType:{type:String,value:"done"},cursor:{type:Number,value:-1,required:!0},cursorColor:{type:String,value:"#0052d9"},cursorSpacing:{type:Number,value:0},disabled:{type:null,value:void 0},focus:{type:Boolean,value:!1},format:{type:null},holdKeyboard:{type:Boolean,value:!1},label:{type:String},layout:{type:String,value:"horizontal"},maxcharacter:{type:Number},maxlength:{type:Number,value:-1},placeholder:{type:String,value:void 0},placeholderClass:{type:String,value:"input-placeholder"},placeholderStyle:{type:String,value:"",required:!0},prefixIcon:{type:null},readonly:{type:null,value:void 0},safePasswordCertPath:{type:String,value:""},safePasswordCustomHash:{type:String,value:""},safePasswordLength:{type:Number},safePasswordNonce:{type:String,value:""},safePasswordSalt:{type:String,value:""},safePasswordTimeStamp:{type:Number},selectionEnd:{type:Number,value:-1},selectionStart:{type:Number,value:-1},status:{type:String,value:"default"},suffix:{type:String},suffixIcon:{type:null},tips:{type:String},type:{type:String,value:"text"},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/type.d.ts b/miniprogram_npm/tdesign-miniprogram/input/type.d.ts
new file mode 100644
index 0000000..a5b6b8a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/type.d.ts
@@ -0,0 +1,166 @@
+export interface TdInputProps {
+ adjustPosition?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ align?: {
+ type: StringConstructor;
+ value?: 'left' | 'center' | 'right';
+ };
+ allowInputOverMax?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ alwaysEmbed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ autoFocus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ clearTrigger?: {
+ type: StringConstructor;
+ value?: 'always' | 'focus';
+ };
+ clearable?: {
+ type: null;
+ value?: boolean | object;
+ };
+ confirmHold?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmType?: {
+ type: StringConstructor;
+ value?: 'send' | 'search' | 'next' | 'go' | 'done';
+ };
+ cursor: {
+ type: NumberConstructor;
+ value?: number;
+ required?: boolean;
+ };
+ cursorColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ cursorSpacing?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ focus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ format?: {
+ type: undefined;
+ value?: InputFormatType;
+ };
+ holdKeyboard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'vertical' | 'horizontal';
+ };
+ maxcharacter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxlength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderStyle: {
+ type: StringConstructor;
+ value?: string;
+ required?: boolean;
+ };
+ prefixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ safePasswordCertPath?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordCustomHash?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordLength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ safePasswordNonce?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordSalt?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordTimeStamp?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionEnd?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionStart?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ status?: {
+ type: StringConstructor;
+ value?: 'default' | 'success' | 'warning' | 'error';
+ };
+ suffix?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ suffixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ tips?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'text' | 'number' | 'idcard' | 'digit' | 'safe-password' | 'password' | 'nickname';
+ };
+ value?: {
+ type: null;
+ value?: InputValue;
+ };
+}
+export declare type InputFormatType = (value: InputValue) => string;
+export declare type InputValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/input/type.js b/miniprogram_npm/tdesign-miniprogram/input/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.d.ts b/miniprogram_npm/tdesign-miniprogram/link/link.d.ts
new file mode 100644
index 0000000..f407a65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.d.ts
@@ -0,0 +1,26 @@
+import { SuperComponent } from '../common/src/index';
+export default class Link extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdLinkProps;
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'theme, disabled, size, underline, navigatorProps'(): void;
+ prefixIcon(v: any): void;
+ suffixIcon(v: any): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ setClass(): void;
+ onSuccess(e: any): void;
+ onFail(e: any): void;
+ onComplete(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.js b/miniprogram_npm/tdesign-miniprogram/link/link.js
new file mode 100644
index 0000000..bb939a3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-link`;let Link=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-hover`,`${prefix}-class-prefix-icon`,`${prefix}-class-content`,`${prefix}-class-suffix-icon`],this.properties=props,this.options={multipleSlots:!0},this.data={prefix:prefix,classPrefix:name},this.observers={"theme, disabled, size, underline, navigatorProps"(){this.setClass()},prefixIcon(e){this.setData({_prefixIcon:calcIcon(e)})},suffixIcon(e){this.setData({_suffixIcon:calcIcon(e)})}},this.lifetimes={attached(){this.setClass()}},this.methods={setClass(){const{theme:e,size:s,underline:i,navigatorProps:t,disabled:o}=this.properties,n=[name,`${name}--${e}`,`${name}--${s}`],{url:r,appId:a,shortLink:p,target:c,openType:l}=null!=t?t:{},m=!(r||"miniProgram"===c&&(a||p));i&&n.push(`${name}--underline`),(t&&m&&!["navigateBack","exit"].includes(l)||o)&&n.push(`${name}--disabled`),this.setData({className:n.join(" ")})},onSuccess(e){this.triggerEvent("success",e)},onFail(e){this.triggerEvent("fail",e)},onComplete(e){this.triggerEvent("complete",e)}}}};Link=__decorate([wxComponent()],Link);export default Link;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.json b/miniprogram_npm/tdesign-miniprogram/link/link.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.wxml b/miniprogram_npm/tdesign-miniprogram/link/link.wxml
new file mode 100644
index 0000000..8c2445e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.wxss b/miniprogram_npm/tdesign-miniprogram/link/link.wxss
new file mode 100644
index 0000000..1b42d83
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-link--small .t-link__content{font-size:24rpx;line-height:40rpx}.t-link--small .t-link__prefix-icon,.t-link--small .t-link__suffix-icon{font-size:28rpx}.t-link--medium .t-link__content{font-size:28rpx;line-height:44rpx}.t-link--medium .t-link__prefix-icon,.t-link--medium .t-link__suffix-icon{font-size:32rpx}.t-link--large .t-link__content{font-size:32rpx;line-height:48rpx}.t-link--large .t-link__prefix-icon,.t-link--large .t-link__suffix-icon{font-size:36rpx}.t-link--primary{color:var(--td-link-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-link--primary.t-link--underline::after{border-color:var(--td-link-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-link--primary.t-link--disabled{color:var(--td-link-primary-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-link--primary.t-link--hover{color:var(--td-link-primary-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--primary.t-link--hover.t-link--underline::after{border-color:var(--td-link-primary-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--success{color:var(--td-link-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-link--success.t-link--underline::after{border-color:var(--td-link-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-link--success.t-link--disabled{color:var(--td-link-success-disabled-color,var(--td-success-color-disabled,var(--td-success-color-3,#92dab2)))}.t-link--success.t-link--hover{color:var(--td-link-success-active-color,var(--td-success-color-active,var(--td-success-color-6,#008858)))}.t-link--success.t-link--hover.t-link--underline::after{border-color:var(--td-link-success-active-color,var(--td-success-color-active,var(--td-success-color-6,#008858)))}.t-link--warning{color:var(--td-link-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-link--warning.t-link--underline::after{border-color:var(--td-link-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-link--warning.t-link--disabled{color:var(--td-link-warning-disabled-color,var(--td-warning-color-disabled,var(--td-warning-color-3,#ffb98c)))}.t-link--warning.t-link--hover{color:var(--td-link-warning-active-color,var(--td-warning-color-active,var(--td-warning-color-6,#be5a00)))}.t-link--warning.t-link--hover.t-link--underline::after{border-color:var(--td-link-warning-active-color,var(--td-warning-color-active,var(--td-warning-color-6,#be5a00)))}.t-link--default{color:var(--td-link-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-link--default.t-link--underline::after{border-color:var(--td-link-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-link--default.t-link--disabled{color:var(--td-link-default-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-link--default.t-link--hover{color:var(--td-link-default-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--default.t-link--hover.t-link--underline::after{border-color:var(--td-link-default-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--danger{color:var(--td-link-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-link--danger.t-link--underline::after{border-color:var(--td-link-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-link--danger.t-link--disabled{color:var(--td-link-danger-disabled-color,var(--td-error-color-disabled,var(--td-error-color-3,#ffb9b0)))}.t-link--danger.t-link--hover{color:var(--td-link-danger-active-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-link--danger.t-link--hover.t-link--underline::after{border-color:var(--td-link-danger-active-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-link{position:relative;display:flex;align-items:center;box-sizing:content-box}.t-link--underline::after{content:'';position:absolute;left:0;right:0;height:0;bottom:0;opacity:1;border-bottom:2rpx solid #cd0be7}.t-link__prefix-icon:not(:empty)+.t-link__content:not(:empty){padding-left:8rpx}.t-link__content:not(:empty)+.t-link__suffix-icon:not(:empty){padding-left:8rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/props.d.ts b/miniprogram_npm/tdesign-miniprogram/link/props.d.ts
new file mode 100644
index 0000000..bbdacae
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/props.d.ts
@@ -0,0 +1,3 @@
+import { TdLinkProps } from './type';
+declare const props: TdLinkProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/link/props.js b/miniprogram_npm/tdesign-miniprogram/link/props.js
new file mode 100644
index 0000000..b9738de
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/props.js
@@ -0,0 +1 @@
+const props={content:{type:String},disabled:{type:Boolean,value:!1},hover:{type:Boolean},navigatorProps:{type:Object},prefixIcon:{type:null},size:{type:String,value:"medium"},suffixIcon:{type:null},theme:{type:String,value:"default"},underline:{type:Boolean}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/type.d.ts b/miniprogram_npm/tdesign-miniprogram/link/type.d.ts
new file mode 100644
index 0000000..f261141
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/type.d.ts
@@ -0,0 +1,39 @@
+import { SizeEnum } from '../common/common';
+export interface TdLinkProps {
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hover?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ navigatorProps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ prefixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: SizeEnum;
+ };
+ suffixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'primary' | 'danger' | 'warning' | 'success';
+ };
+ underline?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/link/type.js b/miniprogram_npm/tdesign-miniprogram/link/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/index.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/index.d.ts
new file mode 100644
index 0000000..2806bd6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './loading';
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/index.js b/miniprogram_npm/tdesign-miniprogram/loading/index.js
new file mode 100644
index 0000000..00a3bd6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./loading";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/loading.d.ts
new file mode 100644
index 0000000..4d2f2d4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.d.ts
@@ -0,0 +1,77 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdLoadingProps } from './type';
+export interface LoadingProps extends TdLoadingProps {
+}
+export default class Loading extends SuperComponent {
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ show: boolean;
+ };
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: {
+ delay?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ fullscreen?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ indicator?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inheritColor?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: "horizontal" | "vertical";
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ pause?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ progress?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ reverse?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: "circular" | "spinner" | "dots";
+ };
+ };
+ timer: any;
+ observers: {
+ loading(this: any, cur: any): void;
+ };
+ lifetimes: {
+ detached(): void;
+ };
+ refreshPage(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.js b/miniprogram_npm/tdesign-miniprogram/loading/loading.js
new file mode 100644
index 0000000..bb55f05
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-loading`;let Loading=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-text`,`${prefix}-class-indicator`],this.data={prefix:prefix,classPrefix:name,show:!0},this.options={multipleSlots:!0},this.properties=Object.assign({},props),this.timer=null,this.observers={loading(e){const{delay:t}=this.properties;this.timer&&clearTimeout(this.timer),e&&t?this.timer=setTimeout((()=>{this.setData({show:e}),this.timer=null}),t):this.setData({show:e})}},this.lifetimes={detached(){clearTimeout(this.timer)}}}refreshPage(){this.triggerEvent("reload")}};Loading=__decorate([wxComponent()],Loading);export default Loading;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.json b/miniprogram_npm/tdesign-miniprogram/loading/loading.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.wxml b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxml
new file mode 100644
index 0000000..6ffc154
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxml
@@ -0,0 +1 @@
+{{text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.wxss b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxss
new file mode 100644
index 0000000..be8d8c9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-loading{display:inline-flex;align-items:center;justify-content:center;font-size:24rpx}.t-loading--fullscreen{position:fixed;display:flex;align-items:center;vertical-align:middle;justify-content:center;top:0;left:0;width:100%;height:100%;z-index:var(--td-loading-z-index,3500);background-color:var(--td-loading-full-bg-color,rgba(255,255,255,.6))}.t-loading__spinner{position:relative;box-sizing:border-box;width:100%;height:100%;max-width:100%;max-height:100%;animation:rotate .8s linear infinite;color:var(--td-loading-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-loading__spinner.reverse{animation-name:rotateReverse}.t-loading__spinner--spinner{animation-timing-function:steps(12);color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)))}.t-loading__spinner--spinner .t-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.t-loading__spinner--spinner .t-loading__dot::before{display:block;width:5rpx;height:25%;margin:0 auto;background-color:var(--td-loading-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:40%;content:' '}.t-loading__spinner--circular .t-loading__circular{border-radius:100%;width:100%;height:100%;background:conic-gradient(from 180deg at 50% 50%,rgba(255,255,255,0) 0deg,rgba(255,255,255,0) 60deg,currentColor 330deg,rgba(255,255,255,0) 360deg);mask:radial-gradient(transparent calc(50% - 1rpx),#fff 50%);-webkit-mask:radial-gradient(transparent calc(50% - 1rpx),#fff 50%)}.t-loading__spinner--dots{display:flex;justify-content:space-between;align-items:center;animation:none}.t-loading__spinner--dots .t-loading__dot{width:20%;height:20%;border-radius:50%;background-color:var(--td-loading-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));animation-duration:1.8s;animation-name:dotting;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}.t-loading__text{color:var(--td-loading-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-loading-text-font-size,24rpx);line-height:var(--td-loading-text-line-height,40rpx)}.t-loading__text--vertical:not(:first-child):not(:empty){margin-top:12rpx}.t-loading__text--horizontal:not(:first-child):not(:empty){margin-left:16rpx}.t-loading--vertical{flex-direction:column}.t-loading--horizontal{flex-direction:row;vertical-align:top}@keyframes t-bar{0%{width:0}50%{width:70%}100%{width:80%}}@keyframes t-bar-loaded{0%{height:6rpx;opacity:1;width:90%}50%{height:6rpx;opacity:1;width:100%}100%{height:0;opacity:0;width:100%}}.t-loading__dot-1{transform:rotate(30deg);opacity:0}.t-loading__dot-2{transform:rotate(60deg);opacity:.08333333}.t-loading__dot-3{transform:rotate(90deg);opacity:.16666667}.t-loading__dot-4{transform:rotate(120deg);opacity:.25}.t-loading__dot-5{transform:rotate(150deg);opacity:.33333333}.t-loading__dot-6{transform:rotate(180deg);opacity:.41666667}.t-loading__dot-7{transform:rotate(210deg);opacity:.5}.t-loading__dot-8{transform:rotate(240deg);opacity:.58333333}.t-loading__dot-9{transform:rotate(270deg);opacity:.66666667}.t-loading__dot-10{transform:rotate(300deg);opacity:.75}.t-loading__dot-11{transform:rotate(330deg);opacity:.83333333}.t-loading__dot-12{transform:rotate(360deg);opacity:.91666667}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotateReverse{from{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes dotting{0%{opacity:.15}1%{opacity:.8}33%{opacity:.8}34%{opacity:.15}100%{opacity:.15}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/props.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/props.d.ts
new file mode 100644
index 0000000..a05a659
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/props.d.ts
@@ -0,0 +1,3 @@
+import { TdLoadingProps } from './type';
+declare const props: TdLoadingProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/props.js b/miniprogram_npm/tdesign-miniprogram/loading/props.js
new file mode 100644
index 0000000..2dcd35c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/props.js
@@ -0,0 +1 @@
+const props={delay:{type:Number,value:0},duration:{type:Number,value:800},fullscreen:{type:Boolean,value:!1},indicator:{type:Boolean,value:!0},inheritColor:{type:Boolean,value:!1},layout:{type:String,value:"horizontal"},loading:{type:Boolean,value:!0},pause:{type:Boolean,value:!1},progress:{type:Number},reverse:{type:Boolean},size:{type:String,value:"20px"},text:{type:String},theme:{type:String,value:"circular"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/type.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/type.d.ts
new file mode 100644
index 0000000..1f9de06
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/type.d.ts
@@ -0,0 +1,54 @@
+export interface TdLoadingProps {
+ delay?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ fullscreen?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ indicator?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inheritColor?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ pause?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ progress?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ reverse?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'circular' | 'spinner' | 'dots';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/type.js b/miniprogram_npm/tdesign-miniprogram/loading/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/index.d.ts b/miniprogram_npm/tdesign-miniprogram/message-item/index.d.ts
new file mode 100644
index 0000000..82441ea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/index.d.ts
@@ -0,0 +1,17 @@
+///
+///
+///
+import { MessageProps } from '../message/message.interface';
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+interface MessageActionOptionsType extends Optional {
+ context?: Context;
+ selector?: string;
+}
+declare const _default: {
+ info(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ success(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ warning(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ error(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ hide(options: MessageActionOptionsType): void;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/index.js b/miniprogram_npm/tdesign-miniprogram/message-item/index.js
new file mode 100644
index 0000000..33d8d67
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{MessageType}from"../message/message.interface";import{getInstance}from"../common/utils";const showMessage=function(e,s=MessageType.info){const{context:t,selector:o="#t-message"}=e,n=__rest(e,["context","selector"]),a=getInstance(t,o);if(a)return a.resetData((()=>{a.setData(Object.assign({theme:s},n),a.show.bind(a))})),a;console.error("未找到组件,请确认 selector && context 是否正确")};export default{info:e=>showMessage(e,MessageType.info),success:e=>showMessage(e,MessageType.success),warning:e=>showMessage(e,MessageType.warning),error:e=>showMessage(e,MessageType.error),hide(e){const{context:s,selector:t="#t-message"}=Object.assign({},e),o=getInstance(s,t);o&&o.hide()}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.d.ts b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.d.ts
new file mode 100644
index 0000000..49bdb7e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.d.ts
@@ -0,0 +1,39 @@
+///
+import { SuperComponent, ComponentsOptionsType } from '../common/src/index';
+import { MessageProps } from '../message/message.interface';
+export default class Message extends SuperComponent {
+ externalClasses: string[];
+ options: ComponentsOptionsType;
+ properties: MessageProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ loop: number;
+ animation: any[];
+ showAnimation: any[];
+ wrapTop: number;
+ fadeClass: string;
+ };
+ closeTimeoutContext: number;
+ nextAnimationContext: number;
+ resetAnimation: WechatMiniprogram.Animation;
+ observers: {
+ marquee(val: any): void;
+ 'icon, theme'(icon: any, theme: any): void;
+ link(v: any): void;
+ closeBtn(v: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ detached(): void;
+ };
+ memoInitialData(): void;
+ resetData(cb: () => void): void;
+ checkAnimation(): void;
+ clearMessageAnimation(): void;
+ show(offsetHeight?: number): void;
+ hide(): void;
+ reset(): void;
+ handleClose(): void;
+ handleLinkClick(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.js b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.js
new file mode 100644
index 0000000..39b8085
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"../message/props";import{getRect,unitConvert,calcIcon}from"../common/utils";import{isObject}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-message`,SHOW_DURATION=500,THEME_ICON={info:"info-circle-filled",success:"check-circle-filled",warning:"info-circle-filled",error:"error-circle-filled"};let Message=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-icon`,`${prefix}-class-link`,`${prefix}-class-close-btn`],this.options={multipleSlots:!0},this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,loop:-1,animation:[],showAnimation:[],wrapTop:-999,fadeClass:""},this.closeTimeoutContext=0,this.nextAnimationContext=0,this.resetAnimation=wx.createAnimation({duration:0,timingFunction:"linear"}),this.observers={marquee(t){"{}"!==JSON.stringify(t)&&"true"!==JSON.stringify(t)||this.setData({marquee:{speed:50,loop:-1,delay:0}})},"icon, theme"(t,e){this.setData({_icon:calcIcon(t,THEME_ICON[e])})},link(t){const e=isObject(t)?Object.assign({},t):{content:t};this.setData({_link:e})},closeBtn(t){this.setData({_closeBtn:calcIcon(t,"close")})}},this.lifetimes={ready(){this.memoInitialData()},detached(){this.clearMessageAnimation()}}}memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)}resetData(t){this.setData(Object.assign({},this.initialData),t)}checkAnimation(){const{marquee:t}=this.properties;if(!t||0===t.loop)return;const e=t.speed;if(this.data.loop>0)this.data.loop-=1;else if(0===this.data.loop)return void this.setData({animation:this.resetAnimation.translateX(0).step().export()});this.nextAnimationContext&&this.clearMessageAnimation();const i=`#${name}__text-wrap`,s=`#${name}__text`;Promise.all([getRect(this,s),getRect(this,i)]).then((([t,i])=>{this.setData({animation:this.resetAnimation.translateX(i.width).step().export()},(()=>{const s=(t.width+i.width)/e*1e3,a=wx.createAnimation({duration:s}).translateX(-t.width).step().export();setTimeout((()=>{this.nextAnimationContext=setTimeout(this.checkAnimation.bind(this),s),this.setData({animation:a})}),20)}))}))}clearMessageAnimation(){clearTimeout(this.nextAnimationContext),this.nextAnimationContext=0}show(t=0){const{duration:e,marquee:i,offset:s,id:a}=this.properties;this.setData({visible:!0,loop:i.loop||this.data.loop,fadeClass:`${name}__fade`,wrapTop:unitConvert(s[0])+t}),this.reset(),this.checkAnimation(),e&&e>0&&(this.closeTimeoutContext=setTimeout((()=>{this.hide(),this.triggerEvent("duration-end",{self:this})}),e));getRect(this,a?`#${a}`:`#${name}`).then((t=>{this.setData({height:t.height},(()=>{this.setData({fadeClass:""})}))}))}hide(){this.reset(),this.setData({fadeClass:`${name}__fade`}),setTimeout((()=>{this.setData({visible:!1,animation:[]})}),500),"function"==typeof this.onHide&&this.onHide()}reset(){this.nextAnimationContext&&this.clearMessageAnimation(),clearTimeout(this.closeTimeoutContext),this.closeTimeoutContext=0}handleClose(){this.hide(),this.triggerEvent("close-btn-click")}handleLinkClick(){this.triggerEvent("link-click")}};Message=__decorate([wxComponent()],Message);export default Message;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.json b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.json
new file mode 100644
index 0000000..ddbc1d7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-link":"../link/link"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxml b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxml
new file mode 100644
index 0000000..3022a37
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxs b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxs
new file mode 100644
index 0000000..4cf0bd9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxs
@@ -0,0 +1,29 @@
+var isEmptyObj = function (obj) {
+ return JSON.stringify(obj) === '{}';
+};
+
+var changeNumToStr = function (arr) {
+ return arr.map(function (item) {
+ return typeof item === 'number' ? item + 'rpx' : item;
+ });
+};
+
+var getMessageStyles = function (zIndex, offset, wrapTop) {
+ var arr = changeNumToStr(offset || [0, 0]);
+ var left = arr[1] || 0;
+ var right = arr[1] || 0;
+
+ var zIndexStyle = zIndex ? 'z-index:' + zIndex + ';' : '';
+ var styleOffset = '';
+
+ styleOffset += 'top:' + wrapTop + 'px;';
+ styleOffset += 'left:' + left + ';';
+ styleOffset += 'right:' + right + ';';
+
+ return zIndexStyle + styleOffset;
+};
+
+module.exports = {
+ getMessageStyles: getMessageStyles,
+ isEmptyObj: isEmptyObj,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxss b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxss
new file mode 100644
index 0000000..728d398
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-message{position:fixed;top:0;left:0;right:0;transition:opacity .3s,transform .4s,top .4s;display:flex;justify-content:flex-start;height:96rpx;align-items:center;z-index:15000;padding:0 32rpx;box-sizing:border-box;border-radius:var(--td-message-border-radius,var(--td-radius-default,12rpx));line-height:1;background-color:var(--td-message-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));box-shadow:var(--td-message-box-shadow,var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12)))}.t-message__text{display:inline-block;color:var(--td-message-content-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-font-size-base,28rpx);line-height:44rpx}.t-message__text-wrap{flex:1 1 auto;overflow-x:hidden;text-overflow:ellipsis}.t-message__text-nowrap{word-break:keep-all;white-space:nowrap}.t-message--info{color:var(--td-message-info-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-message--success{color:var(--td-message-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-message--warning{color:var(--td-message-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-message--error{color:var(--td-message-error-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-message__icon--left,.t-message__icon--right{font-size:44rpx}.t-message__icon--left:not(:empty){margin-right:var(--td-spacer,16rpx)}.t-message__icon--right{color:var(--td-message-close-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-message__icon--right:not(:empty),.t-message__link{flex:0 0 auto;margin-left:var(--td-spacer,16rpx)}.t-message__fade{opacity:0;transform:translateY(-100%)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/index.d.ts b/miniprogram_npm/tdesign-miniprogram/message/index.d.ts
new file mode 100644
index 0000000..a8cf1e3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/index.d.ts
@@ -0,0 +1,17 @@
+///
+///
+///
+import { MessageProps } from './message.interface';
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+interface MessageActionOptionsType extends Optional {
+ context?: Context;
+ selector?: string;
+}
+declare const _default: {
+ info(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ success(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ warning(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ error(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ hide(options: MessageActionOptionsType): void;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/message/index.js b/miniprogram_npm/tdesign-miniprogram/message/index.js
new file mode 100644
index 0000000..8016163
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{MessageType}from"./message.interface";import{getInstance}from"../common/utils";const showMessage=function(e,s=MessageType.info){const{context:t,selector:o="#t-message"}=e,n=__rest(e,["context","selector"]),r=getInstance(t,o);if("boolean"!=typeof n.single&&(n.single=!0),r)return r.setMessage(n,s),r;console.error("未找到组件,请确认 selector && context 是否正确")};export default{info:e=>showMessage(e,MessageType.info),success:e=>showMessage(e,MessageType.success),warning:e=>showMessage(e,MessageType.warning),error:e=>showMessage(e,MessageType.error),hide(e){const{context:s,selector:t="#t-message"}=Object.assign({},e),o=getInstance(s,t);o&&o.hide()}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.d.ts b/miniprogram_npm/tdesign-miniprogram/message/message.d.ts
new file mode 100644
index 0000000..e3de7ca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.d.ts
@@ -0,0 +1,37 @@
+///
+import { SuperComponent, ComponentsOptionsType } from '../common/src/index';
+import { MessageType, MessageProps } from './message.interface';
+export default class Message extends SuperComponent {
+ options: ComponentsOptionsType;
+ properties: MessageProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ messageList: any[];
+ };
+ index: number;
+ instances: any[];
+ gap: number;
+ observers: {
+ visible(value: any): void;
+ };
+ pageLifetimes: {
+ show(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ memoInitialData(): void;
+ setMessage(msg: MessageProps, theme?: MessageType): void;
+ addMessage(msgObj: MessageProps): void;
+ getOffsetHeight(index?: number): number;
+ showMessageItem(options: MessageProps, id: string, offsetHeight: number): WechatMiniprogram.Component.TrivialInstance;
+ close(id: any): void;
+ hide(id?: string): void;
+ hideAll(): void;
+ removeInstance(id: any): void;
+ removeMsg(id: any): void;
+ handleClose(): void;
+ handleLinkClick(): void;
+ handleDurationEnd(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.interface.d.ts b/miniprogram_npm/tdesign-miniprogram/message/message.interface.d.ts
new file mode 100644
index 0000000..1cfe3d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.interface.d.ts
@@ -0,0 +1,28 @@
+export declare enum MessageType {
+ info = "info",
+ success = "success",
+ warning = "warning",
+ error = "error"
+}
+export interface MessageMarquee {
+ speed?: number;
+ loop?: number;
+ delay?: number;
+}
+export interface MessageProps {
+ visible?: boolean;
+ content: string;
+ align?: string;
+ theme?: MessageType;
+ icon?: boolean | string;
+ link?: string | object;
+ closeBtn?: boolean;
+ action?: string;
+ marquee?: MessageMarquee;
+ offset?: object;
+ duration?: number;
+ zIndex?: number;
+ id?: string;
+ gap?: string | number;
+ single?: boolean;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.interface.js b/miniprogram_npm/tdesign-miniprogram/message/message.interface.js
new file mode 100644
index 0000000..89ec4c4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.interface.js
@@ -0,0 +1 @@
+export var MessageType;!function(e){e.info="info",e.success="success",e.warning="warning",e.error="error"}(MessageType||(MessageType={}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.js b/miniprogram_npm/tdesign-miniprogram/message/message.js
new file mode 100644
index 0000000..cb18993
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{MessageType}from"./message.interface";import props from"./props";import{unitConvert}from"../common/utils";const SHOW_DURATION=400,{prefix:prefix}=config,name=`${prefix}-message`;let Message=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,messageList:[]},this.index=0,this.instances=[],this.gap=12,this.observers={visible(s){s?this.setMessage(this.properties,this.properties.theme):this.setData({messageList:[]})}},this.pageLifetimes={show(){this.hideAll()}},this.lifetimes={ready(){this.memoInitialData()}}}memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)}setMessage(s,e=MessageType.info){let t=`${name}_${this.index}`;s.single&&(t=name),this.gap=unitConvert(s.gap||this.gap);const i=Object.assign(Object.assign({},s),{theme:e,id:t,gap:this.gap}),n=this.instances.findIndex((s=>s.id===t));if(n<0)this.addMessage(i);else{const s=this.instances[n],e=this.getOffsetHeight(n);s.resetData((()=>{s.setData(i,s.show.bind(s,e)),s.onHide=()=>{this.close(t)}}))}}addMessage(s){const e=[...this.data.messageList,{id:s.id}];this.setData({messageList:e},(()=>{const e=this.getOffsetHeight(),t=this.showMessageItem(s,s.id,e);this.instances&&(this.instances.push(t),this.index+=1)}))}getOffsetHeight(s=-1){let e=0,t=s;(-1===t||t>this.instances.length)&&(t=this.instances.length);for(let s=0;s{i.setData(s,i.show.bind(i,t)),i.onHide=()=>{this.close(e)}})),i;console.error("未找到组件,请确认 selector && context 是否正确")}close(s){setTimeout((()=>{this.removeMsg(s)}),400),this.removeInstance(s)}hide(s){s||this.hideAll();const e=this.instances.find((e=>e.id===s));e&&e.hide()}hideAll(){for(let s=0;se.id===s));if(e<0)return;const t=this.instances[e].data.height;this.instances.splice(e,1);for(let s=e;se.id===s));e>-1&&(this.data.messageList.splice(e,1),this.setData({messageList:this.data.messageList}))}handleClose(){this.triggerEvent("close-btn-click")}handleLinkClick(){this.triggerEvent("link-click")}handleDurationEnd(){this.triggerEvent("duration-end")}};Message=__decorate([wxComponent()],Message);export default Message;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.json b/miniprogram_npm/tdesign-miniprogram/message/message.json
new file mode 100644
index 0000000..d44facc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-message-item":"../message-item/message-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.wxml b/miniprogram_npm/tdesign-miniprogram/message/message.wxml
new file mode 100644
index 0000000..de8c248
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.wxss b/miniprogram_npm/tdesign-miniprogram/message/message.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/props.d.ts b/miniprogram_npm/tdesign-miniprogram/message/props.d.ts
new file mode 100644
index 0000000..c5a8f65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/props.d.ts
@@ -0,0 +1,3 @@
+import { TdMessageProps } from './type';
+declare const props: TdMessageProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/message/props.js b/miniprogram_npm/tdesign-miniprogram/message/props.js
new file mode 100644
index 0000000..b95c20a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"left"},closeBtn:{type:null,value:!1},content:{type:String},duration:{type:Number,value:3e3},gap:{type:null,value:12},icon:{type:null,value:!0},link:{type:null},marquee:{type:null,value:!1},offset:{type:Array},single:{type:Boolean,value:!0},theme:{type:String,value:"info"},visible:{type:Boolean,value:!1},defaultVisible:{type:Boolean,value:!1},zIndex:{type:Number,value:15e3}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/type.d.ts b/miniprogram_npm/tdesign-miniprogram/message/type.d.ts
new file mode 100644
index 0000000..718bb3a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/type.d.ts
@@ -0,0 +1,65 @@
+export interface TdMessageProps {
+ align?: {
+ type: StringConstructor;
+ value?: MessageAlignType;
+ };
+ closeBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ gap?: {
+ type: null;
+ value?: string | number | boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ link?: {
+ type: null;
+ value?: string | object;
+ };
+ marquee?: {
+ type: null;
+ value?: boolean | MessageMarquee;
+ };
+ offset?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ single?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: MessageThemeList;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
+export declare type MessageAlignType = 'left' | 'center';
+export interface MessageMarquee {
+ speed?: number;
+ loop?: number;
+ delay?: number;
+}
+export declare type MessageThemeList = 'info' | 'success' | 'warning' | 'error';
diff --git a/miniprogram_npm/tdesign-miniprogram/message/type.js b/miniprogram_npm/tdesign-miniprogram/message/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/index.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/index.js
new file mode 100644
index 0000000..2365cc3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/index.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=6e4,e=36e5,n="millisecond",r="second",i="minute",s="hour",u="day",a="week",o="month",c="quarter",f="year",h="date",d="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,$=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},M=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},m={s:M,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+M(r,2,"0")+":"+M(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;g[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=m;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function y(t){this.$L=S(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[D]=!0}var M=y.prototype;return M.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},M.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},M.$utils=function(){return O},M.isValid=function(){return!(this.$d.toString()===d)},M.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},M.isAfter=function(t,e){return w(t)=2&&n%10<=4&&(n%100<10||n%100>=20)?s[1]:s[2])}var d=function(_,t){return o.test(t)?e[_.month()]:n[_.month()]};d.s=n,d.f=e;var u=function(_,t){return o.test(t)?s[_.month()]:r[_.month()]};u.s=r,u.f=s;var a={name:"ru",weekdays:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),weekdaysShort:"вск_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),months:d,monthsShort:u,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:i,mm:i,h:"час",hh:i,d:"день",dd:i,M:"месяц",MM:i,y:"год",yy:i},ordinal:function(_){return _},meridiem:function(_){return _<4?"ночи":_<12?"утра":_<17?"дня":"вечера"}};return t.default.locale(a,null,!0),a}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-cn.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-cn.js
new file mode 100644
index 0000000..b4a88af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-cn.js
@@ -0,0 +1 @@
+!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){"use strict";var _=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(e),t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return _.default.locale(t,null,!0),t}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-tw.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-tw.js
new file mode 100644
index 0000000..1cb18ac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-tw.js
@@ -0,0 +1 @@
+!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_zh_tw=e(_.dayjs)}(this,(function(_){"use strict";var e=function(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}(_),t={name:"zh-tw",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(_,e){return"W"===e?_+"週":_+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"},meridiem:function(_,e){var t=100*_+e;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return e.default.locale(t,null,!0),t}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/plugin/localeData.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/plugin/localeData.js
new file mode 100644
index 0000000..55e01ee
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/plugin/localeData.js
@@ -0,0 +1 @@
+!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){"use strict";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)}}}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tinycolor2/esm/tinycolor.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tinycolor2/esm/tinycolor.js
new file mode 100644
index 0000000..87d2670
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tinycolor2/esm/tinycolor.js
@@ -0,0 +1 @@
+function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}var trimLeft=/^\s+/,trimRight=/\s+$/;function tinycolor(t,r){if(r=r||{},(t=t||"")instanceof tinycolor)return t;if(!(this instanceof tinycolor))return new tinycolor(t,r);var e=inputToRGB(t);this._originalInput=t,this._r=e.r,this._g=e.g,this._b=e.b,this._a=e.a,this._roundA=Math.round(100*this._a)/100,this._format=r.format||e.format,this._gradientType=r.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=e.ok}function inputToRGB(t){var r={r:0,g:0,b:0},e=1,n=null,a=null,o=null,i=!1,s=!1;return"string"==typeof t&&(t=stringInputToObject(t)),"object"==_typeof(t)&&(isValidCSSUnit(t.r)&&isValidCSSUnit(t.g)&&isValidCSSUnit(t.b)?(r=rgbToRgb(t.r,t.g,t.b),i=!0,s="%"===String(t.r).substr(-1)?"prgb":"rgb"):isValidCSSUnit(t.h)&&isValidCSSUnit(t.s)&&isValidCSSUnit(t.v)?(n=convertToPercentage(t.s),a=convertToPercentage(t.v),r=hsvToRgb(t.h,n,a),i=!0,s="hsv"):isValidCSSUnit(t.h)&&isValidCSSUnit(t.s)&&isValidCSSUnit(t.l)&&(n=convertToPercentage(t.s),o=convertToPercentage(t.l),r=hslToRgb(t.h,n,o),i=!0,s="hsl"),t.hasOwnProperty("a")&&(e=t.a)),e=boundAlpha(e),{ok:i,format:t.format||s,r:Math.min(255,Math.max(r.r,0)),g:Math.min(255,Math.max(r.g,0)),b:Math.min(255,Math.max(r.b,0)),a:e}}function rgbToRgb(t,r,e){return{r:255*bound01(t,255),g:255*bound01(r,255),b:255*bound01(e,255)}}function rgbToHsl(t,r,e){t=bound01(t,255),r=bound01(r,255),e=bound01(e,255);var n,a,o=Math.max(t,r,e),i=Math.min(t,r,e),s=(o+i)/2;if(o==i)n=a=0;else{var h=o-i;switch(a=s>.5?h/(2-o-i):h/(o+i),o){case t:n=(r-e)/h+(r1&&(e-=1),e<1/6?t+6*(r-t)*e:e<.5?r:e<2/3?t+(r-t)*(2/3-e)*6:t}if(t=bound01(t,360),r=bound01(r,100),e=bound01(e,100),0===r)n=a=o=e;else{var s=e<.5?e*(1+r):e+r-e*r,h=2*e-s;n=i(h,s,t+1/3),a=i(h,s,t),o=i(h,s,t-1/3)}return{r:255*n,g:255*a,b:255*o}}function rgbToHsv(t,r,e){t=bound01(t,255),r=bound01(r,255),e=bound01(e,255);var n,a,o=Math.max(t,r,e),i=Math.min(t,r,e),s=o,h=o-i;if(a=0===o?0:h/o,o==i)n=0;else{switch(o){case t:n=(r-e)/h+(r>1)+720)%360;--r;)n.h=(n.h+a)%360,o.push(tinycolor(n));return o}function _monochromatic(t,r){r=r||6;for(var e=tinycolor(t).toHsv(),n=e.h,a=e.s,o=e.v,i=[],s=1/r;r--;)i.push(tinycolor({h:n,s:a,v:o})),o=(o+s)%1;return i}tinycolor.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,r,e,n=this.toRgb();return t=n.r/255,r=n.g/255,e=n.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))},setAlpha:function(t){return this._a=boundAlpha(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=rgbToHsv(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=rgbToHsv(this._r,this._g,this._b),r=Math.round(360*t.h),e=Math.round(100*t.s),n=Math.round(100*t.v);return 1==this._a?"hsv("+r+", "+e+"%, "+n+"%)":"hsva("+r+", "+e+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=rgbToHsl(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=rgbToHsl(this._r,this._g,this._b),r=Math.round(360*t.h),e=Math.round(100*t.s),n=Math.round(100*t.l);return 1==this._a?"hsl("+r+", "+e+"%, "+n+"%)":"hsla("+r+", "+e+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return rgbToHex(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return rgbaToHex(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*bound01(this._r,255))+"%",g:Math.round(100*bound01(this._g,255))+"%",b:Math.round(100*bound01(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*bound01(this._r,255))+"%, "+Math.round(100*bound01(this._g,255))+"%, "+Math.round(100*bound01(this._b,255))+"%)":"rgba("+Math.round(100*bound01(this._r,255))+"%, "+Math.round(100*bound01(this._g,255))+"%, "+Math.round(100*bound01(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(hexNames[rgbToHex(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var r="#"+rgbaToArgbHex(this._r,this._g,this._b,this._a),e=r,n=this._gradientType?"GradientType = 1, ":"";if(t){var a=tinycolor(t);e="#"+rgbaToArgbHex(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+r+",endColorstr="+e+")"},toString:function(t){var r=!!t;t=t||this._format;var e=!1,n=this._a<1&&this._a>=0;return r||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(e=this.toRgbString()),"prgb"===t&&(e=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(e=this.toHexString()),"hex3"===t&&(e=this.toHexString(!0)),"hex4"===t&&(e=this.toHex8String(!0)),"hex8"===t&&(e=this.toHex8String()),"name"===t&&(e=this.toName()),"hsl"===t&&(e=this.toHslString()),"hsv"===t&&(e=this.toHsvString()),e||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return tinycolor(this.toString())},_applyModification:function(t,r){var e=t.apply(null,[this].concat([].slice.call(r)));return this._r=e._r,this._g=e._g,this._b=e._b,this.setAlpha(e._a),this},lighten:function(){return this._applyModification(_lighten,arguments)},brighten:function(){return this._applyModification(_brighten,arguments)},darken:function(){return this._applyModification(_darken,arguments)},desaturate:function(){return this._applyModification(_desaturate,arguments)},saturate:function(){return this._applyModification(_saturate,arguments)},greyscale:function(){return this._applyModification(_greyscale,arguments)},spin:function(){return this._applyModification(_spin,arguments)},_applyCombination:function(t,r){return t.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(_analogous,arguments)},complement:function(){return this._applyCombination(_complement,arguments)},monochromatic:function(){return this._applyCombination(_monochromatic,arguments)},splitcomplement:function(){return this._applyCombination(_splitcomplement,arguments)},triad:function(){return this._applyCombination(polyad,[3])},tetrad:function(){return this._applyCombination(polyad,[4])}},tinycolor.fromRatio=function(t,r){if("object"==_typeof(t)){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]="a"===n?t[n]:convertToPercentage(t[n]));t=e}return tinycolor(t,r)},tinycolor.equals=function(t,r){return!(!t||!r)&&tinycolor(t).toRgbString()==tinycolor(r).toRgbString()},tinycolor.random=function(){return tinycolor.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},tinycolor.mix=function(t,r,e){e=0===e?0:e||50;var n=tinycolor(t).toRgb(),a=tinycolor(r).toRgb(),o=e/100;return tinycolor({r:(a.r-n.r)*o+n.r,g:(a.g-n.g)*o+n.g,b:(a.b-n.b)*o+n.b,a:(a.a-n.a)*o+n.a})},tinycolor.readability=function(t,r){var e=tinycolor(t),n=tinycolor(r);return(Math.max(e.getLuminance(),n.getLuminance())+.05)/(Math.min(e.getLuminance(),n.getLuminance())+.05)},tinycolor.isReadable=function(t,r,e){var n,a,o=tinycolor.readability(t,r);switch(a=!1,(n=validateWCAG2Parms(e)).level+n.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7}return a},tinycolor.mostReadable=function(t,r,e){var n,a,o,i,s=null,h=0;a=(e=e||{}).includeFallbackColors,o=e.level,i=e.size;for(var l=0;lh&&(h=n,s=tinycolor(r[l]));return tinycolor.isReadable(t,s,{level:o,size:i})||!a?s:(e.includeFallbackColors=!1,tinycolor.mostReadable(t,["#fff","#000"],e))};var names=tinycolor.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},hexNames=tinycolor.hexNames=flip(names);function flip(t){var r={};for(var e in t)t.hasOwnProperty(e)&&(r[t[e]]=e);return r}function boundAlpha(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function bound01(t,r){isOnePointZero(t)&&(t="100%");var e=isPercentage(t);return t=Math.min(r,Math.max(0,parseFloat(t))),e&&(t=parseInt(t*r,10)/100),Math.abs(t-r)<1e-6?1:t%r/parseFloat(r)}function clamp01(t){return Math.min(1,Math.max(0,t))}function parseIntFromHex(t){return parseInt(t,16)}function isOnePointZero(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function isPercentage(t){return"string"==typeof t&&-1!=t.indexOf("%")}function pad2(t){return 1==t.length?"0"+t:""+t}function convertToPercentage(t){return t<=1&&(t=100*t+"%"),t}function convertDecimalToHex(t){return Math.round(255*parseFloat(t)).toString(16)}function convertHexToDecimal(t){return parseIntFromHex(t)/255}var matchers=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",r="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+e),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+e),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+e),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function isValidCSSUnit(t){return!!matchers.CSS_UNIT.exec(t)}function stringInputToObject(t){t=t.replace(trimLeft,"").replace(trimRight,"").toLowerCase();var r,e=!1;if(names[t])t=names[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};return(r=matchers.rgb.exec(t))?{r:r[1],g:r[2],b:r[3]}:(r=matchers.rgba.exec(t))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=matchers.hsl.exec(t))?{h:r[1],s:r[2],l:r[3]}:(r=matchers.hsla.exec(t))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=matchers.hsv.exec(t))?{h:r[1],s:r[2],v:r[3]}:(r=matchers.hsva.exec(t))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=matchers.hex8.exec(t))?{r:parseIntFromHex(r[1]),g:parseIntFromHex(r[2]),b:parseIntFromHex(r[3]),a:convertHexToDecimal(r[4]),format:e?"name":"hex8"}:(r=matchers.hex6.exec(t))?{r:parseIntFromHex(r[1]),g:parseIntFromHex(r[2]),b:parseIntFromHex(r[3]),format:e?"name":"hex"}:(r=matchers.hex4.exec(t))?{r:parseIntFromHex(r[1]+""+r[1]),g:parseIntFromHex(r[2]+""+r[2]),b:parseIntFromHex(r[3]+""+r[3]),a:convertHexToDecimal(r[4]+""+r[4]),format:e?"name":"hex8"}:!!(r=matchers.hex3.exec(t))&&{r:parseIntFromHex(r[1]+""+r[1]),g:parseIntFromHex(r[2]+""+r[2]),b:parseIntFromHex(r[3]+""+r[3]),format:e?"name":"hex"}}function validateWCAG2Parms(t){var r,e;return"AA"!==(r=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==r&&(r="AA"),"small"!==(e=(t.size||"small").toLowerCase())&&"large"!==e&&(e="small"),{level:r,size:e}}export{tinycolor as default};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tslib/index.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tslib/index.js
new file mode 100644
index 0000000..3b890d3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tslib/index.js
@@ -0,0 +1 @@
+var __extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__createBinding,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension;!function(e){var t="object"==typeof global?global:"object"==typeof self?self:"object"==typeof this?this:{};function r(e,r){return e!==t&&("function"==typeof Object.create?Object.defineProperty(e,"__esModule",{value:!0}):e.__esModule=!0),function(t,n){return e[t]=r?r(t,n):n}}"function"==typeof define&&define.amd?define("tslib",["exports"],(function(n){e(r(t,r(n)))})):"object"==typeof module&&"object"==typeof module.exports?e(r(t,r(module.exports))):e(r(t))}((function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};__extends=function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)},__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},__param=function(e,t){return function(r,n){t(r,n,e)}},__esDecorate=function(e,t,r,n,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,s=n.kind,_="getter"===s?"get":"setter"===s?"set":"value",u=!t&&e?n.static?e:e.prototype:null,l=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),f=!1,p=r.length-1;p>=0;p--){var y={};for(var d in n)y[d]="access"===d?{}:n[d];for(var d in n.access)y.access[d]=n.access[d];y.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var v=(0,r[p])("accessor"===s?{get:l.get,set:l.set}:l[_],y);if("accessor"===s){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(c=i(v.get))&&(l.get=c),(c=i(v.set))&&(l.set=c),(c=i(v.init))&&o.unshift(c)}else(c=i(v))&&("field"===s?o.unshift(c):l[_]=c)}u&&Object.defineProperty(u,n.name,l),f=!0},__runInitializers=function(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i},__spread=function(){for(var e=[],t=0;t1||c(e,t)}))},t&&(n[e]=t(n[e])))}function c(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(s,_):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function s(e){c("next",e)}function _(e){c("throw",e)}function u(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}},__asyncDelegator=function(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:!1}:o?o(t):t}:o}},__asyncValues=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};var r=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)};__importStar=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=n(e),a=0;a string;
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/page-scroll.js b/miniprogram_npm/tdesign-miniprogram/mixins/page-scroll.js
new file mode 100644
index 0000000..bb775d1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/page-scroll.js
@@ -0,0 +1 @@
+import{getCurrentPage}from"../common/utils";const onPageScroll=function(r){const e=getCurrentPage();if(!e)return;const{pageScroller:o}=e;null==o||o.forEach((e=>{"function"==typeof e&&e(r)}))};export default(r="onScroll")=>Behavior({attached(){var e;const o=getCurrentPage();if(!o)return;const l=null===(e=this[r])||void 0===e?void 0:e.bind(this);l&&(this._pageScroller=l),Array.isArray(o.pageScroller)?o.pageScroller.push(l):o.pageScroller="function"==typeof o.onPageScroll?[o.onPageScroll.bind(o),l]:[l],o.onPageScroll=onPageScroll},detached(){var r;const e=getCurrentPage();e&&(e.pageScroller=(null===(r=e.pageScroller)||void 0===r?void 0:r.filter((r=>r!==this._pageScroller)))||[])}});
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.d.ts
new file mode 100644
index 0000000..4821f37
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.d.ts
@@ -0,0 +1,2 @@
+declare const themeChangeBehavior: string;
+export default themeChangeBehavior;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.js b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.js
new file mode 100644
index 0000000..335997b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.js
@@ -0,0 +1 @@
+import{appBaseInfo}from"../common/utils";const themeChangeBehavior=Behavior({data:{theme:"light"},attached(){this._initTheme()},methods:{_initTheme(){const e=this;e.setData({theme:appBaseInfo.theme}),wx.onThemeChange((t=>{e.setData({theme:t.theme})}))}}});export default themeChangeBehavior;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/touch.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/touch.d.ts
new file mode 100644
index 0000000..ae80eca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/touch.d.ts
@@ -0,0 +1,2 @@
+declare const _default: string;
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/touch.js b/miniprogram_npm/tdesign-miniprogram/mixins/touch.js
new file mode 100644
index 0000000..0eccd27
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/touch.js
@@ -0,0 +1 @@
+const MinDistance=10,getDirection=(t,s)=>t>s&&t>10?"horizontal":s>t&&s>10?"vertical":"";export default Behavior({methods:{resetTouchStatus(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0},touchStart(t){this.resetTouchStatus();const[s]=t.touches;this.startX=s.clientX,this.startY=s.clientY},touchMove(t){const[s]=t.touches;this.deltaX=s.clientX-this.startX,this.deltaY=s.clientY-this.startY,this.offsetX=Math.abs(this.deltaX),this.offsetY=Math.abs(this.deltaY),this.direction=getDirection(this.offsetX,this.offsetY)}}});
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/transition.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/transition.d.ts
new file mode 100644
index 0000000..8c23e35
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/transition.d.ts
@@ -0,0 +1 @@
+export default function transition(): string;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/transition.js b/miniprogram_npm/tdesign-miniprogram/mixins/transition.js
new file mode 100644
index 0000000..173ec7b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/transition.js
@@ -0,0 +1 @@
+import config from"../common/config";const{prefix:prefix}=config;export default function transition(){return Behavior({properties:{visible:{type:Boolean,value:null,observer:"watchVisible"},appear:Boolean,name:{type:String,value:"fade"},durations:{type:Number,optionalTypes:[Array]}},data:{transitionClass:"",transitionDurations:300,className:"",realVisible:!1},created(){this.status="",this.transitionT=0},attached(){this.durations=this.getDurations(),this.data.visible&&this.enter(),this.inited=!0},detached(){clearTimeout(this.transitionT)},methods:{watchVisible(t,i){this.inited&&t!==i&&(t?this.enter():this.leave())},getDurations(){const{durations:t}=this.data;return Array.isArray(t)?t.map((t=>Number(t))):[Number(t),Number(t)]},enter(){const{name:t}=this.data,[i]=this.durations;this.status="entering",this.setData({realVisible:!0,transitionClass:`${prefix}-${t}-enter ${prefix}-${t}-enter-active`}),setTimeout((()=>{this.setData({transitionClass:`${prefix}-${t}-enter-active ${prefix}-${t}-enter-to`})}),30),"number"==typeof i&&i>0&&(this.transitionT=setTimeout(this.entered.bind(this),i+30))},entered(){this.customDuration=!1,clearTimeout(this.transitionT),this.status="entered",this.setData({transitionClass:""})},leave(){const{name:t}=this.data,[,i]=this.durations;this.status="leaving",this.setData({transitionClass:`${prefix}-${t}-leave ${prefix}-${t}-leave-active`}),clearTimeout(this.transitionT),setTimeout((()=>{this.setData({transitionClass:`${prefix}-${t}-leave-active ${prefix}-${t}-leave-to`})}),30),"number"==typeof i&&i>0&&(this.customDuration=!0,this.transitionT=setTimeout(this.leaved.bind(this),i+30))},leaved(){this.customDuration=!1,this.triggerEvent("leaved"),clearTimeout(this.transitionT),this.status="leaved",this.setData({transitionClass:""})},onTransitionEnd(){this.customDuration||(clearTimeout(this.transitionT),"entering"===this.status&&this.data.visible?this.entered():"leaving"!==this.status||this.data.visible||(this.leaved(),this.setData({realVisible:!1})))}}})}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.d.ts
new file mode 100644
index 0000000..908f771
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.d.ts
@@ -0,0 +1,2 @@
+declare const useCustomNavbarBehavior: string;
+export default useCustomNavbarBehavior;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.js b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.js
new file mode 100644
index 0000000..d455c92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.js
@@ -0,0 +1 @@
+import{systemInfo}from"../common/utils";const useCustomNavbarBehavior=Behavior({properties:{usingCustomNavbar:{type:Boolean,value:!1},customNavbarHeight:{type:Number,value:0}},data:{distanceTop:0},lifetimes:{attached(){this.properties.usingCustomNavbar&&this.calculateCustomNavbarDistanceTop()}},methods:{calculateCustomNavbarDistanceTop(){const{statusBarHeight:t}=systemInfo,a=wx.getMenuButtonBoundingClientRect(),e=a.top+a.bottom-t;this.setData({distanceTop:Math.max(e,this.properties.customNavbarHeight+t)})}}});export default useCustomNavbarBehavior;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.d.ts b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.d.ts
new file mode 100644
index 0000000..a53dce9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent } from '../common/src/index';
+export default class Navbar extends SuperComponent {
+ externalClasses: string[];
+ timer: any;
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdNavbarProps;
+ observers: {
+ visible(this: Navbar, visible: any): void;
+ 'title,titleMaxLength'(this: any): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ boxStyle: string;
+ showTitle: string;
+ hideLeft: boolean;
+ hideCenter: boolean;
+ _menuRect: any;
+ _leftRect: any;
+ _boxStyle: {};
+ };
+ attached(): void;
+ detached(): void;
+ methods: {
+ initStyle(): void;
+ calcCenterStyle(leftRect: WechatMiniprogram.BoundingClientRectResult, menuRect: WechatMiniprogram.BoundingClientRectResult, defaultStyle: object): void;
+ getLeftRect(): void;
+ getMenuRect(): void;
+ onMenuButtonBoundingClientRectWeightChange(): void;
+ offMenuButtonBoundingClientRectWeightChange(): void;
+ queryElements(capsuleRect: any): void;
+ goBack(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.js b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.js
new file mode 100644
index 0000000..1814064
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{getRect,systemInfo}from"../common/utils";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-navbar`;let Navbar=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-placeholder`,`${prefix}-class-content`,`${prefix}-class-title`,`${prefix}-class-left`,`${prefix}-class-center`,`${prefix}-class-left-icon`,`${prefix}-class-home-icon`,`${prefix}-class-capsule`,`${prefix}-class-nav-btn`],this.timer=null,this.options={multipleSlots:!0},this.properties=props,this.observers={visible(t){const{animation:e}=this.properties,i=`${name}${t?"--visible":"--hide"}`;this.setData({visibleClass:`${i}${e?"-animation":""}`}),this.timer&&clearTimeout(this.timer),e&&(this.timer=setTimeout((()=>{this.setData({visibleClass:i})}),300))},"title,titleMaxLength"(){const{title:t}=this.properties,e=this.properties.titleMaxLength||Number.MAX_SAFE_INTEGER;let i=t.slice(0,e);e`${t}: ${e}`)).join("; ");this.setData({boxStyle:a,_boxStyle:s})},getLeftRect(){getRect(this,`.${name}__left`).then((t=>{t.right>this.data._leftRect.right&&this.calcCenterStyle(t,this.data._menuRect,this.data._boxStyle)}))},getMenuRect(){if(wx.getMenuButtonBoundingClientRect){const t=wx.getMenuButtonBoundingClientRect();this.setData({_menuRect:t,_leftRect:{right:systemInfo.windowWidth-t.left}})}},onMenuButtonBoundingClientRectWeightChange(){wx.onMenuButtonBoundingClientRectWeightChange&&wx.onMenuButtonBoundingClientRectWeightChange((t=>this.queryElements(t)))},offMenuButtonBoundingClientRectWeightChange(){wx.offMenuButtonBoundingClientRectWeightChange&&wx.offMenuButtonBoundingClientRectWeightChange((t=>this.queryElements(t)))},queryElements(t){Promise.all([getRect(this,`.${this.data.classPrefix}__left`),getRect(this,`.${this.data.classPrefix}__center`)]).then((([e,i])=>{Math.round(e.right)>t.left?this.setData({hideLeft:!0,hideCenter:!0}):Math.round(i.right)>t.left?this.setData({hideLeft:!1,hideCenter:!0}):this.setData({hideLeft:!1,hideCenter:!1})}))},goBack(){const{delta:t}=this.data,e=this;this.triggerEvent("go-back"),t>0&&wx.navigateBack({delta:t,fail(t){e.triggerEvent("fail",t)},complete(t){e.triggerEvent("complete",t)},success(t){e.triggerEvent("success",t)}})}}}attached(){this.initStyle(),this.getLeftRect(),this.onMenuButtonBoundingClientRectWeightChange()}detached(){this.offMenuButtonBoundingClientRectWeightChange()}};Navbar=__decorate([wxComponent()],Navbar);export default Navbar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.json b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxml b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxml
new file mode 100644
index 0000000..ddb1cb1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxml
@@ -0,0 +1 @@
+{{showTitle}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxss b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxss
new file mode 100644
index 0000000..1fcd8f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-navbar--fixed .t-navbar__content{position:fixed;top:0;left:0;z-index:5001}.t-navbar--visible{display:''}.t-navbar--visible-animation{opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar--hide-animation{opacity:0;transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar--hide{display:none}.t-navbar__placeholder{height:var(--td-navbar-height,48px);padding-top:var(--td-navbar-padding-top,20px);position:relative;visibility:hidden;box-sizing:content-box}.t-navbar__content{position:relative;z-index:1;height:var(--td-navbar-height,48px);width:calc(100% - var(--td-navbar-right,95px));padding-right:var(--td-navbar-right,95px);padding-top:var(--td-navbar-padding-top,20px);color:var(--td-navbar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:var(--td-navbar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));display:flex;align-items:center;box-sizing:content-box}.t-navbar__left{position:relative;box-sizing:border-box;max-width:var(--td-navbar-left-max-width);overflow:hidden;display:flex;align-items:center;margin-left:var(--td-spacer-1,24rpx);transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar__left-arrow{font-size:var(--td-navbar-left-arrow-size,24px)}.t-navbar__left--hide{opacity:0}.t-navbar__capsule{box-sizing:border-box;width:var(--td-navbar-capsule-width,88px);height:var(--td-navbar-capsule-height,32px);display:flex;align-items:center}.t-navbar__capsule::before{content:'';position:absolute;z-index:-1;top:0;left:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;box-sizing:border-box;border-radius:calc(var(--td-navbar-capsule-border-radius,16px) * 2);border:2rpx solid var(--td-navbar-capsule-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-navbar__capsule:empty{display:none}.t-navbar__center{font-size:18px;text-align:center;position:absolute;bottom:0;left:var(--td-navbar-center-left,var(--td-navbar-right,95px));width:var(--td-navbar-center-width);height:var(--td-navbar-height,48px);line-height:var(--td-navbar-height,48px);flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar__center:empty{display:none}.t-navbar__center-title{font-size:var(--td-navbar-title-font-size,18px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:var(--td-navbar-title-font-weight,600)}.t-navbar__center--hide{opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/navbar/props.d.ts
new file mode 100644
index 0000000..168bee2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdNavbarProps } from './type';
+declare const props: TdNavbarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/props.js b/miniprogram_npm/tdesign-miniprogram/navbar/props.js
new file mode 100644
index 0000000..34779c2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/props.js
@@ -0,0 +1 @@
+const props={animation:{type:Boolean,value:!0},delta:{type:Number,value:1},fixed:{type:Boolean,value:!0},leftArrow:{type:Boolean,value:!1},title:{type:String},titleMaxLength:{type:Number},visible:{type:Boolean,value:!0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/navbar/type.d.ts
new file mode 100644
index 0000000..11a4e77
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdNavbarProps {
+ animation?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ delta?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ leftArrow?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ titleMaxLength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/type.js b/miniprogram_npm/tdesign-miniprogram/navbar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.d.ts b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.d.ts
new file mode 100644
index 0000000..783c09b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent, ComponentsOptionsType } from '../common/src/index';
+export default class NoticeBar extends SuperComponent {
+ externalClasses: string[];
+ options: ComponentsOptionsType;
+ properties: import("./type").TdNoticeBarProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ loop: number;
+ __ready: boolean;
+ };
+ observers: {
+ marquee(val: any): void;
+ visible(visible: any): void;
+ prefixIcon(prefixIcon: any): void;
+ suffixIcon(v: any): void;
+ content(): void;
+ };
+ lifetimes: {
+ created(): void;
+ detached(): void;
+ ready(): void;
+ };
+ methods: {
+ initAnimation(): void;
+ startScrollAnimation(isFirstScroll?: boolean): void;
+ show(): void;
+ clearNoticeBarAnimation(): void;
+ setPrefixIcon(v: any): void;
+ onChange(e: WechatMiniprogram.SwiperChange): void;
+ clickPrefixIcon(): void;
+ clickContent(): void;
+ clickSuffixIcon(): void;
+ clickOperation(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.js b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.js
new file mode 100644
index 0000000..c77be96
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{getRect,getAnimationFrame,calcIcon}from"../common/utils";import props from"./props";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-notice-bar`,THEME_ICON={info:"info-circle-filled",success:"check-circle-filled",warning:"info-circle-filled",error:"error-circle-filled"};let NoticeBar=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-prefix-icon`,`${prefix}-class-operation`,`${prefix}-class-suffix-icon`],this.options={multipleSlots:!0,pureDataPattern:/^__/},this.properties=props,this.data={prefix:prefix,classPrefix:name,loop:-1,__ready:!1},this.observers={marquee(t){"{}"!==JSON.stringify(t)&&"true"!==JSON.stringify(t)||this.setData({marquee:{speed:50,loop:-1,delay:0}})},visible(t){this.data.__ready&&(t?this.show():this.clearNoticeBarAnimation())},prefixIcon(t){this.setPrefixIcon(t)},suffixIcon(t){this.setData({_suffixIcon:calcIcon(t)})},content(){this.data.__ready&&(this.clearNoticeBarAnimation(),this.initAnimation())}},this.lifetimes={created(){this.resetAnimation=wx.createAnimation({duration:0,timingFunction:"linear"})},detached(){this.clearNoticeBarAnimation()},ready(){this.show(),this.setData({__ready:!0})}},this.methods={initAnimation(){const t=`.${name}__content-wrap`,i=`.${name}__content`;getAnimationFrame(this,(()=>{Promise.all([getRect(this,i),getRect(this,t)]).then((([t,i])=>{const{marquee:e}=this.properties;if(null!=t&&null!=i&&t.width&&i.width&&!1!==e&&(e||i.width{}))}))},startScrollAnimation(t=!1){this.clearNoticeBarAnimation();const{wrapWidth:i,nodeWidth:e,firstAnimationDuration:n,animationDuration:o,delay:a}=this.data,r=t?a:0,s=t?n:o;this.setData({animationData:this.resetAnimation.translateX(t?0:i).step().export()}),getAnimationFrame(this,(()=>{this.setData({animationData:wx.createAnimation({duration:s,timingFunction:"linear",delay:r}).translateX(-e).step().export()})})),this.nextAnimationContext=setTimeout((()=>{this.data.loop>0?(this.data.loop-=1,this.startScrollAnimation()):0===this.data.loop?this.setData({animationData:this.resetAnimation.translateX(0).step().export()}):this.data.loop<0&&this.startScrollAnimation()}),s+r)},show(){this.clearNoticeBarAnimation(),this.setPrefixIcon(this.properties.prefixIcon),this.initAnimation()},clearNoticeBarAnimation(){this.nextAnimationContext&&clearTimeout(this.nextAnimationContext),this.nextAnimationContext=null},setPrefixIcon(t){const{theme:i}=this.properties;this.setData({_prefixIcon:calcIcon(t,THEME_ICON[i])})},onChange(t){const{current:i,source:e}=t.detail;this.triggerEvent("change",{current:i,source:e})},clickPrefixIcon(){this.triggerEvent("click",{trigger:"prefix-icon"})},clickContent(){this.triggerEvent("click",{trigger:"content"})},clickSuffixIcon(){this.triggerEvent("click",{trigger:"suffix-icon"})},clickOperation(){this.triggerEvent("click",{trigger:"operation"})}}}};NoticeBar=__decorate([wxComponent()],NoticeBar);export default NoticeBar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.json b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxml b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxml
new file mode 100644
index 0000000..63ec32d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxml
@@ -0,0 +1 @@
+{{item}}{{content}}{{operation}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxss b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxss
new file mode 100644
index 0000000..190fccc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-notice-bar{display:flex;align-items:flex-start;padding:26rpx 32rpx;font-size:var(--td-font-size-base,28rpx)}.t-notice-bar__content-wrap{flex:1;overflow-x:hidden;line-height:44rpx;color:var(--td-notice-bar-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-notice-bar__content{display:inline-block;white-space:nowrap}.t-notice-bar__content-wrapable{white-space:normal}.t-notice-bar__content--vertical{display:block;height:44rpx;line-height:44rpx}.t-notice-bar__content--vertical-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-notice-bar__prefix-icon{color:inherit}.t-notice-bar__prefix-icon:not(:empty){padding-right:var(--td-spacer,16rpx);width:44rpx}.t-notice-bar__suffix-icon{color:var(--td-notice-bar-suffix-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-notice-bar__prefix-icon,.t-notice-bar__suffix-icon{font-size:44rpx}.t-notice-bar__prefix-icon:empty,.t-notice-bar__suffix-icon:empty{display:none}.t-notice-bar__operation{display:inline-flex;vertical-align:top;color:var(--td-notice-bar-operation-font-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:700}.t-notice-bar__operation:empty{display:none}.t-notice-bar__suffix-icon:not(:empty){padding-left:var(--td-spacer,16rpx);width:44rpx}.t-notice-bar--info{color:var(--td-notice-bar-info-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-notice-bar-info-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-notice-bar--success{color:var(--td-notice-bar-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-notice-bar-success-bg-color,var(--td-success-color-1,#e3f9e9))}.t-notice-bar--warning{color:var(--td-notice-bar-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-notice-bar-warning-bg-color,var(--td-warning-color-1,#fff1e9))}.t-notice-bar--error{color:var(--td-notice-bar-error-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-notice-bar-error-bg-color,var(--td-error-color-1,#fff0ed))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.d.ts
new file mode 100644
index 0000000..5fe19dc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdNoticeBarProps } from './type';
+declare const props: TdNoticeBarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/props.js b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.js
new file mode 100644
index 0000000..fed5df5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.js
@@ -0,0 +1 @@
+const props={content:{type:null},direction:{type:String,value:"horizontal"},interval:{type:Number,value:2e3},marquee:{type:null,value:!1},operation:{type:String},prefixIcon:{type:null,value:!0},suffixIcon:{type:null},theme:{type:String,value:"info"},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.d.ts
new file mode 100644
index 0000000..61c7ca6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.d.ts
@@ -0,0 +1,47 @@
+export interface TdNoticeBarProps {
+ content?: {
+ type: null;
+ value?: string | string[];
+ };
+ direction?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ interval?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ marquee?: {
+ type: null;
+ value?: boolean | NoticeBarMarquee;
+ };
+ operation?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ prefixIcon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ suffixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'info' | 'success' | 'warning' | 'error';
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export interface NoticeBarMarquee {
+ speed?: number;
+ loop?: number;
+ delay?: number;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/type.js b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/index.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/index.d.ts
new file mode 100644
index 0000000..164efb7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './overlay';
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/index.js b/miniprogram_npm/tdesign-miniprogram/overlay/index.js
new file mode 100644
index 0000000..fdfba01
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./overlay";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.d.ts
new file mode 100644
index 0000000..98ff36d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent } from '../common/src/index';
+import { TdOverlayProps } from './type';
+export interface OverlayProps extends TdOverlayProps {
+}
+export default class Overlay extends SuperComponent {
+ properties: TdOverlayProps;
+ behaviors: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ computedStyle: string;
+ _zIndex: number;
+ };
+ observers: {
+ backgroundColor(v: any): void;
+ zIndex(v: any): void;
+ };
+ methods: {
+ handleClick(): void;
+ noop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.js b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.js
new file mode 100644
index 0000000..98718b1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import transition from"../mixins/transition";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-overlay`;let Overlay=class extends SuperComponent{constructor(){super(...arguments),this.properties=props,this.behaviors=[transition(),useCustomNavbar],this.data={prefix:prefix,classPrefix:name,computedStyle:"",_zIndex:11e3},this.observers={backgroundColor(o){this.setData({computedStyle:o?`background-color: ${o};`:""})},zIndex(o){0!==o&&this.setData({_zIndex:o})}},this.methods={handleClick(){this.triggerEvent("click",{visible:!this.properties.visible})},noop(){}}}};Overlay=__decorate([wxComponent()],Overlay);export default Overlay;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.json b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxml b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxml
new file mode 100644
index 0000000..5543e5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxss b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxss
new file mode 100644
index 0000000..2294ce6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-overlay{position:fixed;top:0;left:0;width:100%;bottom:0;background-color:var(--td-overlay-bg-color,var(--td-font-gray-2,rgba(0,0,0,.6)));transition-property:opacity;transition-duration:var(--td-overlay-transition-duration,300ms);transition-timing-function:ease}.t-fade-enter{opacity:0}.t-fade-leave-to{opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/props.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/props.d.ts
new file mode 100644
index 0000000..e42d7f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/props.d.ts
@@ -0,0 +1,3 @@
+import { TdOverlayProps } from './type';
+declare const props: TdOverlayProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/props.js b/miniprogram_npm/tdesign-miniprogram/overlay/props.js
new file mode 100644
index 0000000..d0ffe55
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/props.js
@@ -0,0 +1 @@
+const props={backgroundColor:{type:String,value:""},duration:{type:Number,value:300},preventScrollThrough:{type:Boolean,value:!0},zIndex:{type:Number,value:11e3}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/type.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/type.d.ts
new file mode 100644
index 0000000..e46cec9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/type.d.ts
@@ -0,0 +1,26 @@
+export interface TdOverlayProps {
+ backgroundColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/type.js b/miniprogram_npm/tdesign-miniprogram/overlay/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.d.ts b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.d.ts
new file mode 100644
index 0000000..39dcbd2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.d.ts
@@ -0,0 +1,38 @@
+import { SuperComponent, RelationsOptions, ComponentsOptionsType } from '../common/src/index';
+import { PickerItemOption } from './type';
+export default class PickerItem extends SuperComponent {
+ relations: RelationsOptions;
+ options: ComponentsOptionsType;
+ externalClasses: string[];
+ properties: import("./type").TdPickerItemProps;
+ observers: {
+ 'options, pickerKeys'(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ offset: number;
+ duration: number;
+ value: string;
+ curIndex: number;
+ columnIndex: number;
+ pickerKeys: {
+ value: string;
+ label: string;
+ };
+ formatOptions: PickerItemOption[];
+ };
+ lifetimes: {
+ created(): void;
+ };
+ methods: {
+ onClickItem(event: WechatMiniprogram.TouchEvent): void;
+ onTouchStart(event: any): void;
+ onTouchMove(event: any): void;
+ onTouchEnd(event: any): void;
+ formatOption(options: PickerItemOption[], columnIndex: number, format: any): any[];
+ updateSelected(index: number, trigger: boolean): void;
+ update(): void;
+ getCount(): any;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
new file mode 100644
index 0000000..84e1dfc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-picker-item`,ANIMATION_DURATION=1e3,INERTIA_TIME=300,INERTIA_DISTANCE=15,range=function(t,e,i){return Math.min(Math.max(t,e),i)},momentum=(t,e)=>{let i=t;return i=Math.abs(i/e)/.005*(i<0?-1:1),i};let PickerItem=class extends SuperComponent{constructor(){super(...arguments),this.relations={"../picker/picker":{type:"parent",linked(t){if("keys"in t.data){const{keys:e}=t.data;if(null===e||JSON.stringify(this.data.pickerKeys)===JSON.stringify(e))return;this.setData({pickerKeys:e})}}}},this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`],this.properties=props,this.observers={"options, pickerKeys"(){this.update()}},this.data={prefix:prefix,classPrefix:name,offset:0,duration:0,value:"",curIndex:0,columnIndex:0,pickerKeys:{value:"value",label:"label"},formatOptions:props.options.value},this.lifetimes={created(){this.StartY=0,this.StartOffset=0,this.startTime=0}},this.methods={onClickItem(t){const{index:e}=t.currentTarget.dataset,{pickItemHeight:i}=this.data,s=range(e,0,this.getCount()-1);s!==this._selectedIndex&&this.setData({offset:-s*i,curIndex:s,duration:200}),this.updateSelected(s,!0)},onTouchStart(t){this.StartY=t.touches[0].clientY,this.StartOffset=this.data.offset,this.startTime=Date.now(),this.setData({duration:0})},onTouchMove(t){const{StartY:e,StartOffset:i}=this,{pickItemHeight:s}=this.data,o=t.touches[0].clientY-e,n=range(i+o,-this.getCount()*s,0);this.setData({offset:n})},onTouchEnd(t){const{offset:e,pickItemHeight:i}=this.data,{startTime:s}=this;if(e===this.StartOffset)return;let o=0;const n=t.changedTouches[0].clientY-this.StartY,a=Date.now()-s;a<300&&Math.abs(n)>15&&(o=momentum(n,a));const r=range(e+o,-this.getCount()*i,0),c=range(Math.round(-r/i),0,this.getCount()-1);this.setData({offset:-c*i,duration:1e3,curIndex:c}),c!==this._selectedIndex&&this.updateSelected(c,!0)},formatOption:(t,e,i)=>"function"!=typeof i?t:t.map((t=>i(t,e))),updateSelected(t,e){var i,s,o;const{columnIndex:n,pickerKeys:a,formatOptions:r}=this.data;this._selectedIndex=t,this._selectedValue=null===(i=r[t])||void 0===i?void 0:i[null==a?void 0:a.value],this._selectedLabel=null===(s=r[t])||void 0===s?void 0:s[null==a?void 0:a.label],e&&(null===(o=this.$parent)||void 0===o||o.triggerColumnChange({index:t,column:n}))},update(){const{options:t,value:e,pickerKeys:i,pickItemHeight:s,format:o,columnIndex:n}=this.data,a=this.formatOption(t,n,o),r=a.findIndex((t=>t[null==i?void 0:i.value]===e)),c=r>0?r:0;this.updateSelected(c,!1),this.setData({formatOptions:a,offset:-c*s,curIndex:c})},getCount(){var t,e;return null===(e=null===(t=this.data)||void 0===t?void 0:t.options)||void 0===e?void 0:e.length}}}};PickerItem=__decorate([wxComponent()],PickerItem);export default PickerItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.json b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxml b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxml
new file mode 100644
index 0000000..3ab0cc0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxml
@@ -0,0 +1 @@
+{{option[pickerKeys.label]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxss b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxss
new file mode 100644
index 0000000..318e8d0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';:host{display:flex}.t-picker-item__group{height:var(--td-picker-group-height,400rpx);overflow:hidden;flex:1;z-index:1}.t-picker-item__wrapper{padding:144rpx 0}.t-picker-item__item{display:flex;justify-content:center;align-items:center;color:var(--td-picker-item-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-picker-item-font-size,var(--td-font-size-m,32rpx))}.t-picker-item__item-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.t-picker-item__item--active{color:var(--td-picker-item-active-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:600}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/picker-item/props.d.ts
new file mode 100644
index 0000000..1140c78
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPickerItemProps } from './type';
+declare const props: TdPickerItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/props.js b/miniprogram_npm/tdesign-miniprogram/picker-item/props.js
new file mode 100644
index 0000000..ab01464
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/props.js
@@ -0,0 +1 @@
+const props={format:{type:null},options:{type:Array,value:[]}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/picker-item/type.d.ts
new file mode 100644
index 0000000..661c9d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/type.d.ts
@@ -0,0 +1,14 @@
+export interface TdPickerItemProps {
+ format?: {
+ type: undefined;
+ value?: (option: PickerItemOption, columnIndex: number) => PickerItemOption;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: PickerItemOption[];
+ };
+}
+export interface PickerItemOption {
+ label: string;
+ value: string | number;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/type.js b/miniprogram_npm/tdesign-miniprogram/picker-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.d.ts b/miniprogram_npm/tdesign-miniprogram/picker/picker.d.ts
new file mode 100644
index 0000000..c07d9b6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.d.ts
@@ -0,0 +1,37 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Picker extends SuperComponent {
+ behaviors: string[];
+ properties: import("./type").TdPickerProps;
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ observers: {
+ 'value, visible'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ defaultPopUpProps: {};
+ defaultPopUpzIndex: number;
+ pickItemHeight: number;
+ };
+ methods: {
+ updateChildren(): void;
+ getSelectedValue(): any[];
+ getColumnIndexes(): any;
+ onConfirm(): void;
+ triggerColumnChange({ column, index }: {
+ column: any;
+ index: any;
+ }): void;
+ onCancel(): void;
+ onPopupChange(e: any): void;
+ close(trigger: any): void;
+ };
+ ready(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.js b/miniprogram_npm/tdesign-miniprogram/picker/picker.js
new file mode 100644
index 0000000..103143b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{rpx2px}from"../common/utils";import config from"../common/config";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-picker`;let Picker=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.properties=props,this.externalClasses=[`${prefix}-class`,`${prefix}-class-confirm`,`${prefix}-class-cancel`,`${prefix}-class-title`],this.options={multipleSlots:!0},this.relations={"../picker-item/picker-item":{type:"child",linked(){this.updateChildren()}}},this.observers={"value, visible"(){this.updateChildren()}},this.lifetimes={attached(){this.setData({pickItemHeight:rpx2px(this.properties.itemHeight)})}},this.data={prefix:prefix,classPrefix:name,defaultPopUpProps:{},defaultPopUpzIndex:11500,pickItemHeight:0},this.methods={updateChildren(){const{pickItemHeight:e}=this.data,{value:t,defaultValue:i}=this.properties;this.$children.forEach(((s,r)=>{var l,n;s.setData({value:null!==(n=null!==(l=null==t?void 0:t[r])&&void 0!==l?l:null==i?void 0:i[r])&&void 0!==n?n:"",columnIndex:r,pickItemHeight:e}),s.update()}))},getSelectedValue(){return[this.$children.map((e=>e._selectedValue)),this.$children.map((e=>e._selectedLabel))]},getColumnIndexes(){return this.$children.map(((e,t)=>({column:t,index:e._selectedIndex})))},onConfirm(){const[e,t]=this.getSelectedValue(),i=this.getColumnIndexes();this.close("confirm-btn"),this.triggerEvent("confirm",{value:e,label:t,columns:i}),JSON.stringify(this.data.value)!==JSON.stringify(e)&&this.triggerEvent("change",{value:e,label:t,columns:i})},triggerColumnChange({column:e,index:t}){const[i,s]=this.getSelectedValue();this.triggerEvent("pick",{value:i,label:s,column:e,index:t})},onCancel(){this.close("cancel-btn"),this.triggerEvent("cancel")},onPopupChange(e){const{visible:t}=e.detail;this.close("overlay"),this.triggerEvent("visible-change",{visible:t})},close(e){this.data.autoClose&&this.setData({visible:!1}),this.triggerEvent("close",{trigger:e})}}}ready(){this.$children.map(((e,t)=>e.columnIndex=t))}};Picker=__decorate([wxComponent()],Picker);export default Picker;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.json b/miniprogram_npm/tdesign-miniprogram/picker/picker.json
new file mode 100644
index 0000000..f34a4c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.wxml b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxml
new file mode 100644
index 0000000..a03e416
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.wxss b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxss
new file mode 100644
index 0000000..35c260f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-picker{position:relative;background-color:var(--td-picker-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border-top-left-radius:var(--td-picker-border-radius,24rpx);border-top-right-radius:var(--td-picker-border-radius,24rpx)}.t-picker__toolbar{display:flex;align-items:center;justify-content:space-between;overflow:hidden;height:var(--td-picker-toolbar-height,116rpx)}.t-picker__title{flex:1;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--td-picker-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:var(--td-picker-title-line-height,52rpx);font-weight:var(--td-picker-title-font-weight,600);font-size:var(--td-picker-title-font-size,36rpx)}.t-picker__cancel,.t-picker__confirm{display:flex;align-items:center;justify-content:center;user-select:none;font-size:var(--td-picker-button-font-size,32rpx);height:100%;padding:0 32rpx}.t-picker__cancel{color:var(--td-picker-cancel-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-picker__confirm{color:var(--td-picker-confirm-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-picker__main{position:relative;display:flex;justify-content:center;padding-left:64rpx;padding-right:64rpx}.t-picker__mask{position:absolute;left:0;right:0;z-index:3;backface-visibility:hidden;pointer-events:none;height:96rpx}.t-picker__mask--top{top:0;background:linear-gradient(180deg,var(--td-picker-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff))) 0,var(--td-picker-transparent-color) 100%)}.t-picker__mask--bottom{bottom:0;background:linear-gradient(180deg,var(--td-picker-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff))) 0,var(--td-picker-transparent-color) 100%);transform:matrix(1,0,0,-1,0,0)}.t-picker__indicator{position:absolute;left:32rpx;right:32rpx;top:144rpx;pointer-events:none;background-color:var(--td-picker-indicator-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));border-radius:var(--td-picker-indicator-border-radius,12rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/props.d.ts b/miniprogram_npm/tdesign-miniprogram/picker/props.d.ts
new file mode 100644
index 0000000..d673411
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPickerProps } from './type';
+declare const props: TdPickerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/props.js b/miniprogram_npm/tdesign-miniprogram/picker/props.js
new file mode 100644
index 0000000..ec78d87
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!0},cancelBtn:{type:null,value:!0},confirmBtn:{type:null,value:!0},header:{type:Boolean,value:!0},itemHeight:{type:Number,value:80},keys:{type:Object},popupProps:{type:Object,value:{}},title:{type:String,value:""},usePopup:{type:Boolean,value:!0},usingCustomNavbar:{type:Boolean,value:!1},value:{type:Array,value:null},defaultValue:{type:Array},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/template.wxml b/miniprogram_npm/tdesign-miniprogram/picker/template.wxml
new file mode 100644
index 0000000..73d7aeb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/template.wxml
@@ -0,0 +1 @@
+{{cancelBtn}}{{title}}{{confirmBtn}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/type.d.ts b/miniprogram_npm/tdesign-miniprogram/picker/type.d.ts
new file mode 100644
index 0000000..571b4e3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/type.d.ts
@@ -0,0 +1,57 @@
+import { PopupProps } from '../popup/index';
+import { KeysType } from '../common/common';
+export interface TdPickerProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ cancelBtn?: {
+ type: null;
+ value?: boolean | string;
+ };
+ confirmBtn?: {
+ type: null;
+ value?: boolean | string;
+ };
+ header?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ itemHeight?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ defaultValue?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type PickerValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/type.js b/miniprogram_npm/tdesign-miniprogram/picker/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/index.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/index.d.ts
new file mode 100644
index 0000000..03c4cf3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './popup';
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/index.js b/miniprogram_npm/tdesign-miniprogram/popup/index.js
new file mode 100644
index 0000000..64b982f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./popup";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/popup.d.ts
new file mode 100644
index 0000000..23dae8c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.d.ts
@@ -0,0 +1,19 @@
+import { TdPopupProps } from './type';
+import { SuperComponent } from '../common/src/index';
+export declare type PopupProps = TdPopupProps;
+export default class Popup extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: TdPopupProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ methods: {
+ handleOverlayClick(): void;
+ handleClose(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.js b/miniprogram_npm/tdesign-miniprogram/popup/popup.js
new file mode 100644
index 0000000..d2d57c6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.js
@@ -0,0 +1,46 @@
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length; var r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc; var d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+import { SuperComponent, wxComponent } from '../common/src/index';
+import config from '../common/config';
+import props from './props';
+import transition from '../mixins/transition';
+import useCustomNavbar from '../mixins/using-custom-navbar';
+delete props.visible;
+const { prefix } = config;
+const name = `${prefix}-popup`;
+let Popup = class Popup extends SuperComponent {
+ constructor() {
+ super(...arguments);
+ this.externalClasses = [`${prefix}-class`, `${prefix}-class-content`];
+ this.behaviors = [transition(), useCustomNavbar];
+ this.options = {
+ multipleSlots: true,
+ };
+ this.properties = props;
+ this.data = {
+ prefix,
+ classPrefix: name,
+ };
+ this.methods = {
+ handleOverlayClick() {
+ const { closeOnOverlayClick } = this.properties;
+ if (closeOnOverlayClick) {
+ this.triggerEvent('visible-change', { visible: false, trigger: 'overlay' });
+ }
+ },
+ handleClose() {
+ this.triggerEvent('visible-change', { visible: false, trigger: 'close-btn' });
+ },
+ };
+ }
+};
+Popup = __decorate([
+ wxComponent()
+], Popup);
+export default Popup;
+
+//# sourceMappingURL=popup.js.map
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.json b/miniprogram_npm/tdesign-miniprogram/popup/popup.json
new file mode 100644
index 0000000..7782d34
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-overlay":"../overlay/overlay","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.wxml b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxml
new file mode 100644
index 0000000..97fc8d2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.wxs b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxs
new file mode 100644
index 0000000..2f4a01f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxs
@@ -0,0 +1,18 @@
+function getPopupStyles(zIndex, distanceTop, placement) {
+ var zIndexStyle = zIndex ? 'z-index:' + zIndex + ';' : '';
+ if ((placement === 'top' || placement === 'left' || placement === 'right') && distanceTop) {
+ zIndexStyle = zIndexStyle + 'top:' + distanceTop + 'px;' + '--td-popup-distance-top:' + distanceTop + 'px;';
+ }
+ return zIndexStyle;
+}
+
+function onContentTouchMove(e) {
+ if (e.target && e.target.dataset.prevention) {
+ return false;
+ }
+}
+
+module.exports = {
+ getPopupStyles: getPopupStyles,
+ onContentTouchMove: onContentTouchMove,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.wxss b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxss
new file mode 100644
index 0000000..03d77c8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-popup{position:fixed;z-index:11500;max-height:calc(100vh - var(--td-popup-distance-top,0));transition:all .3s ease;background-color:var(--td-popup-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-popup__content{position:relative;height:100%;z-index:1}.t-popup__close{position:absolute;top:0;right:0;padding:20rpx;line-height:1;color:var(--td-popup-close-btn-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-popup--top{top:0;left:0;width:100%;border-bottom-left-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx));border-bottom-right-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx))}.t-popup--bottom{bottom:0;left:0;width:100%;border-top-left-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx));border-top-right-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx));padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.t-popup--left{top:0;left:0;height:100%}.t-popup--right{top:0;right:0;height:100%}.t-popup--center{top:50%;left:50%;transform:scale(1) translate3d(-50%,-50%,0);transform-origin:0 0;border-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx))}.t-popup.t-fade-enter.t-popup--top,.t-popup.t-fade-leave-to.t-popup--top{transform:translateY(-100%)}.t-popup.t-fade-enter.t-popup--bottom,.t-popup.t-fade-leave-to.t-popup--bottom{transform:translateY(100%)}.t-popup.t-fade-enter.t-popup--left,.t-popup.t-fade-leave-to.t-popup--left{transform:translateX(-100%)}.t-popup.t-fade-enter.t-popup--right,.t-popup.t-fade-leave-to.t-popup--right{transform:translateX(100%)}.t-popup.t-fade-enter.t-popup--center,.t-popup.t-fade-leave-to.t-popup--center{transform:scale(.6) translate3d(-50%,-50%,0);opacity:0}.t-popup.t-dialog-enter.t-popup--center,.t-popup.t-dialog-leave-to.t-popup--center{transform:scale(.6) translate3d(-50%,-50%,0);opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/props.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/props.d.ts
new file mode 100644
index 0000000..e23cd6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPopupProps } from './type';
+declare const props: TdPopupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/props.js b/miniprogram_npm/tdesign-miniprogram/popup/props.js
new file mode 100644
index 0000000..af388c4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/props.js
@@ -0,0 +1 @@
+const props={closeBtn:{type:Boolean},closeOnOverlayClick:{type:Boolean,value:!0},content:{type:String},duration:{type:Number,value:240},externalClasses:{type:Array},overlayProps:{type:Object,value:{}},placement:{type:String,value:"top"},preventScrollThrough:{type:Boolean,value:!0},showOverlay:{type:Boolean,value:!0},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean},zIndex:{type:Number,value:11500}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/type.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/type.d.ts
new file mode 100644
index 0000000..914749e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/type.d.ts
@@ -0,0 +1,55 @@
+import { OverlayProps } from '../overlay/index';
+export interface TdPopupProps {
+ closeBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ closeOnOverlayClick?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-overlay', 't-class-content'];
+ };
+ overlayProps?: {
+ type: ObjectConstructor;
+ value?: OverlayProps;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'top' | 'left' | 'right' | 'bottom' | 'center';
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/type.js b/miniprogram_npm/tdesign-miniprogram/popup/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/progress.d.ts
new file mode 100644
index 0000000..ea66946
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.d.ts
@@ -0,0 +1,24 @@
+import { SuperComponent } from '../common/src/index';
+export default class Progress extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdProgressProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ colorBar: string;
+ heightBar: string;
+ computedStatus: string;
+ computedProgress: number;
+ isIOS: boolean;
+ };
+ attached(): void;
+ observers: {
+ percentage(percentage: any): void;
+ color(color: any): void;
+ strokeWidth(strokeWidth: any): string;
+ trackColor(trackColor: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.js b/miniprogram_npm/tdesign-miniprogram/progress/progress.js
new file mode 100644
index 0000000..02f2d59
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getBackgroundColor}from"./utils";import{unitConvert,isIOS as isIOSValidator}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-progress`;let Progress=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-bar`,`${prefix}-class-label`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,colorBar:"",heightBar:"",computedStatus:"",computedProgress:0,isIOS:!1},this.observers={percentage(o){o=Math.max(0,Math.min(o,100)),this.setData({computedStatus:100===o?"success":"",computedProgress:o})},color(o){this.setData({colorBar:getBackgroundColor(o),colorCircle:"object"==typeof o?"":o})},strokeWidth(o){if(!o)return"";this.setData({heightBar:unitConvert(o)})},trackColor(o){this.setData({bgColorBar:o})}}}attached(){const o=isIOSValidator();this.setData({isIOS:o})}};Progress=__decorate([wxComponent()],Progress);export default Progress;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.json b/miniprogram_npm/tdesign-miniprogram/progress/progress.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.wxml b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxml
new file mode 100644
index 0000000..7a504e3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxml
@@ -0,0 +1 @@
+{{ _.isString(label)? label: computedProgress + '%' }}{{ _.isString(label)? label: computedProgress + '%' }}{{ _.isString(label)? label: computedProgress + '%' }}{{ _.isString(label)? label: computedProgress + '%' }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.wxs b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxs
new file mode 100644
index 0000000..2a514ea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxs
@@ -0,0 +1,80 @@
+var utils = require('../common/utils.wxs');
+
+var STATUS = ['success', 'error', 'warning'];
+var STATUS_TEXT = ['success', 'error', 'warning', 'active'];
+
+var PRO_THEME = {
+ LINE: 'line',
+ PLUMP: 'plump',
+ CIRCLE: 'circle',
+};
+
+var STATUS_COLOR = {
+ success: '#00a870',
+ error: '#e34d59',
+ warning: '#ed7b2f',
+};
+
+var LINE_STATUS_ICON = {
+ success: 'check-circle-filled',
+ error: 'error-circle-filled',
+ warning: 'error-circle-filled',
+};
+
+var CIRCLE_STATUS_ICON = {
+ success: 'check',
+ error: 'close',
+ warning: 'error',
+};
+
+/**
+ *
+ * 1. getIOSAriaLabel, getAndroidAriaLabel 两个函数的初衷是处理progress异常情况的文案识别。
+ * 2. iOS可以识别%,而安卓不会识别%,如 80, iOS可以识别成 80%, 而安卓只会80,因此android部分做了一个% 拼接,后续看是否有更好的方案去解决。
+ * 3. 安卓 talkback 版本为 8.1.0.278818032 ,只会读一次 80, 最新版本talkback 会读 80.0, 80。(目前也是一个痛点,啰嗦了)
+ *
+ */
+
+function getIOSAriaLabel(status) {
+ if (status === 'error') {
+ return '进度失败';
+ }
+ if (status === 'warning') {
+ return '进度异常';
+ }
+ return '';
+}
+
+function getAndroidAriaLabel(status) {
+ if (status === 'error') {
+ return '%' + ',进度失败';
+ }
+ if (status === 'warning') {
+ return '%' + ',进度异常';
+ }
+ return '%';
+}
+
+function getCircleStyle(size, strokeWidth) {
+ var styles = {
+ '--td-progress-stroke-circle-width': utils.addUnit(strokeWidth),
+ };
+
+ if (!utils.includes(['default', 'micro'], size)) {
+ styles['--td-progress-circle-width'] = utils.addUnit(size);
+ }
+
+ return utils._style(styles);
+}
+
+module.exports = {
+ STATUS: STATUS,
+ STATUS_TEXT: STATUS_TEXT,
+ PRO_THEME: PRO_THEME,
+ STATUS_COLOR: STATUS_COLOR,
+ LINE_STATUS_ICON: LINE_STATUS_ICON,
+ CIRCLE_STATUS_ICON: CIRCLE_STATUS_ICON,
+ getAndroidAriaLabel: getAndroidAriaLabel,
+ getIOSAriaLabel: getIOSAriaLabel,
+ getCircleStyle: getCircleStyle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.wxss b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxss
new file mode 100644
index 0000000..8ccf05b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-progress{--td-progress-inner-bg-color:var(--td-brand-color, var(--td-primary-color-7, #0052d9));--td-progress-track-bg-color:var(--td-bg-color-component, var(--td-gray-color-3, #e7e7e7));--td-progress-circle-from:0deg}.t-progress__inner{position:relative;height:100%;background:var(--td-progress-inner-bg-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:var(--td-radius-round,999px);transition:all var(--td-anim-duration-base,.2s) var(--td-anim-time-fn-easing,cubic-bezier(.38,0,.24,1))}.t-progress__bar{width:100%;height:var(--td-progress-line-stroke-width,12rpx);overflow:hidden;background:var(--td-progress-track-bg-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-radius:var(--td-radius-round,999px)}.t-progress__info{padding-left:var(--td-spacer,16rpx);box-sizing:border-box;color:var(--td-progress-info-dark-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));white-space:nowrap;display:inline-flex}.t-progress--thin{display:flex;justify-content:space-between;align-items:center}.t-progress--thin .t-progress__icon{font-size:calc(var(--td-font-size-base,28rpx) + 2px)}.t-progress--plump{height:var(--td-progress-stroke-plump-width,40rpx);border-radius:calc(var(--td-progress-stroke-plump-width,40rpx)/ 2);display:flex;align-items:center}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-s,24rpx)}.t-progress--over-ten .t-progress__info{position:absolute;top:50%;right:var(--td-spacer,16rpx);color:var(--td-progress-info-light-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));transform:translateY(-50%)}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress__canvas--circle{position:relative;width:var(--td-progress-circle-width,224rpx);height:var(--td-progress-circle-width,224rpx);border-radius:var(--td-radius-circle,50%)}.t-progress__canvas--circle .t-progress__canvas--inner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - var(--td-progress-stroke-circle-width,12rpx)*2);height:calc(100% - var(--td-progress-stroke-circle-width,12rpx)*2);border-radius:var(--td-radius-circle,50%);display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:var(--td-progress-circle-inner-bg-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-progress__canvas--circle .t-progress__info{margin:0;font-size:var(--td-progress-circle-label-font-size,40rpx);font-weight:var(--td-progress-circle-label-font-weight,700);line-height:var(--td-progress-circle-label-line-height,56rpx);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.t-progress__canvas--circle--micro{--td-progress-circle-width:48rpx;--td-progress-stroke-circle-width:4rpx;--td-progress-circle-icon-font-size:40rpx}.t-progress--status--active .t-progress__inner::before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:'';animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-progress-inner-bg-color-active,var(--td-bg-color-container,var(--td-font-white-1,#fff)));opacity:.2}.t-progress--status--success .t-progress__inner{background:var(--td-progress-inner-bg-color-success,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-progress--status--success .t-progress__icon{color:var(--td-success-color,var(--td-success-color-5,#2ba471))}.t-progress--status--warning .t-progress__inner{background:var(--td-progress-inner-bg-color-warning,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color,var(--td-warning-color-5,#e37318))}.t-progress--status--error .t-progress__inner{background:var(--td-progress-inner-bg-color-error,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-progress--status--error .t-progress__icon{color:var(--td-error-color,var(--td-error-color-6,#d54941))}@keyframes progress-active-animation{0%{width:0;opacity:.1}35%{width:50%;opacity:.4}100%{width:100%;opacity:0}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/props.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/props.d.ts
new file mode 100644
index 0000000..214f11a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/props.d.ts
@@ -0,0 +1,3 @@
+import { TdProgressProps } from './type';
+declare const props: TdProgressProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/props.js b/miniprogram_npm/tdesign-miniprogram/progress/props.js
new file mode 100644
index 0000000..a9d2f19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/props.js
@@ -0,0 +1 @@
+const props={color:{type:null,value:""},label:{type:null,value:!0},percentage:{type:Number,value:0},size:{type:null,value:"default"},status:{type:String},strokeWidth:{type:null},theme:{type:String,value:"line"},trackColor:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/type.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/type.d.ts
new file mode 100644
index 0000000..a77b327
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/type.d.ts
@@ -0,0 +1,36 @@
+export interface TdProgressProps {
+ color?: {
+ type: null;
+ value?: string | Array | Record;
+ };
+ label?: {
+ type: null;
+ value?: string | boolean;
+ };
+ percentage?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ size?: {
+ type: null;
+ value?: string | number;
+ };
+ status?: {
+ type: StringConstructor;
+ value?: ProgressStatus;
+ };
+ strokeWidth?: {
+ type: null;
+ value?: string | number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: ProgressTheme;
+ };
+ trackColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export declare type ProgressStatus = 'success' | 'error' | 'warning' | 'active';
+export declare type ProgressTheme = 'line' | 'plump' | 'circle';
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/type.js b/miniprogram_npm/tdesign-miniprogram/progress/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/utils.d.ts
new file mode 100644
index 0000000..84b7889
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/utils.d.ts
@@ -0,0 +1,11 @@
+export declare type Gradients = {
+ [percent: string]: string;
+};
+export declare type FromTo = {
+ from: string;
+ to: string;
+};
+export declare type LinearGradient = {
+ direction?: string;
+} & (Gradients | FromTo);
+export declare function getBackgroundColor(color: string | string[] | LinearGradient): string;
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/utils.js b/miniprogram_npm/tdesign-miniprogram/progress/utils.js
new file mode 100644
index 0000000..6ff6c76
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/utils.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";export function getBackgroundColor(r){if("string"==typeof r)return r;if(Array.isArray(r))return r[0]&&"#"===r[0][0]&&r.unshift("90deg"),`linear-gradient( ${r.join(",")} )`;const{from:t,to:e,direction:n="to right"}=r,i=__rest(r,["from","to","direction"]);let o=Object.keys(i);if(o.length){o=o.sort(((r,t)=>parseFloat(r.substr(0,r.length-1))-parseFloat(t.substr(0,t.length-1))));return`linear-gradient(${n}, ${o.map((r=>`${i[r]} ${r}`)).join(",")})`}return`linear-gradient(${n}, ${t}, ${e})`}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.d.ts b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.d.ts
new file mode 100644
index 0000000..b7cb543
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPullDownRefreshProps } from './type';
+declare const props: TdPullDownRefreshProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.js b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.js
new file mode 100644
index 0000000..d655b8a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:Boolean,value:!1},enableBackToTop:{type:Boolean,value:!0},enablePassive:{type:Boolean,value:!1},externalClasses:{type:Array},loadingBarHeight:{type:null,value:50},loadingProps:{type:Object},loadingTexts:{type:Array,value:[]},lowerThreshold:{type:null,value:50},maxBarHeight:{type:null,value:80},refreshTimeout:{type:Number,value:3e3},scrollIntoView:{type:String,value:""},showScrollbar:{type:Boolean,value:!0},upperThreshold:{type:null,value:50},usingCustomNavbar:{type:Boolean,value:!1},value:{type:Boolean,value:null},defaultValue:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.d.ts b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.d.ts
new file mode 100644
index 0000000..106f65f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.d.ts
@@ -0,0 +1,59 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+export default class PullDownRefresh extends SuperComponent {
+ pixelRatio: number;
+ startPoint: {
+ pageX: number;
+ pageY: number;
+ } | null;
+ isPulling: boolean;
+ maxRefreshAnimateTimeFlag: number;
+ closingAnimateTimeFlag: number;
+ refreshStatusTimer: any;
+ externalClasses: string[];
+ behaviors: string[];
+ options: {
+ multipleSlots: boolean;
+ pureDataPattern: RegExp;
+ };
+ relations: RelationsOptions;
+ properties: import("./type").TdPullDownRefreshProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ distanceTop: number;
+ barHeight: number;
+ tipsHeight: number;
+ refreshStatus: number;
+ loosing: boolean;
+ enableToRefresh: boolean;
+ scrollTop: number;
+ _maxBarHeight: number;
+ _loadingBarHeight: number;
+ };
+ lifetimes: {
+ attached(): void;
+ detached(): void;
+ };
+ observers: {
+ value(val: any): void;
+ barHeight(val: any): void;
+ maxBarHeight(v: any): void;
+ loadingBarHeight(v: any): void;
+ };
+ methods: {
+ resetTimer(): void;
+ onScrollToBottom(): void;
+ onScrollToTop(): void;
+ onScroll(e: any): void;
+ onTouchStart(e: WechatMiniprogram.Component.TrivialInstance): void;
+ onTouchMove(e: WechatMiniprogram.Component.TrivialInstance): void;
+ onTouchEnd(e: WechatMiniprogram.Component.TrivialInstance): void;
+ onDragStart(e: WechatMiniprogram.ScrollViewDragStart): void;
+ onDragging(e: WechatMiniprogram.ScrollViewDragging): void;
+ onDragEnd(e: WechatMiniprogram.ScrollViewDragEnd): void;
+ doRefresh(): void;
+ setRefreshBarHeight(value: number): Promise;
+ setScrollTop(scrollTop: number): void;
+ scrollToTop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.js b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.js
new file mode 100644
index 0000000..829b91c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect,systemInfo,unitConvert}from"../common/utils";import{canUseProxyScrollView}from"../common/version";const{prefix:prefix}=config,name=`${prefix}-pull-down-refresh`,defaultLoadingTexts=["下拉刷新","松手刷新","正在刷新","刷新完成"];let PullDownRefresh=class extends SuperComponent{constructor(){super(...arguments),this.pixelRatio=1,this.startPoint=null,this.isPulling=!1,this.maxRefreshAnimateTimeFlag=0,this.closingAnimateTimeFlag=0,this.refreshStatusTimer=null,this.externalClasses=[`${prefix}-class`,`${prefix}-class-loading`,`${prefix}-class-text`,`${prefix}-class-indicator`],this.behaviors=canUseProxyScrollView()?["wx://proxy-scroll-view"]:[],this.options={multipleSlots:!0,pureDataPattern:/^_/},this.relations={"../back-top/back-top":{type:"descendant"}},this.properties=props,this.data={prefix:prefix,classPrefix:name,distanceTop:0,barHeight:0,tipsHeight:0,refreshStatus:-1,loosing:!1,enableToRefresh:!0,scrollTop:0,_maxBarHeight:0,_loadingBarHeight:0},this.lifetimes={attached(){const{screenWidth:t}=systemInfo,{loadingTexts:e,maxBarHeight:s,loadingBarHeight:i}=this.properties,r=Array.isArray(e)&&e.length>=4;this.setData({_maxBarHeight:unitConvert(s),_loadingBarHeight:unitConvert(i),loadingTexts:r?e:defaultLoadingTexts}),this.pixelRatio=750/t,getRect(this,`.${name}`).then((t=>{this.setData({distanceTop:t.top})}))},detached(){clearTimeout(this.maxRefreshAnimateTimeFlag),clearTimeout(this.closingAnimateTimeFlag),this.resetTimer()}},this.observers={value(t){t?this.doRefresh():(clearTimeout(this.maxRefreshAnimateTimeFlag),this.data.refreshStatus>0&&this.setData({refreshStatus:3}),this.setData({barHeight:0}))},barHeight(t){this.resetTimer(),0===t&&-1!==this.data.refreshStatus&&(this.refreshStatusTimer=setTimeout((()=>{this.setData({refreshStatus:-1})}),240)),this.setData({tipsHeight:Math.min(t,this.data._loadingBarHeight)})},maxBarHeight(t){this.setData({_maxBarHeight:unitConvert(t)})},loadingBarHeight(t){this.setData({_loadingBarHeight:unitConvert(t)})}},this.methods={resetTimer(){this.refreshStatusTimer&&(clearTimeout(this.refreshStatusTimer),this.refreshStatusTimer=null)},onScrollToBottom(){this.triggerEvent("scrolltolower")},onScrollToTop(){this.setData({enableToRefresh:!0})},onScroll(t){const{scrollTop:e}=t.detail;this.setData({enableToRefresh:0===e}),this.triggerEvent("scroll",{scrollTop:e})},onTouchStart(t){if(this.isPulling||!this.data.enableToRefresh||this.properties.disabled)return;const{touches:e}=t;if(1!==e.length)return;const{pageX:s,pageY:i}=e[0];this.setData({loosing:!1}),this.startPoint={pageX:s,pageY:i},this.isPulling=!0},onTouchMove(t){if(!this.startPoint||this.properties.disabled)return;const{touches:e}=t;if(1!==e.length)return;const{pageY:s}=e[0],i=s-this.startPoint.pageY;i>0&&this.setRefreshBarHeight(i)},onTouchEnd(t){if(!this.startPoint||this.properties.disabled)return;const{changedTouches:e}=t;if(1!==e.length)return;const{pageY:s}=e[0],i=s-this.startPoint.pageY;this.startPoint=null,this.isPulling=!1,this.setData({loosing:!0}),i>this.data._loadingBarHeight?(this._trigger("change",{value:!0}),this.triggerEvent("refresh")):this.setData({barHeight:0})},onDragStart(t){const{scrollTop:e,scrollLeft:s}=t.detail;this.triggerEvent("dragstart",{scrollTop:e,scrollLeft:s})},onDragging(t){const{scrollTop:e,scrollLeft:s}=t.detail;this.triggerEvent("dragging",{scrollTop:e,scrollLeft:s})},onDragEnd(t){const{scrollTop:e,scrollLeft:s}=t.detail;this.triggerEvent("dragend",{scrollTop:e,scrollLeft:s})},doRefresh(){this.properties.disabled||(this.setData({barHeight:this.data._loadingBarHeight,refreshStatus:2,loosing:!0}),this.maxRefreshAnimateTimeFlag=setTimeout((()=>{this.maxRefreshAnimateTimeFlag=null,2===this.data.refreshStatus&&(this.triggerEvent("timeout"),this._trigger("change",{value:!1}))}),this.properties.refreshTimeout))},setRefreshBarHeight(t){const e=Math.min(t,this.data._maxBarHeight),s={barHeight:e};return e>=this.data._loadingBarHeight?s.refreshStatus=1:s.refreshStatus=0,new Promise((t=>{this.setData(s,(()=>t(e)))}))},setScrollTop(t){this.setData({scrollTop:t})},scrollToTop(){this.setScrollTop(0)}}}};PullDownRefresh=__decorate([wxComponent()],PullDownRefresh);export default PullDownRefresh;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.json b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.json
new file mode 100644
index 0000000..656034e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-loading":"../loading/loading"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxml b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxml
new file mode 100644
index 0000000..30eac27
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxml
@@ -0,0 +1 @@
+{{loadingTexts[refreshStatus]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxss b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxss
new file mode 100644
index 0000000..9dada32
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-pull-down-refresh{overflow:hidden;height:100%}.t-pull-down-refresh__track{position:relative}.t-pull-down-refresh__track--loosing{transition:transform ease .24s}.t-pull-down-refresh__tips{position:absolute;color:var(--td-pull-down-refresh-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:24rpx;top:0;width:100%;transform:translateY(-100%);display:flex;justify-content:center;align-items:center;flex-direction:column;overflow:hidden}.t-pull-down-refresh__tips--loosing{transition:height ease .24s}.t-pull-down-refresh__text{margin:16rpx 0 0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.d.ts b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.d.ts
new file mode 100644
index 0000000..def88f7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.d.ts
@@ -0,0 +1,67 @@
+import { LoadingProps } from '../loading/index';
+export interface TdPullDownRefreshProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ enableBackToTop?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ enablePassive?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-loading', 't-class-text', 't-class-indicator'];
+ };
+ loadingBarHeight?: {
+ type: null;
+ value?: string | number;
+ };
+ loadingProps?: {
+ type: ObjectConstructor;
+ value?: LoadingProps;
+ };
+ loadingTexts?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ lowerThreshold?: {
+ type: null;
+ value?: string | number;
+ };
+ maxBarHeight?: {
+ type: null;
+ value?: string | number;
+ };
+ refreshTimeout?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ scrollIntoView?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ showScrollbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ upperThreshold?: {
+ type: null;
+ value?: string | number;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultValue?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.js b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/radio-group/props.d.ts
new file mode 100644
index 0000000..40dcb03
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRadioGroupProps } from './type';
+declare const props: TdRadioGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/props.js b/miniprogram_npm/tdesign-miniprogram/radio-group/props.js
new file mode 100644
index 0000000..850d529
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/props.js
@@ -0,0 +1 @@
+const props={allowUncheck:{type:Boolean,value:!1},borderless:{type:Boolean,value:!1},disabled:{type:null,value:void 0},icon:{type:null,value:"circle"},keys:{type:Object},name:{type:String,value:""},options:{type:Array},placement:{type:String,value:"left"},readonly:{type:null,value:void 0},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.d.ts b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.d.ts
new file mode 100644
index 0000000..ee08cb5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.d.ts
@@ -0,0 +1,27 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class RadioGroup extends SuperComponent {
+ behaviors: string[];
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ radioOptions: any[];
+ };
+ relations: RelationsOptions;
+ properties: import("./type").TdRadioGroupProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(v: any): void;
+ options(): void;
+ disabled(v: any): void;
+ };
+ methods: {
+ getChildren(): any;
+ updateValue(value: any): void;
+ handleRadioChange(e: any): void;
+ initWithOptions(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.js b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.js
new file mode 100644
index 0000000..42bcb77
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import config from"../common/config";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-radio-group`;let RadioGroup=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=["wx://form-field"],this.externalClasses=[`${prefix}-class`],this.data={prefix:prefix,classPrefix:name,radioOptions:[]},this.relations={"../radio/radio":{type:"descendant",linked(e){const{value:t,disabled:i,readonly:o}=this.data;e.setData({checked:t===e.data.value}),e.setDisabled(i),e.setReadonly(o)}}},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={value(e){this.getChildren().forEach((t=>{t.setData({checked:e===t.data.value})}))},options(){this.initWithOptions()},disabled(e){var t;(null===(t=this.data.options)||void 0===t?void 0:t.length)?this.initWithOptions():this.getChildren().forEach((t=>{t.setDisabled(e)}))}},this.methods={getChildren(){let e=this.$children;return(null==e?void 0:e.length)||(e=this.selectAllComponents(`.${prefix}-radio-option`)),e},updateValue(e){this._trigger("change",{value:e})},handleRadioChange(e){const{checked:t}=e.detail,{value:i,index:o,allowUncheck:a}=e.target.dataset;this._trigger("change",!1===t&&a?{value:null,index:o}:{value:i,index:o})},initWithOptions(){const{options:e,value:t,keys:i,disabled:o,readonly:a}=this.data;if(!(null==e?void 0:e.length)||!Array.isArray(e))return void this.setData({radioOptions:[]});const s=[];try{e.forEach((e=>{var l,r,n;const d=typeof e;"number"===d||"string"===d?s.push({label:`${e}`,value:e,checked:t===e,disabled:o,readonly:a}):"object"===d&&s.push(Object.assign(Object.assign({},e),{label:e[null!==(l=null==i?void 0:i.label)&&void 0!==l?l:"label"],value:e[null!==(r=null==i?void 0:i.value)&&void 0!==r?r:"value"],checked:t===e[null!==(n=null==i?void 0:i.value)&&void 0!==n?n:"value"],disabled:e.disabled||o,readonly:e.readonly||a}))})),this.setData({radioOptions:s})}catch(e){console.error("error",e)}}}}};RadioGroup=__decorate([wxComponent()],RadioGroup);export default RadioGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.json b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.json
new file mode 100644
index 0000000..2e52c48
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-radio":"../radio/radio"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxml b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxml
new file mode 100644
index 0000000..b5679a9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxss b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/radio-group/type.d.ts
new file mode 100644
index 0000000..d7954bd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/type.d.ts
@@ -0,0 +1,56 @@
+import { KeysType } from '../common/common';
+export interface TdRadioGroupProps {
+ allowUncheck?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: 'circle' | 'line' | 'dot' | Array;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: T;
+ };
+ defaultValue?: {
+ type: null;
+ value?: T;
+ };
+}
+export declare type RadioOption = string | number | RadioOptionObj;
+export interface RadioOptionObj {
+ label?: string;
+ value?: string | number;
+ readonly?: boolean;
+ disabled?: boolean;
+ allowUncheck?: boolean;
+}
+export declare type RadioValue = string | number | boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/type.js b/miniprogram_npm/tdesign-miniprogram/radio-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/props.d.ts b/miniprogram_npm/tdesign-miniprogram/radio/props.d.ts
new file mode 100644
index 0000000..c59a8d0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRadioProps } from './type';
+declare const props: TdRadioProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/props.js b/miniprogram_npm/tdesign-miniprogram/radio/props.js
new file mode 100644
index 0000000..0fcbdaf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/props.js
@@ -0,0 +1 @@
+const props={allowUncheck:{type:Boolean,value:!1},block:{type:Boolean,value:!0},checked:{type:Boolean,value:null},defaultChecked:{type:Boolean,value:!1},content:{type:String},contentDisabled:{type:Boolean,value:!1},disabled:{type:null,value:void 0},icon:{type:null,value:"circle"},label:{type:String},maxContentRow:{type:Number,value:5},maxLabelRow:{type:Number,value:3},name:{type:String,value:""},placement:{type:String},readonly:{type:null,value:void 0},value:{type:null,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.d.ts b/miniprogram_npm/tdesign-miniprogram/radio/radio.d.ts
new file mode 100644
index 0000000..5e142e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.d.ts
@@ -0,0 +1,107 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Radio extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ properties: {
+ borderless: {
+ type: BooleanConstructor;
+ value: boolean;
+ };
+ tId: {
+ type: StringConstructor;
+ };
+ allowUncheck?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string[] | "circle" | "line" | "dot";
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: "left" | "right";
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: import("./type").RadioValue;
+ };
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ customIcon: boolean;
+ slotIcon: boolean;
+ optionLinked: boolean;
+ iconVal: any[];
+ _placement: string;
+ _disabled: boolean;
+ _readonly: boolean;
+ };
+ observers: {
+ disabled(v: any): void;
+ readonly(v: any): void;
+ };
+ methods: {
+ handleTap(e: any): void;
+ doChange(): void;
+ init(): void;
+ setDisabled(disabled: Boolean): void;
+ setReadonly(readonly: Boolean): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.js b/miniprogram_npm/tdesign-miniprogram/radio/radio.js
new file mode 100644
index 0000000..6178e80
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import config from"../common/config";import{SuperComponent,wxComponent}from"../common/src/index";import Props from"./props";const{prefix:prefix}=config,name=`${prefix}-radio`;let Radio=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-label`,`${prefix}-class-icon`,`${prefix}-class-content`,`${prefix}-class-border`],this.behaviors=["wx://form-field"],this.relations={"../radio-group/radio-group":{type:"ancestor",linked(e){e.data.borderless&&this.setData({borderless:!0})}}},this.options={multipleSlots:!0},this.lifetimes={attached(){this.init()}},this.properties=Object.assign(Object.assign({},Props),{borderless:{type:Boolean,value:!1},tId:{type:String}}),this.controlledProps=[{key:"checked",event:"change"}],this.data={prefix:prefix,classPrefix:name,customIcon:!1,slotIcon:!1,optionLinked:!1,iconVal:[],_placement:"",_disabled:!1,_readonly:!1},this.observers={disabled(e){this.setData({_disabled:e})},readonly(e){this.setData({_readonly:e})}},this.methods={handleTap(e){const{_disabled:t,_readonly:a,contentDisabled:o}=this.data,{target:s}=e.currentTarget.dataset;t||a||"text"===s&&o||this.doChange()},doChange(){var e;const{value:t,checked:a,allowUncheck:o}=this.data,s=Boolean(o||(null===(e=this.$parent)||void 0===e?void 0:e.data.allowUncheck));this.$parent?this.$parent.updateValue(a&&s?null:t):this._trigger("change",{checked:!s||!a})},init(){var e,t,a,o;const{icon:s}=this.data,i=Array.isArray((null===(e=this.$parent)||void 0===e?void 0:e.icon)||s);this.setData({customIcon:i,slotIcon:"slot"===s,iconVal:i?(null===(t=this.$parent)||void 0===t?void 0:t.icon)||s:[],_placement:this.data.placement||(null===(o=null===(a=this.$parent)||void 0===a?void 0:a.data)||void 0===o?void 0:o.placement)||"left"})},setDisabled(e){this.setData({_disabled:this.data.disabled||e})},setReadonly(e){this.setData({_readonly:this.data.readonly||e})}}}};Radio=__decorate([wxComponent()],Radio);export default Radio;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.json b/miniprogram_npm/tdesign-miniprogram/radio/radio.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.wxml b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxml
new file mode 100644
index 0000000..c6fe3a6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxml
@@ -0,0 +1 @@
+{{label}}{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.wxss b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxss
new file mode 100644
index 0000000..15b0a09
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.limit-title-row{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.t-radio{position:relative;display:inline-flex;vertical-align:middle;font-size:var(--td-radio-font-size,32rpx);background:var(--td-radio-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-radio:focus{outline:0}.t-radio--block{display:flex;padding:var(--td-radio-vertical-padding,32rpx)}.t-radio--right{flex-direction:row-reverse}.t-radio__icon{position:relative;margin-top:calc((var(--td-radio-label-line-height,48rpx) - var(--td-radio-icon-size,48rpx))/ 2);width:var(--td-radio-icon-size,48rpx);height:var(--td-radio-icon-size,48rpx);font-size:var(--td-radio-icon-size,48rpx);color:var(--td-radio-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));overflow:hidden}.t-radio__icon:empty{display:none}.t-radio__icon--left{margin-right:16rpx}.t-radio__icon--checked{color:var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-radio__icon--disabled{cursor:not-allowed;color:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__icon-circle{width:var(--td-radio-icon-size,48rpx);height:var(--td-radio-icon-size,48rpx);box-sizing:border-box}.t-radio__icon-circle::after{content:'';width:calc(200% - 6rpx);height:calc(200% - 6rpx);border-radius:50%;border:3px solid var(--td-radio-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box}.t-radio__icon-circle--disabled::after{background:var(--td-radio-icon-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-radio__icon-line::after,.t-radio__icon-line::before{content:'';display:block;position:absolute;width:5rpx;border-radius:2rpx;background:var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));transform-origin:top center}.t-radio__icon-line::before{height:16rpx;left:8rpx;top:22rpx;transform:rotate(-45deg)}.t-radio__icon-line::after{height:26rpx;right:8rpx;top:14rpx;transform:rotate(45deg)}.t-radio__icon-line--disabled::after,.t-radio__icon-line--disabled::before{background:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__icon-dot{width:calc((var(--td-radio-icon-size,48rpx) - 6rpx) * 2);height:calc((var(--td-radio-icon-size,48rpx) - 6rpx) * 2);border:6rpx solid var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box;display:flex;align-items:center;justify-content:center}.t-radio__icon-dot::after{content:'';display:block;width:var(--td-radio-icon-size,48rpx);height:var(--td-radio-icon-size,48rpx);background:var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:50%}.t-radio__icon-dot--disabled{border-color:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__icon-dot--disabled::after{background:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__image{line-height:var(--td-radio-icon-size,48rpx)}.t-radio-icon__image{height:var(--td-radio-icon-size,48rpx);width:var(--td-radio-icon-size,48rpx);vertical-align:sub}.t-radio__content{flex:1}.t-radio__content:empty{display:none}.t-radio__title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;color:var(--td-radio-label-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:var(--td-radio-label-line-height,48rpx)}.t-radio__title--checked{color:var(--td-radio-label-checked-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-radio__title--disabled{cursor:not-allowed;color:var(--td-radio-label-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-radio__description{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;color:var(--td-radio-content-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-radio-content-font-size,28rpx);line-height:var(--td-radio-content-line-height,44rpx)}.t-radio__description--checked{color:var(--td-radio-content-checked-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-radio__description--disabled{cursor:not-allowed;color:var(--td-radio-content-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-radio__description:empty{display:none}.t-radio__title+.t-radio__description{margin-top:8rpx}.t-radio__border{position:absolute;bottom:0;height:1px;background:var(--td-radio-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));left:96rpx;right:0;transform:scaleY(.5)}.t-radio__border--right{left:32rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/type.d.ts b/miniprogram_npm/tdesign-miniprogram/radio/type.d.ts
new file mode 100644
index 0000000..c39da7f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/type.d.ts
@@ -0,0 +1,63 @@
+export interface TdRadioProps {
+ allowUncheck?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: 'circle' | 'line' | 'dot' | Array;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: T;
+ };
+}
+export declare type RadioValue = string | number | boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/type.js b/miniprogram_npm/tdesign-miniprogram/radio/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/props.d.ts b/miniprogram_npm/tdesign-miniprogram/rate/props.d.ts
new file mode 100644
index 0000000..f908fa5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRateProps } from './type';
+declare const props: TdRateProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/props.js b/miniprogram_npm/tdesign-miniprogram/rate/props.js
new file mode 100644
index 0000000..98acf92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/props.js
@@ -0,0 +1 @@
+const props={allowHalf:{type:Boolean,value:!1},color:{type:null,value:"#ED7B2F"},count:{type:Number,value:5},disabled:{type:null,value:void 0},gap:{type:null,value:8},icon:{type:null},iconPrefix:{type:String,value:void 0},placement:{type:String,value:"top"},showText:{type:Boolean,value:!1},size:{type:String,value:"24px"},texts:{type:Array,value:[]},value:{type:Number,value:null},defaultValue:{type:Number,value:0},variant:{type:String,value:"outline"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.d.ts b/miniprogram_npm/tdesign-miniprogram/rate/rate.d.ts
new file mode 100644
index 0000000..e6070ab
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.d.ts
@@ -0,0 +1,29 @@
+import { SuperComponent } from '../common/src/index';
+export default class Rate extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdRateProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ defaultTexts: string[];
+ tipsVisible: boolean;
+ tipsLeft: number;
+ actionType: string;
+ scaleIndex: number;
+ isVisibleToScreenReader: boolean;
+ };
+ methods: {
+ onTouch(e: WechatMiniprogram.TouchEvent, eventType: 'tap' | 'move'): void;
+ onTap(e: WechatMiniprogram.TouchEvent): void;
+ onTouchStart(): void;
+ onTouchMove(e: WechatMiniprogram.TouchEvent): void;
+ onTouchEnd(): void;
+ hideTips(): void;
+ onSelect(e: WechatMiniprogram.TouchEvent): void;
+ showAlertText(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.js b/miniprogram_npm/tdesign-miniprogram/rate/rate.js
new file mode 100644
index 0000000..45b830b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{unitConvert,getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-rate`;let Rate=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-text`],this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.data={prefix:prefix,classPrefix:name,defaultTexts:["极差","失望","一般","满意","惊喜"],tipsVisible:!1,tipsLeft:0,actionType:"",scaleIndex:-1,isVisibleToScreenReader:!1},this.methods={onTouch(e,t){const{count:i,allowHalf:s,gap:o,value:a,size:n}=this.properties,[r]=e.changedTouches,c=unitConvert(o);getRect(this,`.${name}__wrapper`).then((e=>{const{width:p,left:h}=e,l=(p-(i-1)*c)/i,d=(r.pageX-h+c)/(l+c),u=d%1,m=d-u;let T=u<=.5&&s?m+.5:m+1;T>i?T=i:T<0&&(T=0);const x=Math.ceil(T-1)*(unitConvert(o)+unitConvert(n))+.5*unitConvert(n);this.setData({tipsVisible:!0,actionType:t,scaleIndex:Math.ceil(T),tipsLeft:Math.max(x,0)}),T!==a&&this._trigger("change",{value:T}),this.touchEnd&&this.hideTips()}))},onTap(e){const{disabled:t}=this.properties;t||this.onTouch(e,"tap")},onTouchStart(){this.touchEnd=!1},onTouchMove(e){this.onTouch(e,"move"),this.showAlertText()},onTouchEnd(){this.touchEnd=!0,this.hideTips()},hideTips(){"move"===this.data.actionType&&this.setData({tipsVisible:!1,scaleIndex:-1})},onSelect(e){const{value:t}=e.currentTarget.dataset,{actionType:i}=this.data;"move"!==i&&(this._trigger("change",{value:t}),setTimeout((()=>this.setData({tipsVisible:!1,scaleIndex:-1})),300))},showAlertText(){!0!==this.data.isVisibleToScreenReader&&(this.setData({isVisibleToScreenReader:!0}),setTimeout((()=>{this.setData({isVisibleToScreenReader:!1})}),2e3))}}}};Rate=__decorate([wxComponent()],Rate);export default Rate;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.json b/miniprogram_npm/tdesign-miniprogram/rate/rate.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.wxml b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxml
new file mode 100644
index 0000000..0dbd117
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxml
@@ -0,0 +1 @@
+{{utils.getText(texts,value,defaultTexts)}}{{value+'星'}} {{utils.getText(texts,value,defaultTexts)}}{{utils.ceil(value) - 0.5}}{{utils.ceil(value)}}{{value}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.wxs b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxs
new file mode 100644
index 0000000..8387b10
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxs
@@ -0,0 +1,65 @@
+module.exports = {
+ getText: function (texts, val, defaultTexts) {
+ if (!texts.length) {
+ texts = defaultTexts;
+ }
+ var curVal = Math.floor(val - 1);
+ return texts[curVal] || '未评分';
+ },
+
+ getIconName: function (defaultValue, value, index, icon) {
+ var curVal = value >= 0 ? value : defaultValue;
+ var name = ['star-filled', 'star-filled'];
+
+ if (icon) {
+ name = icon.constructor == 'Array' ? icon : [icon, icon];
+ }
+
+ return name[curVal >= index + 1 ? 0 : 1];
+ },
+
+ getIconClass: function (classPrefix, defaultValue, value, index, allowHalf, disabled, scaleIndex) {
+ var curVal = value >= 0 ? value : defaultValue;
+ var className = [];
+ if (curVal >= index + 1) {
+ className.push(classPrefix + '--selected');
+ if (disabled) {
+ className.push(classPrefix + '--disabled');
+ }
+ if (scaleIndex === index + 1) {
+ className.push(classPrefix + '--current');
+ }
+ } else if (allowHalf && curVal - index > 0) {
+ className.push(classPrefix + '--selected-half');
+ if (scaleIndex === index + 1) {
+ className.push(classPrefix + '--current');
+ }
+ if (disabled) {
+ className.push(classPrefix + '--disabled-half');
+ }
+ } else {
+ className.push(classPrefix + '--unselected');
+ }
+ return className.join(' ');
+ },
+
+ ceil: function (value) {
+ return Math.ceil(value);
+ },
+
+ getColor: function (color) {
+ if (color.constructor === 'Array' && color.length === 2) {
+ return ';--td-rate-selected-color: ' + color[0] + '; --td-rate-unselected-color: ' + color[1];
+ }
+
+ if (typeof color === 'string') {
+ return ';--td-rate-selected-color: ' + color;
+ }
+
+ return '';
+ },
+
+ regSize: function (val) {
+ return val.indexOf('px') ? val : val + 'px';
+ },
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.wxss b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxss
new file mode 100644
index 0000000..325d66c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-rate{position:relative;display:flex;align-items:center;justify-content:flex-start}.t-rate__wrapper{line-height:1em;display:inline-flex}.t-rate__icon{display:block;line-height:1em;width:1em;transition:transform .3s ease}.t-rate__icon--current{transform:scale(var(--td-rate-icon-scale,1.33))}.t-rate__icon--selected{color:var(--td-rate-selected-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-rate__icon--selected-half{color:transparent;background:linear-gradient(to right,var(--td-rate-selected-color,var(--td-warning-color,var(--td-warning-color-5,#e37318))) 0,var(--td-rate-selected-color,var(--td-warning-color,var(--td-warning-color-5,#e37318))) 50%,var(--td-rate-unselected-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc))) 51%,var(--td-rate-unselected-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc))) 100%);-webkit-background-clip:text;background-clip:text}.t-rate__icon--unselected{color:var(--td-rate-unselected-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-rate__text{font-size:var(--td-rate-text-font-size,var(--td-font-size-m,32rpx));color:var(--td-rate-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));margin-left:32rpx;vertical-align:middle}.t-rate__text--active{color:var(--td-rate-text-active-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:var(--td-rate-text-active-font-weight,600)}.t-rate__text--sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}.t-rate__tips{position:absolute;display:flex;align-items:center;bottom:calc(100% + 16rpx);padding:8rpx;border-radius:12rpx;box-shadow:var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));transform:translateX(-50%)}.t-rate__tips--bottom{top:calc(100% + 16rpx);bottom:auto}.t-rate__tips-item{display:flex;flex-direction:column;align-items:center;width:64rpx;border-radius:6rpx}.t-rate__tips-item--active{background-color:var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7))}.t-rate__tips-text{text-align:center;font-size:24rpx;line-height:40rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/type.d.ts b/miniprogram_npm/tdesign-miniprogram/rate/type.d.ts
new file mode 100644
index 0000000..0518e2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/type.d.ts
@@ -0,0 +1,58 @@
+export interface TdRateProps {
+ allowHalf?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ color?: {
+ type: null;
+ value?: string | Array;
+ };
+ count?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ gap?: {
+ type: null;
+ value?: string | number;
+ };
+ icon?: {
+ type: null;
+ value?: string | string[];
+ };
+ iconPrefix?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'top' | 'bottom' | '';
+ };
+ showText?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ texts?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ value?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ defaultValue?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'outline' | 'filled';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/type.js b/miniprogram_npm/tdesign-miniprogram/rate/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/index.d.ts b/miniprogram_npm/tdesign-miniprogram/result/index.d.ts
new file mode 100644
index 0000000..74469ef
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './result';
diff --git a/miniprogram_npm/tdesign-miniprogram/result/index.js b/miniprogram_npm/tdesign-miniprogram/result/index.js
new file mode 100644
index 0000000..3f23200
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./result";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/props.d.ts b/miniprogram_npm/tdesign-miniprogram/result/props.d.ts
new file mode 100644
index 0000000..7336c63
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/props.d.ts
@@ -0,0 +1,3 @@
+import { TdResultProps } from './type';
+declare const props: TdResultProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/result/props.js b/miniprogram_npm/tdesign-miniprogram/result/props.js
new file mode 100644
index 0000000..12fb666
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/props.js
@@ -0,0 +1 @@
+const props={description:{type:String},icon:{type:null,value:!0},image:{type:String},theme:{type:String,value:"default"},title:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.d.ts b/miniprogram_npm/tdesign-miniprogram/result/result.d.ts
new file mode 100644
index 0000000..9dfa5ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../common/src/index';
+export default class extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: import("./type").TdResultProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ observers: {
+ 'icon, theme'(): void;
+ };
+ methods: {
+ initIcon(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.js b/miniprogram_npm/tdesign-miniprogram/result/result.js
new file mode 100644
index 0000000..009a276
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-result`,THEME_ICON={default:"error-circle",success:"check-circle",warning:"error-circle",error:"close-circle"};let default_1=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-image`,`${prefix}-class-title`,`${prefix}-class-description`],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.lifetimes={ready(){this.initIcon()}},this.observers={"icon, theme"(){this.initIcon()}},this.methods={initIcon(){const{icon:e,theme:o}=this.properties;this.setData({_icon:calcIcon(e,THEME_ICON[o])})}}}};default_1=__decorate([wxComponent()],default_1);export default default_1;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.json b/miniprogram_npm/tdesign-miniprogram/result/result.json
new file mode 100644
index 0000000..dd7b01e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.wxml b/miniprogram_npm/tdesign-miniprogram/result/result.wxml
new file mode 100644
index 0000000..8a101a8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.wxml
@@ -0,0 +1 @@
+{{title}}{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.wxss b/miniprogram_npm/tdesign-miniprogram/result/result.wxss
new file mode 100644
index 0000000..2085bea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-result{display:flex;flex-direction:column;align-items:center}.t-result__icon{font-size:160rpx}.t-result__title{line-height:var(--td-result-title-line-height,56rpx);font-size:var(--td-result-title-font-size,var(--td-font-size-xl,40rpx));font-weight:700;color:var(--td-result-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-result__thumb:not(:empty)+.t-result__title:not(:empty){margin-top:var(--td-result-title-margin-top,var(--td-spacer-1,24rpx))}.t-result__description{text-align:center;color:var(--td-result-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-result-description-font-size,var(--td-font-size-base,28rpx));line-height:var(--td-result-description-line-height,44rpx)}.t-result__title+.t-result__description:not(:empty){margin-top:var(--td-result-description-margin-top,var(--td-spacer,16rpx))}.t-result--theme-default{color:var(--td-result-icon-default-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-result--theme-success{color:var(--td-result-icon-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-result--theme-warning{color:var(--td-result-icon-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-result--theme-error{color:var(--td-result-icon-error-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/type.d.ts b/miniprogram_npm/tdesign-miniprogram/result/type.d.ts
new file mode 100644
index 0000000..80b4136
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/type.d.ts
@@ -0,0 +1,22 @@
+export interface TdResultProps {
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ icon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'success' | 'warning' | 'error';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/result/type.js b/miniprogram_npm/tdesign-miniprogram/result/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/props.d.ts b/miniprogram_npm/tdesign-miniprogram/row/props.d.ts
new file mode 100644
index 0000000..34bd697
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRowProps } from './type';
+declare const props: TdRowProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/row/props.js b/miniprogram_npm/tdesign-miniprogram/row/props.js
new file mode 100644
index 0000000..3710d43
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/props.js
@@ -0,0 +1 @@
+const props={gutter:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.d.ts b/miniprogram_npm/tdesign-miniprogram/row/row.d.ts
new file mode 100644
index 0000000..136e65c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.d.ts
@@ -0,0 +1,15 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Row extends SuperComponent {
+ externalClasses: any[];
+ properties: import("./type").TdRowProps;
+ data: {
+ prefix: string;
+ };
+ relations: RelationsOptions;
+ observers: {
+ gutter(): void;
+ };
+ methods: {
+ setGutter(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.js b/miniprogram_npm/tdesign-miniprogram/row/row.js
new file mode 100644
index 0000000..f7c8f4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config;let Row=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[],this.properties=props,this.data={prefix:prefix},this.relations={"../col/col":{type:"child",linked(t){const{gutter:o}=this.data;o&&t.setData({gutter:o})}}},this.observers={gutter(){this.setGutter()}},this.methods={setGutter(){const{gutter:t}=this.data;this.$children.forEach((o=>{o.setData({gutter:t})}))}}}};Row=__decorate([wxComponent()],Row);export default Row;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.json b/miniprogram_npm/tdesign-miniprogram/row/row.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.wxml b/miniprogram_npm/tdesign-miniprogram/row/row.wxml
new file mode 100644
index 0000000..a438348
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.wxs b/miniprogram_npm/tdesign-miniprogram/row/row.wxs
new file mode 100644
index 0000000..9d83b9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.wxs
@@ -0,0 +1,17 @@
+var utils = require('../common/utils.wxs');
+
+function getRowStyles(gutter, style, customStyle) {
+ var _style = '';
+ if (gutter) {
+ _style = utils._style({
+ 'margin-right': utils.addUnit(-gutter / 2),
+ 'margin-left': utils.addUnit(-gutter / 2),
+ });
+ }
+
+ return utils._style([style, customStyle]) + _style;
+}
+
+module.exports = {
+ getRowStyles: getRowStyles,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.wxss b/miniprogram_npm/tdesign-miniprogram/row/row.wxss
new file mode 100644
index 0000000..4418a25
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-row{display:flex;flex-direction:row;flex-wrap:wrap;box-sizing:border-box}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/type.d.ts b/miniprogram_npm/tdesign-miniprogram/row/type.d.ts
new file mode 100644
index 0000000..f151c1c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/type.d.ts
@@ -0,0 +1,6 @@
+export interface TdRowProps {
+ gutter?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/row/type.js b/miniprogram_npm/tdesign-miniprogram/row/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.d.ts b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.d.ts
new file mode 100644
index 0000000..e42dd4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.d.ts
@@ -0,0 +1,10 @@
+import { SuperComponent } from '../common/src/index';
+export default class ScrollView extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ properties: {
+ scrollIntoView: {
+ type: StringConstructor;
+ };
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.js b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.js
new file mode 100644
index 0000000..1dc78d2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{canUseProxyScrollView}from"../common/version";const{prefix:prefix}=config;let ScrollView=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.behaviors=canUseProxyScrollView()?["wx://proxy-scroll-view"]:[],this.properties={scrollIntoView:{type:String}}}};ScrollView=__decorate([wxComponent()],ScrollView);export default ScrollView;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.json b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxml b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxml
new file mode 100644
index 0000000..c17227d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxss b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/props.d.ts b/miniprogram_npm/tdesign-miniprogram/search/props.d.ts
new file mode 100644
index 0000000..81c5bff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSearchProps } from './type';
+declare const props: TdSearchProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/search/props.js b/miniprogram_npm/tdesign-miniprogram/search/props.js
new file mode 100644
index 0000000..372e8a7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/props.js
@@ -0,0 +1 @@
+const props={action:{type:String,value:""},adjustPosition:{type:Boolean,value:!0},alwaysEmbed:{type:Boolean,value:!1},center:{type:Boolean,value:!1},clearTrigger:{type:String,value:"always"},clearable:{type:Boolean,value:!0},confirmHold:{type:Boolean,value:!1},confirmType:{type:String,value:"search"},cursor:{type:Number,value:-1,required:!0},cursorSpacing:{type:Number,value:0},disabled:{type:Boolean,value:!1},focus:{type:Boolean,value:!1},holdKeyboard:{type:Boolean,value:!1},leftIcon:{type:String,value:"search"},maxcharacter:{type:Number},maxlength:{type:Number,value:-1},placeholder:{type:String,value:""},placeholderClass:{type:String,value:"input-placeholder"},placeholderStyle:{type:String,value:"",required:!0},readonly:{type:null,value:void 0},resultList:{type:Array,value:[]},selectionEnd:{type:Number,value:-1},selectionStart:{type:Number,value:-1},shape:{type:String,value:"square"},type:{type:String,value:"text"},value:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.d.ts b/miniprogram_npm/tdesign-miniprogram/search/search.d.ts
new file mode 100644
index 0000000..bb16745
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.d.ts
@@ -0,0 +1,27 @@
+import { SuperComponent } from '../common/src/index';
+export default class Search extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdSearchProps;
+ observers: {
+ resultList(val: any): void;
+ 'clearTrigger, clearable, disabled, readonly'(): void;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ isShowResultList: boolean;
+ isSelected: boolean;
+ showClearIcon: boolean;
+ };
+ updateClearIconVisible(value?: boolean): void;
+ onInput(e: any): void;
+ onFocus(e: any): void;
+ onBlur(e: any): void;
+ handleClear(): void;
+ onConfirm(e: any): void;
+ onActionClick(): void;
+ onSelectResultItem(e: any): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.js b/miniprogram_npm/tdesign-miniprogram/search/search.js
new file mode 100644
index 0000000..a65b718
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getCharacterLength}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-search`;let Search=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-input-container`,`${prefix}-class-input`,`${prefix}-class-action`,`${prefix}-class-left`,`${prefix}-class-clear`],this.options={multipleSlots:!0},this.properties=props,this.observers={resultList(e){const{isSelected:t}=this.data;e.length?t?this.setData({isShowResultList:!1,isSelected:!1}):this.setData({isShowResultList:!0}):this.setData({isShowResultList:!1})},"clearTrigger, clearable, disabled, readonly"(){this.updateClearIconVisible()}},this.data={classPrefix:name,prefix:prefix,isShowResultList:!1,isSelected:!1,showClearIcon:!0}}updateClearIconVisible(e=!1){const{clearTrigger:t,disabled:s,readonly:i}=this.properties;s||i?this.setData({showClearIcon:!1}):this.setData({showClearIcon:e||"always"===String(t)})}onInput(e){let{value:t}=e.detail;const{maxcharacter:s}=this.properties;if(s&&"number"==typeof s&&s>0){const{characters:e}=getCharacterLength("maxcharacter",t,s);t=e}this.setData({value:t}),this.triggerEvent("change",{value:t})}onFocus(e){const{value:t}=e.detail;this.updateClearIconVisible(!0),this.triggerEvent("focus",{value:t})}onBlur(e){const{value:t}=e.detail;this.updateClearIconVisible(),this.triggerEvent("blur",{value:t})}handleClear(){this.setData({value:""}),this.triggerEvent("clear",{value:""}),this.triggerEvent("change",{value:""})}onConfirm(e){const{value:t}=e.detail;this.triggerEvent("submit",{value:t})}onActionClick(){this.triggerEvent("action-click")}onSelectResultItem(e){const{index:t}=e.currentTarget.dataset,s=this.properties.resultList[t];this.setData({value:s,isSelected:!0}),this.triggerEvent("change",{value:s}),this.triggerEvent("selectresult",{index:t,item:s})}};Search=__decorate([wxComponent()],Search);export default Search;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.json b/miniprogram_npm/tdesign-miniprogram/search/search.json
new file mode 100644
index 0000000..e7cf83b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-cell":"../cell/cell"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.wxml b/miniprogram_npm/tdesign-miniprogram/search/search.wxml
new file mode 100644
index 0000000..5118c56
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.wxml
@@ -0,0 +1 @@
+{{action}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.wxs b/miniprogram_npm/tdesign-miniprogram/search/search.wxs
new file mode 100644
index 0000000..ac86989
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.wxs
@@ -0,0 +1,6 @@
+var highLight = function (label, keyword) {
+ return label.replace(keyword, '' + keyword + '');
+};
+module.exports = {
+ highLight: highLight,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.wxss b/miniprogram_npm/tdesign-miniprogram/search/search.wxss
new file mode 100644
index 0000000..ec74663
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-search{display:flex;justify-content:space-between;align-items:center}.t-search__label{padding:8rpx;color:var(--td-search-label-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-search__input-box{flex:1;box-sizing:border-box;display:flex;height:var(--td-search-height,80rpx);align-items:center;border:2rpx solid var(--td-search-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));background:var(--td-search-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));padding:var(--td-search-padding,16rpx 24rpx)}.t-search__input-box.t-is-focused{border-color:var(--td-search-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-search__input-box--round{border-radius:calc(var(--td-search-height,80rpx)/ 2)}.t-search__input-box--square{border-radius:var(--td-search-square-radius,var(--td-radius-default,12rpx))}.t-search__input-box--center{text-align:center}.t-search__input-box .t-input__keyword{display:inline-block;flex:1;color:var(--td-search-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-search-font-size,var(--td-font-size-m,32rpx));padding-left:10rpx;min-height:48rpx;line-height:48rpx}.t-search__input-box .t-input--disabled{color:var(--td-search-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));cursor:not-allowed;opacity:1;-webkit-text-fill-color:currentColor}.t-search__input-box .t-icon{color:var(--td-search-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-search-icon-font-size,48rpx)}.t-search__clear{position:relative;margin-left:10px;font-size:var(--td-search-clear-icon-font-size,48rpx);color:var(--td-search-clear-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-search__search-action{margin-left:30rpx;font-size:var(--td-search-font-size,var(--td-font-size-m,32rpx));color:var(--td-search-action-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-search__placeholder{color:var(--td-search-placeholder-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-search__placeholder--center{text-align:center}.t-search__result-item--highLight{color:var(--td-search-result-high-light-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-search__result-list .t-search__result-item{padding-left:0}.t-search__result-list .t-search__result-item::after{left:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/type.d.ts b/miniprogram_npm/tdesign-miniprogram/search/type.d.ts
new file mode 100644
index 0000000..c7f2370
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/type.d.ts
@@ -0,0 +1,108 @@
+export interface TdSearchProps {
+ action?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ adjustPosition?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ alwaysEmbed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ center?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ clearTrigger?: {
+ type: StringConstructor;
+ value?: 'always' | 'focus';
+ };
+ clearable?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmHold?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmType?: {
+ type: StringConstructor;
+ value?: 'send' | 'search' | 'next' | 'go' | 'done';
+ };
+ cursor: {
+ type: NumberConstructor;
+ value?: number;
+ required?: boolean;
+ };
+ cursorSpacing?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ focus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ holdKeyboard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ leftIcon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxcharacter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxlength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderStyle: {
+ type: StringConstructor;
+ value?: string;
+ required?: boolean;
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ resultList?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ selectionEnd?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionStart?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'square' | 'round';
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'text' | 'number' | 'idcard' | 'digit' | 'nickname';
+ };
+ value?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/search/type.js b/miniprogram_npm/tdesign-miniprogram/search/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.d.ts
new file mode 100644
index 0000000..cdda046
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSideBarItemProps } from './type';
+declare const props: TdSideBarItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.js b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.js
new file mode 100644
index 0000000..c442da0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object},disabled:{type:Boolean,value:!1},icon:{type:null},label:{type:String,value:""},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.d.ts
new file mode 100644
index 0000000..fd2334f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.d.ts
@@ -0,0 +1,44 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class SideBarItem extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ tId: {
+ type: StringConstructor;
+ };
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: import("../badge").BadgeProps;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ };
+ relations: RelationsOptions;
+ observers: {
+ icon(v: any): void;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ active: boolean;
+ isPre: boolean;
+ isNext: boolean;
+ };
+ methods: {
+ updateActive(value: any): void;
+ handleClick(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.js b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.js
new file mode 100644
index 0000000..ced9c65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-side-bar-item`;let SideBarItem=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=Object.assign(Object.assign({},props),{tId:{type:String}}),this.relations={"../side-bar/side-bar":{type:"parent",linked(e){this.parent=e,this.updateActive(e.data.value)}}},this.observers={icon(e){this.setData({_icon:"string"==typeof e?{name:e}:e})}},this.data={classPrefix:name,prefix:prefix,active:!1,isPre:!1,isNext:!1},this.methods={updateActive(e){const t=e===this.data.value;this.setData({active:t})},handleClick(){var e;if(this.data.disabled)return;const{value:t,label:i}=this.data;null===(e=this.parent)||void 0===e||e.doChange({value:t,label:i})}}}};SideBarItem=__decorate([wxComponent()],SideBarItem);export default SideBarItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.json b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.json
new file mode 100644
index 0000000..53d0ea9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-badge":"../badge/badge","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxml b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxml
new file mode 100644
index 0000000..b46786d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxml
@@ -0,0 +1 @@
+{{label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxss b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxss
new file mode 100644
index 0000000..7187e0c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-side-bar-item{display:flex;align-items:center;position:relative;padding:32rpx;font-size:var(--td-side-bar-font-size,32rpx);color:var(--td-side-bar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background:var(--td-side-bar-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));min-height:var(--td-side-bar-item-height,112rpx);box-sizing:border-box;white-space:wrap;line-height:var(--td-side-bar-item-line-height,48rpx)}.t-side-bar-item--active{font-weight:600;background:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-side-bar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));--td-badge-content-text-color:var(--td-side-bar-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)))}.t-side-bar-item__icon{font-size:var(--td-side-bar-icon-size,40rpx);margin-right:4rpx}.t-side-bar-item__prefix,.t-side-bar-item__suffix{z-index:1;position:absolute;right:0;width:100%;height:calc(var(--td-side-bar-border-radius,18rpx) * 2);background:var(--td-bg-color-container,var(--td-font-white-1,#fff));pointer-events:none}.t-side-bar-item__prefix::after,.t-side-bar-item__suffix::after{content:'';display:block;width:100%;height:100%;background-color:var(--td-side-bar-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-side-bar-item__prefix{top:calc(var(--td-side-bar-border-radius,18rpx) * -2)}.t-side-bar-item__prefix::after{border-bottom-right-radius:var(--td-side-bar-border-radius,18rpx)}.t-side-bar-item__suffix{bottom:calc(var(--td-side-bar-border-radius,18rpx) * -2)}.t-side-bar-item__suffix::after{border-top-right-radius:var(--td-side-bar-border-radius,18rpx)}.t-side-bar-item--disabled{color:var(--td-side-bar-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-side-bar-item__line{width:6rpx;height:28rpx;position:absolute;left:0;top:50%;transform:translateY(-50%);background:var(--td-side-bar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:8rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.d.ts
new file mode 100644
index 0000000..94aff15
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.d.ts
@@ -0,0 +1,23 @@
+import { BadgeProps } from '../badge/index';
+export interface TdSideBarItemProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.js b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar/props.d.ts
new file mode 100644
index 0000000..fcab408
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSideBarProps } from './type';
+declare const props: TdSideBarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/props.js b/miniprogram_npm/tdesign-miniprogram/side-bar/props.js
new file mode 100644
index 0000000..cab6349
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/props.js
@@ -0,0 +1 @@
+const props={value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.d.ts
new file mode 100644
index 0000000..f5ac06e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.d.ts
@@ -0,0 +1,24 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class SideBar extends SuperComponent {
+ externalClasses: string[];
+ children: any[];
+ relations: RelationsOptions;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ properties: import("./type").TdSideBarProps;
+ observers: {
+ value(v: any): void;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ };
+ methods: {
+ doChange({ value, label }: {
+ value: any;
+ label: any;
+ }): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.js b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.js
new file mode 100644
index 0000000..dc077d3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-side-bar`,relationsPath="../side-bar-item/side-bar-item";let SideBar=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.children=[],this.relations={[relationsPath]:{type:"child",linked(e){this.children.push(e)},unlinked(e){const i=this.children.findIndex((i=>i===e));this.children.splice(i,1)}}},this.controlledProps=[{key:"value",event:"change"}],this.properties=props,this.observers={value(e){this.$children.forEach((i=>{i.updateActive(e)}))}},this.data={classPrefix:name,prefix:prefix},this.methods={doChange({value:e,label:i}){this._trigger("change",{value:e,label:i})}}}};SideBar=__decorate([wxComponent()],SideBar);export default SideBar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.json b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.json
new file mode 100644
index 0000000..4b9f595
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-side-bar-item":"../side-bar-item/side-bar-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxml b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxml
new file mode 100644
index 0000000..eb0c986
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxss b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxss
new file mode 100644
index 0000000..a118303
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-side-bar{display:flex;flex-direction:column;width:var(--td-side-bar-width,206rpx);height:var(--td-side-bar-height,100%);overflow-y:auto}.t-side-bar::-webkit-scrollbar{display:none}.t-side-bar__padding{flex:1;background-color:var(--td-side-bar-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar/type.d.ts
new file mode 100644
index 0000000..39d8876
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/type.d.ts
@@ -0,0 +1,10 @@
+export interface TdSideBarProps {
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/type.js b/miniprogram_npm/tdesign-miniprogram/side-bar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/props.d.ts b/miniprogram_npm/tdesign-miniprogram/skeleton/props.d.ts
new file mode 100644
index 0000000..2c8f4af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSkeletonProps } from './type';
+declare const props: TdSkeletonProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/props.js b/miniprogram_npm/tdesign-miniprogram/skeleton/props.js
new file mode 100644
index 0000000..564c251
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/props.js
@@ -0,0 +1 @@
+const props={animation:{type:String,value:"none"},delay:{type:Number,value:0},loading:{type:Boolean,value:!0},rowCol:{type:Array},theme:{type:String,value:"text"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.d.ts b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.d.ts
new file mode 100644
index 0000000..f7e1353
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.d.ts
@@ -0,0 +1,25 @@
+import { SuperComponent } from '../common/src/index';
+import { SkeletonRowColObj } from './type';
+import { ClassName, Styles } from '../common/common';
+export default class Skeleton extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdSkeletonProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ parsedRowcols: any[];
+ };
+ observers: {
+ rowCol(): void;
+ 'loading, delay'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ init(): void;
+ getColItemClass(obj: SkeletonRowColObj): ClassName;
+ getColItemStyle(obj: SkeletonRowColObj): Styles;
+ isShowSkeleton(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.js b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.js
new file mode 100644
index 0000000..37331ef
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{classNames}from"../common/utils";import{isNumber}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-skeleton`,ThemeMap={avatar:[{type:"circle",size:"96rpx"}],image:[{type:"rect",size:"144rpx"}],text:[[{width:"24%",height:"32rpx",marginRight:"32rpx"},{width:"76%",height:"32rpx"}],1],paragraph:[1,1,1,{width:"55%"}]};let Skeleton=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-col`,`${prefix}-class-row`],this.properties=props,this.data={prefix:prefix,classPrefix:name,parsedRowcols:[]},this.observers={rowCol(){this.init()},"loading, delay"(){this.isShowSkeleton()}},this.lifetimes={attached(){this.init(),this.isShowSkeleton()}},this.methods={init(){const{theme:t,rowCol:e}=this.properties,s=[];e.length?s.push(...e):s.push(...ThemeMap[t||"text"]);const i=s.map((t=>{if(isNumber(t))return[{class:this.getColItemClass({type:"text"}),style:{}}];if(Array.isArray(t))return t.map((t=>Object.assign(Object.assign({},t),{class:this.getColItemClass(t),style:this.getColItemStyle(t)})));const e=t;return[Object.assign(Object.assign({},e),{class:this.getColItemClass(e),style:this.getColItemStyle(e)})]}));this.setData({parsedRowcols:i})},getColItemClass(t){return classNames([`${name}__col`,`${name}--type-${t.type||"text"}`,`${name}--animation-${this.properties.animation}`])},getColItemStyle(t){const e={};return["width","height","marginRight","marginLeft","margin","size","background","backgroundColor","borderRadius"].forEach((s=>{if(s in t){const i=isNumber(t[s])?`${t[s]}px`:t[s];"size"===s?[e.width,e.height]=[i,i]:e[s]=i}})),e},isShowSkeleton(){const{loading:t,delay:e}=this.properties;t&&0!==e?setTimeout((()=>{this.setData({isShow:t})}),e):this.setData({isShow:t})}}}};Skeleton=__decorate([wxComponent()],Skeleton);export default Skeleton;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.json b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxml b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxml
new file mode 100644
index 0000000..0f5a8e7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxss b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxss
new file mode 100644
index 0000000..001a314
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-skeleton{box-sizing:border-box}.t-skeleton__row{display:flex;margin-bottom:var(--td-skeleton-row-spacing,var(--td-spacer-2,32rpx));align-items:center;justify-content:space-between}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{background-color:var(--td-skeleton-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));display:flex;align-items:center;justify-content:center}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{width:100%;height:var(--td-skeleton-text-height,32rpx);border-radius:var(--td-skeleton-text-border-radius,var(--td-radius-small,6rpx))}.t-skeleton--type-rect{width:100%;height:var(--td-skeleton-rect-height,32rpx);border-radius:var(--td-skeleton-rect-border-radius,var(--td-radius-default,12rpx))}.t-skeleton--type-circle{width:var(--td-skeleton-circle-height,96rpx);height:var(--td-skeleton-circle-height,96rpx);border-radius:var(--td-skeleton-circle-border-radius,var(--td-skeleton-circle-border-radius,var(--td-radius-circle,50%)));flex-shrink:0}.t-skeleton--animation-gradient{position:relative;overflow-x:hidden}.t-skeleton--animation-gradient::after{content:' ';position:absolute;bottom:0;left:0;right:0;top:0;background:linear-gradient(90deg,rgba(255,255,255,0),var(--td-skeleton-animation-gradient,rgba(0,0,0,.04)),rgba(255,255,255,0));animation:t-skeleton--gradient 1.5s linear 2s infinite}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}100%{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:var(--td-skeleton-animation-flashed,rgba(230,230,230,.3));opacity:.3}100%{opacity:1}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/type.d.ts b/miniprogram_npm/tdesign-miniprogram/skeleton/type.d.ts
new file mode 100644
index 0000000..c96ee71
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/type.d.ts
@@ -0,0 +1,32 @@
+export interface TdSkeletonProps {
+ animation?: {
+ type: StringConstructor;
+ value?: 'gradient' | 'flashed' | 'none';
+ };
+ delay?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ rowCol?: {
+ type: ArrayConstructor;
+ value?: SkeletonRowCol;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'avatar' | 'image' | 'text' | 'paragraph';
+ };
+}
+export declare type SkeletonRowCol = Array>;
+export interface SkeletonRowColObj {
+ width?: string;
+ size?: string;
+ height?: string;
+ marginRight?: string;
+ marginLeft?: string;
+ margin?: string;
+ type?: 'rect' | 'circle' | 'text';
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/type.js b/miniprogram_npm/tdesign-miniprogram/skeleton/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/props.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/props.d.ts
new file mode 100644
index 0000000..f6d03ac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSliderProps } from './type';
+declare const props: TdSliderProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/props.js b/miniprogram_npm/tdesign-miniprogram/slider/props.js
new file mode 100644
index 0000000..0afd3cb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:null,value:void 0},label:{type:null,value:!1},marks:{type:null,value:{}},max:{type:Number,value:100},min:{type:Number,value:0},range:{type:Boolean,value:!1},showExtremeValue:{type:Boolean,value:!1},step:{type:Number,value:1},theme:{type:String,value:"default"},value:{type:null,value:null},defaultValue:{type:null,value:0},vertical:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/slider.d.ts
new file mode 100644
index 0000000..271b245
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.d.ts
@@ -0,0 +1,67 @@
+///
+import { SuperComponent } from '../common/src/index';
+import type { SliderValue } from './type';
+declare type dataType = {
+ sliderStyles: string;
+ classPrefix: string;
+ initialLeft: number | null;
+ initialRight: number | null;
+ activeLeft: number;
+ activeRight: number;
+ maxRange: number;
+ lineLeft: number;
+ lineRight: number;
+ dotTopValue: number[];
+ blockSize: number;
+ isScale: boolean;
+ scaleArray: any[];
+ scaleTextArray: any[];
+ _value: SliderValue;
+ prefix: string;
+ isVisibleToScreenReader: boolean;
+ identifier: number[];
+ __inited: boolean;
+};
+export default class Slider extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ pureDataPattern: RegExp;
+ };
+ properties: import("./type").TdSliderProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: dataType;
+ observers: {
+ value(newValue: SliderValue): void;
+ _value(newValue: SliderValue): void;
+ marks(val: any): void;
+ };
+ lifetimes: {
+ created(): void;
+ attached(): void;
+ };
+ injectPageScroll(): void;
+ observerScrollTop(rest: any): void;
+ toggleA11yTips(): void;
+ renderLine(val: any): void;
+ triggerValue(value?: SliderValue): void;
+ handlePropsChange(newValue: SliderValue): void;
+ valueToPosition(value: number): number;
+ handleMark(marks: any): void;
+ setSingleBarWidth(value: number): void;
+ init(): Promise;
+ stepValue(value: number): number;
+ onSingleLineTap(e: WechatMiniprogram.TouchEvent): void;
+ getSingleChangeValue(e: WechatMiniprogram.TouchEvent): number;
+ convertPosToValue(posValue: number, dir: 0 | 1): number;
+ onLineTap(e: WechatMiniprogram.TouchEvent): void;
+ onTouchStart(e: WechatMiniprogram.TouchEvent): void;
+ onTouchMoveLeft(e: WechatMiniprogram.TouchEvent): void;
+ onTouchMoveRight(e: WechatMiniprogram.TouchEvent): void;
+ setLineStyle(left: number, right: number): void;
+ onTouchEnd(e: WechatMiniprogram.TouchEvent): void;
+ getPagePosition(touch: any): any;
+}
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.js b/miniprogram_npm/tdesign-miniprogram/slider/slider.js
new file mode 100644
index 0000000..dd0db19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{trimSingleValue,trimValue}from"./tool";import props from"./props";import{getRect}from"../common/utils";import Bus from"../common/bus";const{prefix:prefix}=config,name=`${prefix}-slider`;let Slider=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-bar`,`${prefix}-class-bar-active`,`${prefix}-class-bar-disabled`,`${prefix}-class-cursor`],this.options={pureDataPattern:/^__/},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.data={sliderStyles:"",classPrefix:name,initialLeft:null,initialRight:null,activeLeft:0,activeRight:0,maxRange:0,lineLeft:0,lineRight:0,dotTopValue:[0,0],_value:0,blockSize:20,isScale:!1,scaleArray:[],scaleTextArray:[],prefix:prefix,isVisibleToScreenReader:!1,identifier:[-1,-1],__inited:!1},this.observers={value(e){this.handlePropsChange(e)},_value(e){this.bus.on("initial",(()=>this.renderLine(e))),this.toggleA11yTips()},marks(e){this.bus.on("initial",(()=>this.handleMark(e)))}},this.lifetimes={created(){this.bus=new Bus},attached(){const{value:e}=this.properties;e||this.handlePropsChange(0),this.init(),this.injectPageScroll()}}}injectPageScroll(){const{range:e,vertical:t}=this.properties;if(!e||!t)return;const i=getCurrentPages()||[];let s=null;if(i&&i.length-1>=0&&(s=i[i.length-1]),!s)return;const r=null==s?void 0:s.onPageScroll;s.onPageScroll=e=>{null==r||r.call(this,e),this.observerScrollTop(e)}}observerScrollTop(e){const{scrollTop:t}=e||{};this.pageScrollTop=t}toggleA11yTips(){this.setData({isVisibleToScreenReader:!0}),setTimeout((()=>{this.setData({isVisibleToScreenReader:!1})}),2e3)}renderLine(e){const{min:t,max:i,range:s}=this.properties,{maxRange:r}=this.data;if(s){const s=r*(e[0]-Number(t))/(Number(i)-Number(t)),a=r*(Number(i)-e[1])/(Number(i)-Number(t));this.setLineStyle(s,a)}else this.setSingleBarWidth(e)}triggerValue(e){this.preval!==e&&(this.preval=e,this._trigger("change",{value:trimValue(e,this.properties)}))}handlePropsChange(e){const t=trimValue(e,this.properties),i=()=>{this.setData({_value:t})};0!==this.data.maxRange?i():this.init().then(i)}valueToPosition(e){const{min:t,max:i,theme:s}=this.properties,{blockSize:r,maxRange:a}=this.data,n="capsule"===s?Number(r)/2:0;return Math.round((Number(e)-Number(t))/(Number(i)-Number(t))*a)+n}handleMark(e){const t=e=>e.map((e=>({val:e,left:this.valueToPosition(e)})));if((null==e?void 0:e.length)&&Array.isArray(e)&&this.setData({isScale:!0,scaleArray:t(e),scaleTextArray:[]}),"[object Object]"===Object.prototype.toString.call(e)){const i=Object.keys(e).map((e=>Number(e))),s=i.map((t=>e[t]));this.setData({isScale:i.length>0,scaleArray:t(i),scaleTextArray:s})}}setSingleBarWidth(e){const t=this.valueToPosition(e);this.setData({lineBarWidth:`${t}px`})}init(){return __awaiter(this,void 0,void 0,(function*(){if(this.data.__inited)return;const e=yield getRect(this,"#sliderLine"),{blockSize:t}=this.data,{theme:i,vertical:s}=this.properties,r=Number(t)/2,{top:a,bottom:n,right:o,left:l}=e;let h=s?n-a:o-l,c=s?a:l,u=s?n:o;0===c&&0===u||("capsule"===i&&(h=h-Number(t)-6,c-=r,u-=r),this.setData({maxRange:h,initialLeft:c,initialRight:u,__inited:!0}),this.bus.emit("initial"))}))}stepValue(e){const{step:t,min:i,max:s}=this.properties,r=String(t).indexOf(".")>-1?String(t).length-String(t).indexOf(".")-1:0;return trimSingleValue(Number((Math.round(e/Number(t))*Number(t)).toFixed(r)),Number(i),Number(s))}onSingleLineTap(e){const{disabled:t}=this.properties;if(t)return;const i=-1===this.data.identifier[0];if(i){const[t]=e.changedTouches;this.data.identifier[0]=t.identifier}const s=this.getSingleChangeValue(e);i&&(this.data.identifier[0]=-1),this.triggerValue(s)}getSingleChangeValue(e){const{min:t,max:i,theme:s,vertical:r}=this.properties,{initialLeft:a,maxRange:n,blockSize:o}=this.data,l=e.changedTouches.find((e=>e.identifier===this.data.identifier[0])),h=this.getPagePosition(l);let c=0;"capsule"===s?(c=Number(o),r&&(c*=2),c+=6):r&&(c=Number(o));const u=h-a-c;let p=0;return p=u<=0?Number(t):u>=n?Number(i):u/n*(Number(i)-Number(t))+Number(t),this.stepValue(p)}convertPosToValue(e,t){const{maxRange:i}=this.data,{max:s,min:r}=this.properties;return 0===t?e/i*(Number(s)-Number(r))+Number(r):Number(s)-e/i*(Number(s)-Number(r))}onLineTap(e){const{disabled:t,theme:i,vertical:s}=this.properties,{initialLeft:r,initialRight:a,maxRange:n,blockSize:o}=this.data;if(t)return;const[l]=e.changedTouches,h=this.getPagePosition(l),c="capsule"===i?Number(o)/2:0;h-r<0||-(h-a)>n+Number(o)||Promise.all([getRect(this,"#leftDot"),getRect(this,"#rightDot")]).then((([e,t])=>{const n=this.pageScrollTop||0,l=s?e.top+n:e.left,u=Math.abs(h-l-c),p=s?t.top+n:t.left,d=ue.identifier===this.data.identifier[0])),l=this.getPagePosition(o);let h=0;"capsule"===i&&(h+=Number(n)),s&&(h+=Number(n)+6);const c=l-r-h,u=[...a],p=this.convertPosToValue(c,0);u[0]=this.stepValue(p),this.triggerValue(u)}onTouchMoveRight(e){const{disabled:t,vertical:i}=this.properties,{initialRight:s,_value:r,blockSize:a}=this.data;if(t)return;const n=e.changedTouches.find((e=>e.identifier===this.data.identifier[1])),o=this.getPagePosition(n);let l=0;i&&(l+=Number(a)/2+6);const h=-(o-s-l),c=[...r],u=this.convertPosToValue(h,1);c[1]=this.stepValue(u),this.triggerValue(c)}setLineStyle(e,t){const{theme:i}=this.properties,{blockSize:s,maxRange:r}=this.data,a="capsule"===i?Number(s)/2:0,[n,o]=this.data._value,l=e=>parseInt(e,10);this.setData({dotTopValue:[n,o]}),e+t<=r?this.setData({lineLeft:l(e+a),lineRight:l(t+a)}):this.setData({lineLeft:l(r+a-t),lineRight:l(r-e+1.5*a)})}onTouchEnd(e){this.triggerEvent("dragend",{e:e,value:this.data._value}),"rightDot"===e.currentTarget.id?this.data.identifier[1]=-1:this.data.identifier[0]=-1}getPagePosition(e){const{pageX:t,pageY:i}=e,{vertical:s}=this.properties;return s?i:t}};Slider=__decorate([wxComponent()],Slider);export default Slider;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.json b/miniprogram_npm/tdesign-miniprogram/slider/slider.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.wxml b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxml
new file mode 100644
index 0000000..d5503ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxml
@@ -0,0 +1 @@
+{{ label ? t.getValue(label, min) : min}}{{scaleTextArray[index]}}{{t.getValue(label, _value) || _value}}{{ label ? t.getValue(label, max) : max}}{{min}}{{scaleTextArray[index]}}{{t.getValue(label, dotTopValue[0]) || dotTopValue[0]}}{{t.getValue(label, dotTopValue[1]) || dotTopValue[1]}}{{max}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.wxs b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxs
new file mode 100644
index 0000000..b4be3ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxs
@@ -0,0 +1,10 @@
+var REGEXP = getRegExp('[$][{value}]{7}');
+
+function getValue(label, value) {
+ if (label && label === 'true') return value;
+ if (REGEXP.test(label)) return label.replace(REGEXP, value);
+}
+
+module.exports = {
+ getValue: getValue,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.wxss b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxss
new file mode 100644
index 0000000..71c40ae
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-slider{width:100%;font-size:14px;display:flex;align-items:center}.t-slider--disabled .t-slider__dot-value,.t-slider--disabled .t-slider__range-extreme,.t-slider--disabled .t-slider__scale-desc,.t-slider--disabled .t-slider__value{color:var(--td-slider-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-slider--disabled .t-slider__dot{background-color:var(--td-slider-dot-disabled-bg-color,#fff);border-color:var(--td-slider-dot-disabled-border-color,#f3f3f3)}.t-slider--top{padding-top:40rpx}.t-slider__line{position:absolute;top:0;height:var(--td-slider-bar-height,8rpx);border-radius:calc(var(--td-slider-bar-height,8rpx)/ 2);background-color:var(--td-slider-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-slider__line--disabled{background-color:var(--td-slider-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-slider__line--capsule{height:var(--td-slider-capsule-line-heihgt,36rpx)}.t-slider__line--capsule.t-slider__line--single{border-top-left-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2);border-bottom-left-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2)}.t-slider__dot{border-radius:50%;border:2rpx solid var(--td-slider-dot-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));position:absolute;top:50%;right:0;transform:translate3d(50%,-50%,0);z-index:2;background-color:var(--td-slider-dot-bg-color,#fff);width:var(--td-slider-dot-size,40rpx);height:var(--td-slider-dot-size,40rpx);box-shadow:var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12));box-sizing:border-box}.t-slider__dot--left{left:0;transform:translate3d(-50%,-50%,0)}.t-slider__dot-value{position:relative;left:50%;transform:translateX(-50%);top:-52rpx;text-align:center;width:96rpx;height:44rpx;line-height:44rpx}.t-slider__dot-value,.t-slider__range-extreme,.t-slider__value{color:var(--td-slider-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-slider__dot-value--sr-only,.t-slider__range-extreme--sr-only,.t-slider__value--sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}.t-slider__dot-slider{width:100%;height:100%;position:absolute;left:0;top:0}.t-slider__value--min{margin-left:32rpx}.t-slider__value--max{margin-right:32rpx}.t-slider__value--right{flex-basis:80rpx}.t-slider__value--right__value--text{margin-right:32rpx;text-align:right;display:block}.t-slider__bar{margin:16rpx 32rpx;flex:10;background-clip:content-box;height:var(--td-slider-bar-height,8rpx);border-radius:calc(var(--td-slider-bar-height,8rpx)/ 2);position:relative;background-color:var(--td-slider-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-slider__bar--capsule{height:var(--td-slider-capsule-bar-heihgt,48rpx);border-radius:calc(var(--td-slider-capsule-bar-heihgt,48rpx)/ 2);background-color:var(--td-slider-capsule-bar-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border:6rpx solid var(--td-slider-capsule-bar-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));box-sizing:border-box}.t-slider__bar--marks{background-color:var(--td-slider-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-slider__bar--disabled{background-color:var(--td-slider-default-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-slider__range-extreme--min{margin-left:32rpx;text-align:left}.t-slider__range-extreme--max{margin-right:32rpx;text-align:right}.t-slider__scale-item{background-color:var(--td-slider-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));width:var(--td-slider-bar-height,8rpx);height:16rpx;width:16rpx;border-radius:50%;position:absolute;top:50%;margin-top:-8rpx;z-index:1}.t-slider__scale-item--active{background-color:var(--td-slider-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-slider__scale-item--disabled{background-color:var(--td-slider-default-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-slider__scale-item--active.t-slider__scale-item--disabled{background-color:var(--td-slider-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-slider__scale-item--capsule{height:var(--td-slider-capsule-line-heihgt,36rpx);width:4rpx;border-radius:0;background-color:var(--td-slider-capsule-bar-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));margin-top:calc(-.5 * var(--td-slider-capsule-line-heihgt,36rpx))}.t-slider__scale-item--hidden{background-color:transparent}.t-slider__scale-desc{position:absolute;left:50%;color:var(--td-slider-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));transform:translateX(-50%);bottom:32rpx}.t-slider__scale-desc--capsule{bottom:46rpx}.t-slider--vertical{--td-slider-bar-height:400rpx;height:var(--td-slider-bar-height,8rpx);justify-content:center;position:relative}.t-slider--vertical .t-slider__bar{flex:none;height:100%;width:var(--td-slider-bar-width,8rpx)}.t-slider--vertical .t-slider__bar--capsule{width:var(--td-slider-capsule-bar-width,48rpx);border-radius:calc(var(--td-slider-capsule-bar-width,48rpx)/ 2)}.t-slider--vertical .t-slider__line{width:100%;height:unset;left:0;border-radius:calc(var(--td-slider-bar-width,8rpx)/ 2)}.t-slider--vertical .t-slider__line--capsule.t-slider__line--single{border-top-left-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2);border-top-right-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2)}.t-slider--vertical .t-slider__dot{left:50%;top:100%;transform:translate(-50%,-50%)}.t-slider--vertical .t-slider__dot--left{top:0;transform:translate(-50%,-50%);left:50%}.t-slider--vertical .t-slider__dot--right{left:50%;transform:translate(-50%,-50%);top:100%}.t-slider--vertical .t-slider__dot-value{left:54rpx;top:50%;transform:translate(0,-50%);width:auto}.t-slider--vertical .t-slider__range-extreme{position:absolute;left:50%;transform:translateX(-50%);margin:0}.t-slider--vertical .t-slider__range-extreme--min{top:0}.t-slider--vertical .t-slider__range-extreme--max{bottom:0}.t-slider--vertical .t-slider__scale-item{left:50%;margin-top:0}.t-slider--vertical .t-slider__scale-item--capsule{height:4rpx;width:var(--td-slider-capsule-line-heihgt,36rpx)}.t-slider--vertical .t-slider__scale-desc{top:50%;transform:translateY(-50%);bottom:unset;left:38rpx}.t-slider--vertical .t-slider__scale-desc--capsule{left:52rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/tool.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/tool.d.ts
new file mode 100644
index 0000000..b9383e6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/tool.d.ts
@@ -0,0 +1,2 @@
+export declare const trimSingleValue: (value: any, min: number, max: number) => number;
+export declare const trimValue: (value: number | number[], props: any) => number | number[];
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/tool.js b/miniprogram_npm/tdesign-miniprogram/slider/tool.js
new file mode 100644
index 0000000..5f5cd96
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/tool.js
@@ -0,0 +1 @@
+export const trimSingleValue=(r,e,i)=>ri?i:r;export const trimValue=(r,e)=>{const{min:i,max:t,range:n}=e;return n&&Array.isArray(r)?(r[0]=trimSingleValue(r[0],i,t),r[1]=trimSingleValue(r[1],i,t),r[0]<=r[1]?r:[r[1],r[0]]):n?[i,t]:n?void 0:trimSingleValue(r,i,t)};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/type.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/type.d.ts
new file mode 100644
index 0000000..099ed6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/type.d.ts
@@ -0,0 +1,51 @@
+export interface TdSliderProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: null;
+ value?: string | boolean;
+ };
+ marks?: {
+ type: null;
+ value?: Record | Array;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ min?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ range?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showExtremeValue?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ step?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'capsule';
+ };
+ value?: {
+ type: null;
+ value?: SliderValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: SliderValue;
+ };
+ vertical?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type SliderValue = number | Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/type.js b/miniprogram_npm/tdesign-miniprogram/slider/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/step-item/props.d.ts
new file mode 100644
index 0000000..d941a41
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStepItemProps } from './type';
+declare const props: TdStepItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/props.js b/miniprogram_npm/tdesign-miniprogram/step-item/props.js
new file mode 100644
index 0000000..9c438f9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/props.js
@@ -0,0 +1 @@
+const props={content:{type:String,value:""},icon:{type:String},status:{type:String,value:"default"},title:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.d.ts b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.d.ts
new file mode 100644
index 0000000..c2f2ecc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.d.ts
@@ -0,0 +1,34 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class StepItem extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ externalClasses: string[];
+ properties: import("./type").TdStepItemProps;
+ data: {
+ classPrefix: string;
+ prefix: string;
+ index: number;
+ isDot: boolean;
+ curStatus: string;
+ layout: string;
+ isLastChild: boolean;
+ sequence: string;
+ };
+ observers: {
+ status(value: any): void;
+ };
+ methods: {
+ updateStatus({ current, currentStatus, index, theme, layout, items, sequence }: {
+ current: any;
+ currentStatus: any;
+ index: any;
+ theme: any;
+ layout: any;
+ items: any;
+ sequence: any;
+ }): void;
+ onTap(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.js b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.js
new file mode 100644
index 0000000..5d02097
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-steps-item`;let StepItem=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.relations={"../steps/steps":{type:"parent"}},this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-title`,`${prefix}-class-description`,`${prefix}-class-extra`],this.properties=props,this.data={classPrefix:name,prefix:prefix,index:0,isDot:!1,curStatus:"",layout:"vertical",isLastChild:!1,sequence:"positive"},this.observers={status(t){const{curStatus:e}=this.data;""!==e&&t!==e&&this.setData({curStatus:t})}},this.methods={updateStatus({current:t,currentStatus:e,index:s,theme:i,layout:r,items:o,sequence:a}){let p=this.data.status;"default"===p&&(s{{index + 1}}{{ title }}{{ content }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxs b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxs
new file mode 100644
index 0000000..491902c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxs
@@ -0,0 +1,7 @@
+function getAriaLabel(index, title, content) {
+ return '第' + (index + 1) + '步,' + title + ',' + content;
+}
+
+module.exports = {
+ getAriaLabel: getAriaLabel,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxss b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxss
new file mode 100644
index 0000000..61c1d7b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-steps-item{flex:1;vertical-align:top;position:relative;display:flex}.t-steps-item__circle--default{color:var(--td-step-item-default-circle-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));background-color:var(--td-step-item-default-circle-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-steps-item__title--default{color:var(--td-step-item-default-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-steps-item__icon--default{color:var(--td-step-item-default-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-steps-item__dot--default{border-color:var(--td-step-item-default-dot-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));background-color:var(--td-step-item-default-dot-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-steps-item__circle--process{color:var(--td-step-item-process-circle-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-step-item-process-circle-bg,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__title--process{color:var(--td-step-item-process-title-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__icon--process{color:var(--td-step-item-process-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__dot--process{border-color:var(--td-step-item-process-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-step-item-process-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__circle--finish{color:var(--td-step-item-finish-circle-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-step-item-finish-circle-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-steps-item__title--finish{color:var(--td-step-item-finish-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-steps-item__icon--finish{color:var(--td-step-item-finish-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__dot--finish{border-color:var(--td-step-item-finish-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-step-item-finish-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__circle--error{color:var(--td-step-item-error-circle-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-step-item-error-circle-bg,var(--td-error-color-1,#fff0ed))}.t-steps-item__title--error{color:var(--td-step-item-error-title-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-steps-item__icon--error{color:var(--td-step-item-error-icon-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-steps-item__dot--error{border-color:var(--td-step-item-error-dot-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-step-item-error-dot-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-steps-item--horizontal{flex-direction:column;justify-content:center;align-items:center}.t-steps-item__anchor{display:flex;align-items:center;justify-content:center}.t-steps-item__anchor--vertical{width:var(--td-step-item-circle-size,44rpx);height:var(--td-step-item-circle-size,44rpx)}.t-steps-item__circle{display:flex;justify-content:center;align-items:center;width:var(--td-step-item-circle-size,44rpx);height:var(--td-step-item-circle-size,44rpx);text-align:center;border-radius:50%;font-size:var(--td-step-item-circle-font-size,28rpx)}.t-steps-item__icon{z-index:1;vertical-align:top;font-size:var(--td-font-size-base,28rpx);position:relative}.t-steps-item__dot{width:var(--td-step-item-dot-size,16rpx);height:var(--td-step-item-dot-size,16rpx);border-radius:50%;border-width:1px;border-style:solid;box-sizing:border-box}.t-steps-item__content{text-align:center}.t-steps-item__content--horizontal{max-width:80px;margin-top:16rpx}.t-steps-item__content--vertical{margin-left:16rpx;flex:1;padding-bottom:32rpx}.t-steps-item__content--vertical.t-steps-item__content--last{padding-bottom:0}.t-steps-item__title{position:relative;line-height:var(--td-step-item-circle-size,44rpx);font-size:var(--td-font-size-base,28rpx)}.t-steps-item__title--process{font-weight:600}.t-steps-item__title--vertical{text-align:left;display:flex;align-items:center;justify-content:space-between;margin-bottom:8rpx}.t-steps-item__description{color:var(--td-step-item-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));line-height:40rpx;font-size:var(--td-font-size-s,24rpx)}.t-steps-item__description--vertical{text-align:left}.t-steps-item__extra:not(:empty){margin-top:16rpx}.t-steps-item__line{background-color:var(--td-step-item-line-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));content:'';display:block;position:absolute}.t-steps-item__line--horizontal{height:1px;transform:translateY(-50%);width:calc(100% - 32rpx - var(--td-step-item-circle-size,44rpx));top:calc(var(--td-step-item-circle-size,44rpx)/ 2 + 1px);left:calc(50% + var(--td-step-item-circle-size,44rpx)/ 2 + 16rpx)}.t-steps-item__line--horizontal.t-steps-item__line--dot{top:calc(var(--td-step-item-dot-size,16rpx)/ 2)}.t-steps-item__line--finish,.t-steps-item__line--reverse.t-steps-item__line--process{background-color:var(--td-step-item-finish-line-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__line--vertical{height:calc(100% - 32rpx - var(--td-step-item-circle-size,44rpx));width:1px;transform:translateX(-50%);left:calc(var(--td-step-item-circle-size,44rpx)/ 2);top:calc(var(--td-step-item-circle-size,44rpx) + 16rpx)}.t-steps-item__line--vertical.t-steps-item__line--dot{top:var(--td-step-item-circle-size,44rpx);height:calc(100% - var(--td-step-item-circle-size,44rpx))}:host{flex:1;vertical-align:top;position:relative;align-self:flex-start;width:inherit}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/step-item/type.d.ts
new file mode 100644
index 0000000..ca5e4b4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/type.d.ts
@@ -0,0 +1,19 @@
+export interface TdStepItemProps {
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ icon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ status?: {
+ type: StringConstructor;
+ value?: StepStatus;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export declare type StepStatus = 'default' | 'process' | 'finish' | 'error';
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/type.js b/miniprogram_npm/tdesign-miniprogram/step-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/props.d.ts b/miniprogram_npm/tdesign-miniprogram/stepper/props.d.ts
new file mode 100644
index 0000000..7f9e104
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStepperProps } from './type';
+declare const props: TdStepperProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/props.js b/miniprogram_npm/tdesign-miniprogram/stepper/props.js
new file mode 100644
index 0000000..f72fa3e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/props.js
@@ -0,0 +1 @@
+const props={disableInput:{type:Boolean,value:!1},disabled:{type:null,value:void 0},inputWidth:{type:Number},integer:{type:Boolean,value:!0},max:{type:Number,value:100},min:{type:Number,value:0},size:{type:String,value:"medium"},step:{type:Number,value:1},theme:{type:String,value:"normal"},value:{type:null,value:null},defaultValue:{type:null,value:0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.d.ts b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.d.ts
new file mode 100644
index 0000000..3938064
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.d.ts
@@ -0,0 +1,78 @@
+import { SuperComponent } from '../common/src/index';
+export default class Stepper extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ disableInput?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inputWidth?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ integer?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ min?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: import("../common/common").SizeEnum;
+ };
+ step?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: "outline" | "filled" | "normal";
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(v: any): void;
+ };
+ data: {
+ currentValue: number;
+ classPrefix: string;
+ prefix: string;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ isDisabled(type: any): boolean;
+ getLen(num: number): number;
+ add(a: number, b: number): number;
+ format(value: any): string;
+ setValue(value: any): void;
+ minusValue(): boolean;
+ plusValue(): boolean;
+ filterIllegalChar(value: string | number): string;
+ handleFocus(e: any): void;
+ handleInput(e: any): void;
+ handleBlur(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.js b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.js
new file mode 100644
index 0000000..a07dfb9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-stepper`;let Stepper=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-input`,`${prefix}-class-minus`,`${prefix}-class-plus`],this.properties=Object.assign({},props),this.controlledProps=[{key:"value",event:"change"}],this.observers={value(e){this.preValue=Number(e),this.setData({currentValue:this.format(Number(e))})}},this.data={currentValue:0,classPrefix:name,prefix:prefix},this.lifetimes={attached(){const{value:e,min:t}=this.properties;this.setData({currentValue:e?Number(e):t})}},this.methods={isDisabled(e){const{min:t,max:s,disabled:r}=this.properties,{currentValue:i}=this.data;return!!r||("minus"===e&&i<=t||"plus"===e&&i>=s)},getLen(e){const t=e.toString();return-1===t.indexOf(".")?0:t.split(".")[1].length},add(e,t){const s=Math.max(this.getLen(e),this.getLen(t)),r=Math.pow(10,s);return Math.round(e*r+t*r)/r},format(e){const{min:t,max:s,step:r}=this.properties,i=Math.max(this.getLen(r),this.getLen(e));return Math.max(Math.min(s,e,Number.MAX_SAFE_INTEGER),t,Number.MIN_SAFE_INTEGER).toFixed(i)},setValue(e){e=this.format(e),this.preValue!==e&&(this.preValue=e,this._trigger("change",{value:Number(e)}))},minusValue(){if(this.isDisabled("minus"))return this.triggerEvent("overlimit",{type:"minus"}),!1;const{currentValue:e,step:t}=this.data;this.setValue(this.add(e,-t))},plusValue(){if(this.isDisabled("plus"))return this.triggerEvent("overlimit",{type:"plus"}),!1;const{currentValue:e,step:t}=this.data;this.setValue(this.add(e,t))},filterIllegalChar(e){const t=String(e).replace(/[^0-9.]/g,""),s=t.indexOf(".");return this.properties.integer&&-1!==s?t.split(".")[0]:this.properties.integer||-1===s||s===t.lastIndexOf(".")?t:t.split(".",2).join(".")},handleFocus(e){const{value:t}=e.detail;this.triggerEvent("focus",{value:t})},handleInput(e){const{value:t}=e.detail;if(""===t)return;const s=this.filterIllegalChar(t);this.setData({currentValue:s}),this.triggerEvent("input",{value:s})},handleBlur(e){const{value:t}=e.detail,s=this.format(t);this.setValue(s),this.triggerEvent("blur",{value:s})}}}};Stepper=__decorate([wxComponent()],Stepper);export default Stepper;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.json b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.json
new file mode 100644
index 0000000..eacfbb7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-cell":"../cell/cell","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxml b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxml
new file mode 100644
index 0000000..ba2b243
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxss b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxss
new file mode 100644
index 0000000..97b7eb2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-stepper{display:flex;align-items:center;color:var(--td-stepper-input-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-stepper__input{margin:0 8rpx;text-align:center;vertical-align:top;height:inherit;min-height:inherit}.t-stepper__minus,.t-stepper__plus{padding:8rpx;box-sizing:border-box}.t-stepper__input,.t-stepper__minus-icon,.t-stepper__plus-icon{color:inherit}.t-stepper__input--filled,.t-stepper__input--normal,.t-stepper__input--outline{height:inherit;box-sizing:border-box}.t-stepper--small{height:40rpx;font-size:20rpx}.t-stepper--medium{height:48rpx;font-size:24rpx}.t-stepper--large{height:56rpx;font-size:32rpx}.t-stepper__input--small{width:68rpx}.t-stepper__input--medium{height:48rpx;width:76rpx}.t-stepper__input--large{width:90rpx}.t-stepper__icon--small{width:40rpx;height:40rpx;font-size:24rpx}.t-stepper__icon--medium{width:48rpx;height:48rpx;font-size:32rpx}.t-stepper__icon--large{width:56rpx;height:56rpx;font-size:40rpx}.t-stepper__minus--outline,.t-stepper__plus--outline{border:2rpx solid var(--td-stepper-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-stepper__input--outline{border:none;border-top:2rpx solid var(--td-stepper-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));border-bottom:2rpx solid var(--td-stepper-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-stepper__minus--filled,.t-stepper__minus--outline{border-radius:0;border-top-left-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx));border-bottom-left-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx))}.t-stepper__plus--filled,.t-stepper__plus--outline{border-radius:0;border-top-right-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx));border-bottom-right-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx))}.t-stepper__minus--filled,.t-stepper__plus--filled{background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3))}.t-stepper__input--filled{background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));margin:0 8rpx}.t-stepper__input--filled .t-stepper__input{margin:0}.t-stepper--normal-disabled{color:var(--td-stepper-input-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-stepper--filled-disabled,.t-stepper--outline-disabled{color:var(--td-stepper-input-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-stepper-input-disabled-bg,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/type.d.ts b/miniprogram_npm/tdesign-miniprogram/stepper/type.d.ts
new file mode 100644
index 0000000..31499e7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/type.d.ts
@@ -0,0 +1,47 @@
+import { SizeEnum } from '../common/common';
+export interface TdStepperProps {
+ disableInput?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inputWidth?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ integer?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ min?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: SizeEnum;
+ };
+ step?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'normal' | 'filled' | 'outline';
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/type.js b/miniprogram_npm/tdesign-miniprogram/stepper/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/props.d.ts b/miniprogram_npm/tdesign-miniprogram/steps/props.d.ts
new file mode 100644
index 0000000..fef4049
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStepsProps } from './type';
+declare const props: TdStepsProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/props.js b/miniprogram_npm/tdesign-miniprogram/steps/props.js
new file mode 100644
index 0000000..706db9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/props.js
@@ -0,0 +1 @@
+const props={current:{type:null,value:null},defaultCurrent:{type:null},currentStatus:{type:String,value:"process"},layout:{type:String,value:"horizontal"},readonly:{type:Boolean,value:!1},sequence:{type:String,value:"positive"},theme:{type:String,value:"default"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.d.ts b/miniprogram_npm/tdesign-miniprogram/steps/steps.d.ts
new file mode 100644
index 0000000..9f4edc0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Steps extends SuperComponent {
+ relations: RelationsOptions;
+ externalClasses: string[];
+ properties: import("./type").TdStepsProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'current, theme, sequence'(): void;
+ };
+ methods: {
+ updateChildren(): void;
+ updateLastChid(): void;
+ handleClick(index: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.js b/miniprogram_npm/tdesign-miniprogram/steps/steps.js
new file mode 100644
index 0000000..0ed927a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-steps`;let Steps=class extends SuperComponent{constructor(){super(...arguments),this.relations={"../step-item/step-item":{type:"child",linked(e){this.updateChildren();const{readonly:t}=this.data;e.setData({readonly:t})},unlinked(){this.updateLastChid()}}},this.externalClasses=[`${prefix}-class`],this.properties=props,this.controlledProps=[{key:"current",event:"change"}],this.data={prefix:prefix,classPrefix:name},this.observers={"current, theme, sequence"(){this.updateChildren()}},this.methods={updateChildren(){const e=this.$children;e.forEach(((t,s)=>{t.updateStatus(Object.assign({index:s,items:e},this.data))}))},updateLastChid(){const e=this.$children;e.forEach(((t,s)=>t.setData({isLastChild:s===e.length-1})))},handleClick(e){if(!this.data.readonly){const t=this.data.current;this._trigger("change",{previous:t,current:e})}}}}};Steps=__decorate([wxComponent()],Steps);export default Steps;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.json b/miniprogram_npm/tdesign-miniprogram/steps/steps.json
new file mode 100644
index 0000000..d2480dd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-step":"../step-item/step-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.wxml b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxml
new file mode 100644
index 0000000..56b7a9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.wxss b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxss
new file mode 100644
index 0000000..be96c07
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';:host{display:flex}.t-step--vertical{padding-right:32rpx}.t-steps{display:flex;width:100%}.t-steps--vertical{flex-direction:column}.t-steps--reverse{flex-direction:row-reverse}.t-steps--vertical.t-steps--reverse{flex-direction:column-reverse}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/type.d.ts b/miniprogram_npm/tdesign-miniprogram/steps/type.d.ts
new file mode 100644
index 0000000..d0e9147
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdStepsProps {
+ current?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultCurrent?: {
+ type: null;
+ value?: string | number;
+ };
+ currentStatus?: {
+ type: StringConstructor;
+ value?: 'default' | 'process' | 'finish' | 'error';
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ sequence?: {
+ type: StringConstructor;
+ value?: 'positive' | 'reverse';
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'dot';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/type.js b/miniprogram_npm/tdesign-miniprogram/steps/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/index.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/index.d.ts
new file mode 100644
index 0000000..a6df66d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './sticky';
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/index.js b/miniprogram_npm/tdesign-miniprogram/sticky/index.js
new file mode 100644
index 0000000..af29307
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./sticky";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/props.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/props.d.ts
new file mode 100644
index 0000000..175af72
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStickyProps } from './type';
+declare const props: TdStickyProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/props.js b/miniprogram_npm/tdesign-miniprogram/sticky/props.js
new file mode 100644
index 0000000..cdab8a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/props.js
@@ -0,0 +1 @@
+const props={container:{type:null},disabled:{type:Boolean,value:!1},offsetTop:{type:null,value:0},zIndex:{type:Number,value:99}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.d.ts
new file mode 100644
index 0000000..89ba546
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.d.ts
@@ -0,0 +1,30 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdStickyProps } from './type';
+export interface StickyProps extends TdStickyProps {
+}
+export default class Sticky extends SuperComponent {
+ externalClasses: string[];
+ properties: TdStickyProps;
+ behaviors: string[];
+ observers: {
+ 'offsetTop, disabled, container'(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ containerStyle: string;
+ contentStyle: string;
+ };
+ ready(): void;
+ methods: {
+ onScroll(event?: {
+ scrollTop: number;
+ }): void;
+ setDataAfterDiff(data: {
+ isFixed: boolean;
+ height?: number;
+ transform?: number;
+ }): void;
+ getContainerRect(): Promise;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.js b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.js
new file mode 100644
index 0000000..3d505ca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import pageScrollMixin from"../mixins/page-scroll";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-sticky`,ContainerClass=`.${name}`;let Sticky=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`],this.properties=props,this.behaviors=[pageScrollMixin()],this.observers={"offsetTop, disabled, container"(){this.onScroll()}},this.data={prefix:prefix,classPrefix:name,containerStyle:"",contentStyle:""},this.methods={onScroll(t){const{scrollTop:e}=t||{},{container:i,offsetTop:o,disabled:s}=this.properties;s?this.setDataAfterDiff({isFixed:!1,transform:0}):(this.scrollTop=e||this.scrollTop,"function"!=typeof i?getRect(this,ContainerClass).then((t=>{t&&(o>=t.top?(this.setDataAfterDiff({isFixed:!0,height:t.height}),this.transform=0):this.setDataAfterDiff({isFixed:!1}))})):Promise.all([getRect(this,ContainerClass),this.getContainerRect()]).then((([t,e])=>{t&&e&&(o+t.height>e.height+e.top?this.setDataAfterDiff({isFixed:!1,transform:e.height-t.height}):o>=t.top?this.setDataAfterDiff({isFixed:!0,height:t.height,transform:0}):this.setDataAfterDiff({isFixed:!1,transform:0}))})))},setDataAfterDiff(t){const{offsetTop:e}=this.properties,{containerStyle:i,contentStyle:o}=this.data,{isFixed:s,height:r,transform:n}=t;wx.nextTick((()=>{let t="",a="";if(s&&(t+=`height:${r}px;`,a+=`position:fixed;top:${e}px;left:0;right:0;`),n){const t=`translate3d(0, ${n}px, 0)`;a+=`-webkit-transform:${t};transform:${t};`}i===t&&o===a||this.setData({containerStyle:t,contentStyle:a}),this.triggerEvent("scroll",{scrollTop:this.scrollTop,isFixed:s})}))},getContainerRect(){const t=this.properties.container();return new Promise((e=>t.boundingClientRect(e).exec()))}}}ready(){this.onScroll()}};Sticky=__decorate([wxComponent()],Sticky);export default Sticky;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.json b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxml b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxml
new file mode 100644
index 0000000..802adb8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxss b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxss
new file mode 100644
index 0000000..d0fe63e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-sticky{position:relative}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/type.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/type.d.ts
new file mode 100644
index 0000000..36195d9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/type.d.ts
@@ -0,0 +1,18 @@
+export interface TdStickyProps {
+ container?: {
+ type: undefined;
+ value?: null;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ offsetTop?: {
+ type: null;
+ value?: string | number;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/type.js b/miniprogram_npm/tdesign-miniprogram/sticky/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.d.ts b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.d.ts
new file mode 100644
index 0000000..9a3159c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwipeCellProps } from './type';
+declare const props: TdSwipeCellProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.js b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.js
new file mode 100644
index 0000000..cc244d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:Boolean},left:{type:Array},opened:{type:null,value:!1},right:{type:Array},style:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.d.ts b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.d.ts
new file mode 100644
index 0000000..8faa283
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.d.ts
@@ -0,0 +1,31 @@
+import { SuperComponent } from '../common/src/index';
+export default class SwiperCell extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdSwipeCellProps;
+ data: {
+ prefix: string;
+ wrapperStyle: string;
+ closed: boolean;
+ classPrefix: string;
+ skipMove: boolean;
+ };
+ observers: {
+ 'left, right'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ ready(): void;
+ detached(): void;
+ };
+ setSwipeWidth(): void;
+ skipMove(): void;
+ catchMove(): void;
+ open(): void;
+ close(): void;
+ closeOther(): void;
+ onTap(): void;
+ onActionTap(event: any): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.js b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.js
new file mode 100644
index 0000000..42778fe
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect}from"../common/utils";import{getObserver}from"../common/wechat";let ARRAY=[];const{prefix:prefix}=config,name=`${prefix}-swipe-cell`,ContainerClass=`.${name}`;let SwiperCell=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,wrapperStyle:"",closed:!0,classPrefix:name,skipMove:!1},this.observers={"left, right"(){this.setSwipeWidth()}},this.lifetimes={attached(){ARRAY.push(this)},ready(){this.setSwipeWidth()},detached(){ARRAY=ARRAY.filter((e=>e!==this))}}}setSwipeWidth(){Promise.all([getRect(this,`${ContainerClass}__left`),getRect(this,`${ContainerClass}__right`)]).then((([e,t])=>{0!==e.width||0!==t.width||this._hasObserved||(this._hasObserved=!0,getObserver(this,`.${name}`).then((()=>{this.setSwipeWidth()}))),this.setData({leftWidth:e.width,rightWidth:t.width})}))}skipMove(){this.data.skipMove||this.setData({skipMove:!0})}catchMove(){this.data.skipMove&&this.setData({skipMove:!1})}open(){this.setData({opened:!0})}close(){this.setData({opened:!1})}closeOther(){ARRAY.filter((e=>e!==this)).forEach((e=>e.close()))}onTap(){this.close()}onActionTap(e){const{currentTarget:{dataset:{action:t}}}=e;this.triggerEvent("click",t)}};SwiperCell=__decorate([wxComponent()],SwiperCell);export default SwiperCell;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.json b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxml b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxml
new file mode 100644
index 0000000..3a3c776
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxml
@@ -0,0 +1 @@
+{{item.text}}{{item.text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxs b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxs
new file mode 100644
index 0000000..14efbf6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxs
@@ -0,0 +1,185 @@
+var THRESHOLD = 0.3;
+var MIN_DISTANCE = 10;
+var owner;
+var state;
+
+var getState = function (ownerInstance) {
+ owner = ownerInstance;
+ state = owner.getState();
+ state.leftWidth = state.leftWidth || 0;
+ state.rightWidth = state.rightWidth || 0;
+ state.offset = state.offset || 0;
+ state.startOffset = state.startOffset || 0;
+ state.opened = state.opened || false;
+};
+
+var initRightWidth = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ state.rightWidth = newVal;
+ initOpen(ownerInstance);
+};
+
+var initLeftWidth = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ state.leftWidth = newVal;
+ initOpen(ownerInstance);
+};
+
+var initOpen = function (ownerInstance) {
+ getState(ownerInstance);
+ if (state.opened.constructor === 'Boolean') {
+ // opened为boolean类型,判断默认打开
+ if (state.opened && state.rightWidth > 0) {
+ swipeMove(-state.rightWidth);
+ } else if (state.opened && state.leftWidth > 0) {
+ swipeMove(state.leftWidth);
+ }
+ }
+
+ if (state.opened.constructor === 'Array') {
+ // opened为array类型,判断默认打开,同时设定左右action时优先打开右边
+ if (state.opened[1] && state.rightWidth > 0) {
+ swipeMove(-state.rightWidth);
+ } else if (state.opened[0] && state.leftWidth > 0) {
+ swipeMove(state.leftWidth);
+ }
+ }
+};
+
+var resetTouchStatus = function () {
+ state.direction = '';
+ state.deltaX = 0;
+ state.deltaY = 0;
+ state.offsetX = 0;
+ state.offsetY = 0;
+};
+
+var touchMove = function (event) {
+ var touchPoint = event.touches[0];
+ state.deltaX = touchPoint.clientX - state.startX;
+ state.deltaY = touchPoint.clientY - state.startY;
+ state.offsetX = Math.abs(state.deltaX);
+ state.offsetY = Math.abs(state.deltaY);
+ state.direction = state.direction || getDirection(state.offsetX, state.offsetY);
+};
+
+var getDirection = function (x, y) {
+ if (x > y && x > MIN_DISTANCE) {
+ return 'horizontal';
+ }
+ if (y > x && y > MIN_DISTANCE) {
+ return 'vertical';
+ }
+ return '';
+};
+
+var range = function (num, min, max) {
+ return Math.min(Math.max(num, min), max);
+};
+
+var swipeMove = function (_offset) {
+ if (_offset === undefined) _offset = 0;
+ state.offset = range(_offset, -state.rightWidth, +state.leftWidth);
+ var transform = 'translate3d(' + state.offset + 'px, 0, 0)';
+ var transition = state.dragging ? 'none' : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)';
+ owner.selectComponent('#wrapper').setStyle({
+ '-webkit-transform': transform,
+ '-webkit-transition': transition,
+ transform: transform,
+ transition: transition,
+ });
+};
+
+var close = function () {
+ swipeMove(0);
+};
+
+var onCloseChange = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ if (newVal === oldVal) return;
+ if (newVal) {
+ close();
+ }
+};
+
+var onOpenedChange = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ state.opened = newVal;
+ if (newVal === oldVal) return;
+ if (!newVal) {
+ close();
+ }
+};
+
+var touchStart = function (event) {
+ resetTouchStatus();
+ state.startOffset = state.offset;
+ var touchPoint = event.touches[0];
+ state.startX = touchPoint.clientX;
+ state.startY = touchPoint.clientY;
+ owner.callMethod('closeOther');
+};
+
+var startDrag = function (event, ownerInstance) {
+ ownerInstance.callMethod('catchMove');
+ getState(ownerInstance);
+ touchStart(event);
+};
+
+var onDrag = function (event, ownerInstance) {
+ getState(ownerInstance);
+ touchMove(event);
+ if (state.direction === 'vertical') {
+ ownerInstance.callMethod('skipMove');
+ }
+ if (state.direction !== 'horizontal') {
+ return;
+ }
+ if (!state.dragging) {
+ ownerInstance.triggerEvent('dragstart');
+ }
+ state.dragging = true;
+ swipeMove(state.startOffset + state.deltaX);
+ return false;
+};
+
+var open = function (position) {
+ var _offset = position === 'left' ? +state.leftWidth : -state.rightWidth;
+ owner.callMethod('open', { position: position });
+ swipeMove(_offset);
+};
+
+var endDrag = function (event, ownerInstance) {
+ getState(ownerInstance);
+ state.dragging = false;
+ // 左/右侧有可滑动区域,且当前不是已open状态,且滑动幅度超过阈值时open左/右侧(滚动到该侧的最边上)
+ if (
+ +state.rightWidth > 0 &&
+ -state.startOffset < +state.rightWidth &&
+ -state.offset > +state.rightWidth * THRESHOLD
+ ) {
+ open('right');
+ } else if (
+ +state.leftWidth > 0 &&
+ state.startOffset < +state.leftWidth &&
+ state.offset > +state.leftWidth * THRESHOLD
+ ) {
+ open('left');
+ } else {
+ // 仅在有发生侧滑的情况下自动关闭(由js控制是否异步关闭)
+ if (state.startOffset !== state.offset) {
+ close();
+ }
+ }
+ ownerInstance.triggerEvent('dragend');
+};
+
+module.exports = {
+ initLeftWidth: initLeftWidth,
+ initRightWidth: initRightWidth,
+ startDrag: startDrag,
+ onDrag: onDrag,
+ endDrag: endDrag,
+ onCloseChange: onCloseChange,
+ onOpenedChange: onOpenedChange,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxss b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxss
new file mode 100644
index 0000000..6e5b164
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-swipe-cell{position:relative;overflow:hidden}.t-swipe-cell__left,.t-swipe-cell__right{position:absolute;top:0;height:100%}.t-swipe-cell__left{left:0;transform:translate3d(-100%,0,0)}.t-swipe-cell__right{right:0;transform:translate3d(100%,0,0)}.t-swipe-cell__content{display:inline-flex;justify-content:center;align-items:center;padding:0 var(--td-spacer-2,32rpx)}.t-swipe-cell__icon{font-size:var(--td-font-size-xl,40rpx)}.t-swipe-cell__icon+.t-swipe-cell__text:not(:empty){margin-left:var(--td-spacer,16rpx);font-size:var(--td-font-size-base,28rpx);line-height:44rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.d.ts b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.d.ts
new file mode 100644
index 0000000..de819ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdSwipeCellProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ left?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ opened?: {
+ type: null;
+ value?: boolean | Array;
+ };
+ right?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export interface SwipeActionItem {
+ text?: string;
+ icon?: string | object;
+ className?: string;
+ style?: string;
+ onClick?: () => void;
+ [key: string]: any;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.js b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.d.ts
new file mode 100644
index 0000000..5dcaf6b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './swiper-nav';
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.js
new file mode 100644
index 0000000..315c833
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./swiper-nav";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.d.ts
new file mode 100644
index 0000000..70971ea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwiperNavProps } from './type';
+declare const props: TdSwiperNavProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.js
new file mode 100644
index 0000000..adbb8a7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.js
@@ -0,0 +1 @@
+const props={current:{type:Number,value:0},direction:{type:String,value:"horizontal"},minShowNum:{type:Number,value:2},paginationPosition:{type:String,value:"bottom"},showControls:{type:Boolean,value:!1},total:{type:Number,value:0},type:{type:String,value:"dots"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.d.ts
new file mode 100644
index 0000000..ce01166
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.d.ts
@@ -0,0 +1,45 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+import { TdSwiperNavProps } from './type';
+export interface SwiperNavProps extends TdSwiperNavProps {
+}
+export default class SwiperNav extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ current: {
+ type: NumberConstructor;
+ value: number;
+ };
+ total: {
+ type: NumberConstructor;
+ value: number;
+ };
+ type: {
+ type: StringConstructor;
+ value: string;
+ };
+ minShowNum: {
+ type: NumberConstructor;
+ value: number;
+ };
+ showControls: {
+ type: BooleanConstructor;
+ value: boolean;
+ };
+ direction: {
+ type: StringConstructor;
+ value: string;
+ };
+ paginationPosition: {
+ type: StringConstructor;
+ value: string;
+ };
+ };
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ methods: {
+ nav(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.js
new file mode 100644
index 0000000..ad4da4f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-swiper-nav`;let SwiperNav=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties={current:{type:Number,value:0},total:{type:Number,value:0},type:{type:String,value:"dots"},minShowNum:{type:Number,value:2},showControls:{type:Boolean,value:!1},direction:{type:String,value:"horizontal"},paginationPosition:{type:String,value:"bottom"}},this.relations={"../swiper/swiper":{type:"parent"}},this.data={prefix:prefix,classPrefix:name},this.methods={nav(e){var t;const{dir:r}=e.target.dataset;this.triggerEvent("nav-btn-change",{dir:r,source:"nav"}),this.$parent&&(null===(t=this.$parent)||void 0===t||t.doNavBtnChange(r,"nav"))}}}};SwiperNav=__decorate([wxComponent()],SwiperNav);export default SwiperNav;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.json b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxml b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxml
new file mode 100644
index 0000000..2f3bf1a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxss b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxss
new file mode 100644
index 0000000..965a757
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-swiper-nav__dots,.t-swiper-nav__dots-bar{display:flex;flex-direction:row}.t-swiper-nav__dots-bar-item,.t-swiper-nav__dots-item{width:var(--td-swiper-nav-dot-size,12rpx);height:var(--td-swiper-nav-dot-size,12rpx);background:var(--td-swiper-nav-dot-color,var(--td-font-white-2,rgba(255,255,255,.55)));border-radius:50%;margin:0 10rpx;transition:all .4s ease-in}.t-swiper-nav__dots-bar-item--vertical,.t-swiper-nav__dots-item--vertical{margin:10rpx 0}.t-swiper-nav__dots-bar-item--active,.t-swiper-nav__dots-item--active{background-color:var(--td-swiper-nav-dot-active-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-swiper-nav__dots-bar-item--vertical.t-swiper-nav__dots-bar-item--active{width:var(--td-swiper-nav-dot-size,12rpx);height:var(--td-swiper-nav-dots-bar-active-width,40rpx)}.t-swiper-nav__dots-bar-item--active{width:var(--td-swiper-nav-dots-bar-active-width,40rpx);border-radius:calc(var(--td-swiper-nav-dot-size,12rpx)/ 2);background-color:var(--td-swiper-nav-dot-active-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-swiper-nav--left{position:absolute;left:24rpx;top:50%;transform:translateY(-50%)}.t-swiper-nav--right{position:absolute;right:24rpx;top:50%;transform:translateY(-50%)}.t-swiper-nav--top-left{position:absolute;top:24rpx;left:24rpx}.t-swiper-nav--top{position:absolute;left:50%;top:24rpx;transform:translateX(-50%)}.t-swiper-nav--top-right{position:absolute;top:24rpx;right:24rpx}.t-swiper-nav--bottom-left{position:absolute;left:24rpx;bottom:24rpx}.t-swiper-nav--bottom{position:absolute;left:50%;bottom:24rpx;transform:translateX(-50%)}.t-swiper-nav--bottom-right{position:absolute;right:24rpx;bottom:24rpx}.t-swiper-nav--vertical{flex-direction:column}.t-swiper-nav__fraction{padding:0 16rpx;height:var(--td-swiper-nav-fraction-height,48rpx);line-height:var(--td-swiper-nav-fraction-height,48rpx);border-radius:calc(var(--td-swiper-nav-fraction-height,48rpx)/ 2);background:var(--td-swiper-nav-fraction-bg-color,var(--td-font-gray-3,rgba(0,0,0,.4)));color:var(--td-swiper-nav-fraction-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));font-size:var(--td-swiper-nav-fraction-font-size,24rpx)}.t-swiper-nav__btn{width:100%;position:absolute;top:50%;transform:translateY(-50%)}.t-swiper-nav__btn--next,.t-swiper-nav__btn--prev{position:absolute;top:50%;transform:translateY(-50%);width:var(--td-swiper-nav-btn-size,48rpx);height:var(--td-swiper-nav-btn-size,48rpx);border-radius:50%;background:var(--td-swiper-nav-btn-bg-color,var(--td-font-gray-3,rgba(0,0,0,.4)))}.t-swiper-nav__btn--next::after,.t-swiper-nav__btn--prev::after{position:absolute;left:50%;top:50%;display:block;content:'';width:12rpx;height:12rpx;border-color:var(--td-swiper-nav-btn-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));border-style:solid}.t-swiper-nav__btn--prev{left:30rpx}.t-swiper-nav__btn--prev::after{margin-left:4rpx;border-width:2rpx 0 0 2rpx;transform:translate(-50%,-50%) rotateZ(-45deg)}.t-swiper-nav__btn--next{right:30rpx}.t-swiper-nav__btn--next::after{margin-left:-4rpx;border-width:2rpx 2rpx 0 0;transform:translate(-50%,-50%) rotateZ(45deg)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.d.ts
new file mode 100644
index 0000000..5fa2712
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.d.ts
@@ -0,0 +1,31 @@
+export interface TdSwiperNavProps {
+ current?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ direction?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ minShowNum?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ paginationPosition?: {
+ type: StringConstructor;
+ value?: 'top-left' | 'top' | 'top-right' | 'bottom-left' | 'bottom' | 'bottom-right';
+ };
+ showControls?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ total?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: SwiperNavigationType;
+ };
+}
+export declare type SwiperNavigationType = 'dots' | 'dots-bar' | 'fraction';
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/index.wxs b/miniprogram_npm/tdesign-miniprogram/swiper/index.wxs
new file mode 100644
index 0000000..41eca3d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/index.wxs
@@ -0,0 +1,25 @@
+function isPrev(current, index, list) {
+ return (current - 1 + list.length) % list.length === index;
+}
+
+function isNext(current, index, list) {
+ return (current + 1 + list.length) % list.length === index;
+}
+
+function getImageClass(prefix, current, index, list) {
+ var arr = [prefix + '-swiper__image-host', prefix + '-swiper__image', prefix + '-class-image'];
+
+ if (isPrev(current, index, list)) {
+ arr.push(prefix + '-class-prev-image');
+ }
+
+ if (isNext(current, index, list)) {
+ arr.push(prefix + '-class-next-image');
+ }
+
+ return arr.join(' ');
+}
+
+module.exports.isPrev = isPrev;
+module.exports.isNext = isNext;
+module.exports.getImageClass = getImageClass;
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/props.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper/props.d.ts
new file mode 100644
index 0000000..399c9af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwiperProps } from './type';
+declare const props: TdSwiperProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/props.js b/miniprogram_npm/tdesign-miniprogram/swiper/props.js
new file mode 100644
index 0000000..eb4c100
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/props.js
@@ -0,0 +1 @@
+const props={autoplay:{type:Boolean,value:!0},current:{type:Number,value:0},direction:{type:String,value:"horizontal"},displayMultipleItems:{type:Number,value:1},duration:{type:Number,value:300},easingFunction:{type:String,value:"default"},height:{type:null,value:192},imageProps:{type:Object},interval:{type:Number,value:5e3},list:{type:Array},loop:{type:Boolean,value:!0},navigation:{type:null,value:!0},nextMargin:{type:null,value:0},paginationPosition:{type:String,value:"bottom"},previousMargin:{type:null,value:0},snapToEdge:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.d.ts
new file mode 100644
index 0000000..e653a57
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Swiper extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdSwiperProps;
+ observers: {
+ navCurrent(v: any): void;
+ };
+ $nav: any;
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ updateNav(currentValue: any): void;
+ onTap(e: any): void;
+ onChange(e: any): void;
+ onNavBtnChange(e: any): void;
+ doNavBtnChange(dir: any, source: any): void;
+ onImageLoad(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.js b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.js
new file mode 100644
index 0000000..a5c71c0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-swiper`;let Swiper=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-nav`,`${prefix}-class-image`,`${prefix}-class-prev-image`,`${prefix}-class-next-image`],this.options={multipleSlots:!0},this.properties=props,this.observers={navCurrent(t){this.updateNav(t)}},this.$nav=null,this.relations={"../swiper-nav/swiper-nav":{type:"child"}},this.data={prefix:prefix,classPrefix:name},this.lifetimes={ready(){const{current:t}=this.properties;this.setData({navCurrent:t})}},this.methods={updateNav(t){var e;if(this.data.navigation)return;const i=null===(e=this.getRelationNodes("./swiper-nav"))||void 0===e?void 0:e[0];if(!i)return;const{direction:r,paginationPosition:n,list:s}=this.properties;i.setData({current:t,total:s.length,direction:r,paginationPosition:n})},onTap(t){const{index:e}=t.currentTarget.dataset;this.triggerEvent("click",{index:e})},onChange(t){const{current:e,source:i}=t.detail;this.setData({navCurrent:e}),this.triggerEvent("change",{current:e,source:i})},onNavBtnChange(t){const{dir:e,source:i}=t.detail;this.doNavBtnChange(e,i)},doNavBtnChange(t,e){const{current:i,list:r,loop:n}=this.data,s=r.length;let o="next"===t?i+1:i-1;o=n?"next"===t?(i+1)%s:(i-1+s)%s:o<0||o>=s?i:o,o!==i&&(this.setData({current:o}),this.triggerEvent("change",{current:o,source:e}))},onImageLoad(t){this.triggerEvent("image-load",{index:t.target.dataset.custom})}}}};Swiper=__decorate([wxComponent()],Swiper);export default Swiper;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.json b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.json
new file mode 100644
index 0000000..fd6447e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-swiper-nav":"../swiper-nav/swiper-nav","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxml b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxml
new file mode 100644
index 0000000..0d55e92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxss b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxss
new file mode 100644
index 0000000..edfd003
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-swiper{position:relative}.t-swiper-host{border-radius:var(--td-swiper-radius,var(--td-radius-large,18rpx));overflow:hidden;transform:translateY(0)}.t-swiper__item{display:flex;align-items:center;box-sizing:border-box;padding:var(--td-swiper-item-padding,0)}.t-swiper__image{width:100%;transition:all .3s ease}.t-swiper__image-host{width:100%}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/type.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper/type.d.ts
new file mode 100644
index 0000000..2c4a1ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/type.d.ts
@@ -0,0 +1,71 @@
+import { SwiperNavProps } from '../swiper-nav/index';
+export interface TdSwiperProps {
+ autoplay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ current?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ direction?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ displayMultipleItems?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ easingFunction?: {
+ type: StringConstructor;
+ value?: 'default' | 'linear' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic';
+ };
+ height?: {
+ type: null;
+ value?: string | number;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ interval?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ list?: {
+ type: ArrayConstructor;
+ value?: string[] | SwiperList[];
+ };
+ loop?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ navigation?: {
+ type: null;
+ value?: SwiperNavProps | boolean;
+ };
+ nextMargin?: {
+ type: null;
+ value?: string | number;
+ };
+ paginationPosition?: {
+ type: StringConstructor;
+ value?: 'top-left' | 'top' | 'top-right' | 'bottom-left' | 'bottom' | 'bottom-right';
+ };
+ previousMargin?: {
+ type: null;
+ value?: string | number;
+ };
+ snapToEdge?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export interface SwiperList {
+ value: string;
+ ariaLabel: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/type.js b/miniprogram_npm/tdesign-miniprogram/swiper/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/props.d.ts b/miniprogram_npm/tdesign-miniprogram/switch/props.d.ts
new file mode 100644
index 0000000..489f18a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwitchProps } from './type';
+declare const props: TdSwitchProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/props.js b/miniprogram_npm/tdesign-miniprogram/switch/props.js
new file mode 100644
index 0000000..a99a069
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/props.js
@@ -0,0 +1 @@
+const props={customValue:{type:Array,value:[!0,!1]},disabled:{type:null,value:void 0},icon:{type:Array,value:[]},label:{type:Array,value:[]},loading:{type:Boolean,value:!1},size:{type:String,value:"medium"},value:{type:null,value:null},defaultValue:{type:null,value:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.d.ts b/miniprogram_npm/tdesign-miniprogram/switch/switch.d.ts
new file mode 100644
index 0000000..7db8002
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../common/src/index';
+export default class Switch extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ properties: import("./type").TdSwitchProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ checked: boolean;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(val: any): void;
+ };
+ methods: {
+ handleSwitch(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.js b/miniprogram_npm/tdesign-miniprogram/switch/switch.js
new file mode 100644
index 0000000..e951498
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-switch`;let Switch=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=["t-class","t-class-label","t-class-body","t-class-dot"],this.behaviors=["wx://form-field"],this.properties=props,this.data={prefix:prefix,classPrefix:name,checked:!1},this.controlledProps=[{key:"value",event:"change"}],this.observers={value(e){const[t]=this.data.customValue;this.setData({checked:e===t})}},this.methods={handleSwitch(){const{loading:e,disabled:t,value:s,customValue:o}=this.data,[i,r]=o;e||t||this._trigger("change",{value:s===i?r:i})}}}};Switch=__decorate([wxComponent()],Switch);export default Switch;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.json b/miniprogram_npm/tdesign-miniprogram/switch/switch.json
new file mode 100644
index 0000000..18ba7f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-loading":"../loading/loading"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.wxml b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxml
new file mode 100644
index 0000000..fa792d2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxml
@@ -0,0 +1 @@
+{{checked ? label[0] : label[1]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.wxss b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxss
new file mode 100644
index 0000000..66e43fe
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-switch{display:flex;align-items:center;overflow:hidden}.t-switch__label{position:absolute;top:0;left:0;bottom:0;width:100%;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;font-size:var(--td-switch-label-font-size,28rpx);color:var(--td-switch-label-color,var(--td-bg-color-secondarycontainer-active,var(--td-gray-color-4,#dcdcdc)));overflow:hidden}.t-switch__label--checked{color:var(--td-switch-label-checked-color,var(--td-switch-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-switch__label--disabled{color:var(--td-switch-unchecked-disabled-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-switch__label--checked.t-switch__label--disabled{color:var(--td-switch-checked-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-switch__label--large{font-size:var(--td-switch-label-large-font-size,32rpx)}.t-switch__label--small{font-size:var(--td-switch-label-small-font-size,24rpx)}.t-switch__label:empty{display:none}.t-switch__icon{font-size:var(--td-switch-icon-size,40rpx)}.t-switch__icon--large{font-size:var(--td-switch-icon-large-size,48rpx)}.t-switch__icon--small{font-size:var(--td-switch-icon-small-size,32rpx)}.t-switch__loading{color:var(--td-switch-label-checked-color,var(--td-switch-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-switch__body{vertical-align:middle;width:var(--td-switch-width,90rpx);height:var(--td-switch-height,56rpx);border-radius:var(--td-switch-radius,calc(var(--td-switch-height,56rpx)/ 2));background-color:var(--td-switch-unchecked-color,var(--td-bg-color-secondarycontainer-active,var(--td-gray-color-4,#dcdcdc)));position:relative;transition:all .3s ease;overflow:hidden}.t-switch__body--checked{background-color:var(--td-switch-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-switch__body--disabled{background-color:var(--td-switch-unchecked-disabled-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-switch__body--checked.t-switch__body--disabled{background-color:var(--td-switch-checked-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-switch__body--large{width:var(--td-switch-large-width,104rpx);height:var(--td-switch-large-height,64rpx);border-radius:var(--td-switch-large-radius,calc(var(--td-switch-large-height,64rpx)/ 2))}.t-switch__body--small{width:var(--td-switch-small-width,78rpx);height:var(--td-switch-small-height,48rpx);border-radius:var(--td-switch-small-radius,calc(var(--td-switch-small-height,48rpx)/ 2))}.t-switch__dot{position:absolute;left:var(--td-switch-dot-horizontal-margin,6rpx);top:50%;width:var(--td-switch-dot-size,44rpx);height:var(--td-switch-dot-size,44rpx);border-radius:50%;background-color:var(--td-text-color-anti,var(--td-font-white-1,#fff));transition:all .3s;transform:translateY(-50%);box-shadow:var(--td-switch-dot-shadow,var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12)))}.t-switch__dot--disabled{background-color:var(--td-switch-dot-disabled-color,var(--td-font-white-1,#fff))}.t-switch__dot--large{width:var(--td-switch-dot-large-size,52rpx);height:var(--td-switch-dot-large-size,52rpx)}.t-switch__dot--small{width:var(--td-switch-dot-small-size,36rpx);height:var(--td-switch-dot-small-size,36rpx)}.t-switch__dot--checked{left:calc(var(--td-switch-width,90rpx) - var(--td-switch-dot-size,44rpx) - var(--td-switch-dot-horizontal-margin,6rpx))}.t-switch__dot--large.t-switch__dot--checked{left:calc(var(--td-switch-large-width,104rpx) - var(--td-switch-dot-large-size,52rpx) - var(--td-switch-dot-horizontal-margin,6rpx))}.t-switch__dot--small.t-switch__dot--checked{left:calc(var(--td-switch-small-width,78rpx) - var(--td-switch-dot-small-size,36rpx) - var(--td-switch-dot-horizontal-margin,6rpx))}.t-switch__dot--plain:not(.t-switch__dot--checked){width:var(--td-switch-dot-plain-size,36rpx);height:var(--td-switch-dot-plain-size,36rpx);left:var(--td-switch-dot-plain-horizontal-margin,10rpx)}.t-switch__dot--large.t-switch__dot--plain:not(.t-switch__dot--checked){width:var(--td-switch-dot-plain-large-size,44rpx);height:var(--td-switch-dot-plain-large-size,44rpx)}.t-switch__dot--small.t-switch__dot--plain:not(.t-switch__dot--checked){width:var(--td-switch-dot-plain-small-size,28rpx);height:var(--td-switch-dot-plain-small-size,28rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/type.d.ts b/miniprogram_npm/tdesign-miniprogram/switch/type.d.ts
new file mode 100644
index 0000000..eecf253
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/type.d.ts
@@ -0,0 +1,35 @@
+export interface TdSwitchProps {
+ customValue?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ label?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'small' | 'medium' | 'large';
+ };
+ value?: {
+ type: null;
+ value?: SwitchValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: SwitchValue;
+ };
+}
+export declare type SwitchValue = string | number | boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/type.js b/miniprogram_npm/tdesign-miniprogram/switch/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.d.ts
new file mode 100644
index 0000000..026ee8b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabBarItemProps } from './type';
+declare const props: TdTabBarItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.js b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.js
new file mode 100644
index 0000000..d92b620
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object},icon:{type:null},subTabBar:{type:Array},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.d.ts
new file mode 100644
index 0000000..4efd9f7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.d.ts
@@ -0,0 +1,37 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class TabBarItem extends SuperComponent {
+ externalClasses: string[];
+ parent: any;
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ isSpread: boolean;
+ isChecked: boolean;
+ hasChildren: boolean;
+ currentName: string;
+ split: boolean;
+ iconOnly: boolean;
+ theme: string;
+ crowded: boolean;
+ shape: string;
+ };
+ properties: import("./type").TdTabBarItemProps;
+ observers: {
+ subTabBar(value: Record[]): void;
+ icon(v: any): void;
+ };
+ lifetimes: {
+ attached(): Promise;
+ };
+ methods: {
+ showSpread(): void;
+ toggle(): void;
+ selectChild(event: any): void;
+ checkActive(value: any): void;
+ closeSpread(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.js b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.js
new file mode 100644
index 0000000..30875cb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect,calcIcon}from"../common/utils";const{prefix:prefix}=config,classPrefix=`${prefix}-tab-bar-item`;let TabBarItem=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.parent=null,this.relations={"../tab-bar/tab-bar":{type:"ancestor",linked(t){const{theme:e,split:a,shape:s}=t.data;this.setData({theme:e,split:a,shape:s,currentName:this.properties.value?this.properties.value:t.initName()}),t.updateChildren()}}},this.options={multipleSlots:!0},this.data={prefix:prefix,classPrefix:classPrefix,isSpread:!1,isChecked:!1,hasChildren:!1,currentName:"",split:!0,iconOnly:!1,theme:"",crowded:!1,shape:"normal"},this.properties=props,this.observers={subTabBar(t){this.setData({hasChildren:t.length>0})},icon(t){this.setData({_icon:calcIcon(t)})}},this.lifetimes={attached(){return __awaiter(this,void 0,void 0,(function*(){const t=yield getRect(this,`.${classPrefix}__text`);this.setData({iconOnly:0===t.height})}))}},this.methods={showSpread(){this.setData({isSpread:!0})},toggle(){const{currentName:t,hasChildren:e,isSpread:a}=this.data;e&&this.setData({isSpread:!a}),this.$parent.updateValue(t),this.$parent.changeOtherSpread(t)},selectChild(t){const{value:e}=t.target.dataset;this.$parent.updateValue(e),this.setData({isSpread:!1})},checkActive(t){const{currentName:e,subTabBar:a}=this.data,s=(null==a?void 0:a.some((e=>e.value===t)))||e===t;this.setData({isChecked:s})},closeSpread(){this.setData({isSpread:!1})}}}};TabBarItem=__decorate([wxComponent()],TabBarItem);export default TabBarItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.json b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.json
new file mode 100644
index 0000000..fb7b731
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-badge":"../badge/badge"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxml b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxml
new file mode 100644
index 0000000..6c9715d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxml
@@ -0,0 +1 @@
+{{ child.label }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxss b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxss
new file mode 100644
index 0000000..8f7fe85
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';:host{flex:1}.t-tab-bar-item{flex:1;height:var(--td-tab-bar-height,80rpx);box-sizing:border-box;user-select:none;position:relative;margin:16rpx 0;background-color:var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));padding:0 24rpx}.t-tab-bar-item--text-only{font-size:32rpx}.t-tab-bar-item--split+.t-tab-bar-item--split::before{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:0;bottom:0;left:0;border-left:1px solid var(--td-tab-bar-border-color,var(--td-border-color,var(--td-gray-color-3,#e7e7e7)));transform:scaleX(.5);top:16rpx;bottom:16rpx}.t-tab-bar-item--crowded{padding:0 16rpx}.t-tab-bar-item--round{border-radius:99px}.t-tab-bar-item__content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16rpx;color:var(--td-tab-bar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tab-bar-item__content--checked{color:var(--td-tab-bar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:600}.t-tab-bar-item__content--tag{border-radius:99px}.t-tab-bar-item__content--tag.t-tab-bar-item__content--checked{background-color:var(--td-tab-bar-active-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tab-bar-item__icon{display:contents}.t-tab-bar-item__icon:empty{display:none}.t-tab-bar-item__text{display:flex;align-items:center}.t-tab-bar-item__text--small{font-size:20rpx;line-height:32rpx}.t-tab-bar-item__icon-menu{margin-right:8rpx}.t-tab-bar-item__spread{position:absolute;top:0;left:7%;width:86%;background-color:var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));transform:translate3d(0,calc(-100% - 32rpx),0);z-index:1;border-radius:12rpx;color:var(--td-tab-bar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));box-shadow:var(--td-tab-bar-spread-shadow,var(--td-shadow-3,0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08)))}.t-tab-bar-item__spread::before{display:block;content:'';position:absolute;bottom:0;left:50%;width:0;height:0;border:16rpx solid transparent;border-top:16rpx solid var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));transform:translate3d(-50%,32rpx,0)}.t-tab-bar-item__spread-item{width:100%;height:96rpx;display:flex;align-items:center;justify-content:flex-start;position:relative;flex-direction:column}.t-tab-bar-item__spread-item--active{background-color:var(--td-tab-bar-hover-bg-color,rgba(0,0,0,.05))}.t-tab-bar-item__spread-item-split{box-sizing:border-box;content:' ';pointer-events:none;background-color:var(--td-tab-bar-spread-border-color,var(--td-border-color,var(--td-gray-color-3,#e7e7e7)));width:80%;height:1px;transform:translateY(.5)}.t-tab-bar-item__spread-item-text{padding-top:24rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.d.ts
new file mode 100644
index 0000000..6fbbd6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.d.ts
@@ -0,0 +1,23 @@
+import { BadgeProps } from '../badge/index';
+export interface TdTabBarItemProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ subTabBar?: {
+ type: ArrayConstructor;
+ value?: SubTabBarItem[];
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+}
+export interface SubTabBarItem {
+ value: string;
+ label: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.js b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.d.ts
new file mode 100644
index 0000000..338c35e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabBarProps } from './type';
+declare const props: TdTabBarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/props.js b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.js
new file mode 100644
index 0000000..f8f7f9e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.js
@@ -0,0 +1 @@
+const props={bordered:{type:Boolean,value:!0},externalClasses:{type:Array},fixed:{type:Boolean,value:!0},safeAreaInsetBottom:{type:Boolean,value:!0},shape:{type:String,value:"normal"},split:{type:Boolean,value:!0},theme:{type:String,value:"normal"},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.d.ts
new file mode 100644
index 0000000..13e2da6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Tabbar extends SuperComponent {
+ relations: RelationsOptions;
+ externalClasses: string[];
+ backupValue: number;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ properties: import("./type").TdTabBarProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ showChildren(): void;
+ updateChildren(): void;
+ updateValue(value: any): void;
+ changeOtherSpread(value: any): void;
+ initName(): any;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.js b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.js
new file mode 100644
index 0000000..8403dac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,classPrefix=`${prefix}-tab-bar`;let Tabbar=class extends SuperComponent{constructor(){super(...arguments),this.relations={"../tab-bar-item/tab-bar-item":{type:"descendant"}},this.externalClasses=[`${prefix}-class`],this.backupValue=-1,this.data={prefix:prefix,classPrefix:classPrefix},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={value(){this.updateChildren()}},this.lifetimes={ready(){this.showChildren()}},this.methods={showChildren(){const{value:e}=this.data;this.$children.forEach((r=>{r.setData({crowded:this.$children.length>3}),r.properties.value===e&&r.showSpread()}))},updateChildren(){const{value:e}=this.data;this.$children.forEach((r=>{r.checkActive(e)}))},updateValue(e){this._trigger("change",{value:e})},changeOtherSpread(e){this.$children.forEach((r=>{r.properties.value!==e&&r.closeSpread()}))},initName(){return this.backupValue+=1}}}};Tabbar=__decorate([wxComponent()],Tabbar);export default Tabbar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.json b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxml b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxml
new file mode 100644
index 0000000..0f9e9c0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxss b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxss
new file mode 100644
index 0000000..5baa929
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tab-bar{display:flex;flex-wrap:nowrap;align-items:center;position:relative;font-size:16px;background-color:var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));box-sizing:border-box}.t-tab-bar--normal.t-tab-bar--border::before{z-index:1;position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;top:0;border-top:1px solid var(--td-tab-bar-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:0 0}.t-tab-bar--fixed{position:fixed;left:0;bottom:0;right:0}.t-tab-bar--normal.t-tab-bar--safe{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.t-tab-bar--round{margin-left:32rpx;margin-right:32rpx;border-radius:999px;box-shadow:var(--td-tab-bar-round-shadow,var(--td-shadow-3,0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08)))}.t-tab-bar--fixed.t-tab-bar--round.t-tab-bar--safe{bottom:constant(safe-area-inset-bottom);bottom:env(safe-area-inset-bottom)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.d.ts
new file mode 100644
index 0000000..32ec1d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.d.ts
@@ -0,0 +1,38 @@
+export interface TdTabBarProps {
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class'];
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ safeAreaInsetBottom?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'normal' | 'round';
+ };
+ split?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'normal' | 'tag';
+ };
+ value?: {
+ type: null;
+ value?: string | number | Array;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number | Array;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/type.js b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.d.ts
new file mode 100644
index 0000000..9329be0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabPanelProps } from './type';
+declare const props: TdTabPanelProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/props.js b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.js
new file mode 100644
index 0000000..a71e197
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object},disabled:{type:Boolean,value:!1},icon:{type:null},label:{type:String,value:""},lazy:{type:Boolean,value:!1},panel:{type:String},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.d.ts
new file mode 100644
index 0000000..c1a18de
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.d.ts
@@ -0,0 +1,25 @@
+///
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class TabPanel extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdTabPanelProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ active: boolean;
+ hide: boolean;
+ id: string;
+ hasActivated: boolean;
+ };
+ setId(id: any): void;
+ observers: {
+ 'label, badgeProps, disabled, icon, panel, value, lazy'(): void;
+ };
+ getComputedName(): string;
+ update(): void;
+ render(active: Boolean, parent: WechatMiniprogram.Component.TrivialInstance): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.js b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.js
new file mode 100644
index 0000000..048be2b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-tab-panel`;let TabPanel=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.relations={"../tabs/tabs":{type:"ancestor"}},this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,active:!1,hide:!0,id:"",hasActivated:!1},this.observers={"label, badgeProps, disabled, icon, panel, value, lazy"(){this.update()}}}setId(e){this.setData({id:e})}getComputedName(){return null!=this.properties.value?`${this.properties.value}`:`${this.index}`}update(){var e;null===(e=this.$parent)||void 0===e||e.updateTabs()}render(e,t){this.initialized=this.initialized||e,e&&!this.data.hasActivated&&this.setData({hasActivated:!0}),this.setData({active:e,hide:!t.data.animation&&!e})}};TabPanel=__decorate([wxComponent()],TabPanel);export default TabPanel;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.json b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxml b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxml
new file mode 100644
index 0000000..d8acb0b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxml
@@ -0,0 +1 @@
+{{panel}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxss b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxss
new file mode 100644
index 0000000..01be28b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tab-panel{flex-shrink:0;width:100%;height:100%;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.t-tab-panel--active{height:auto}.t-tab-panel--inactive{height:0;overflow:visible}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.d.ts
new file mode 100644
index 0000000..8c84fec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.d.ts
@@ -0,0 +1,31 @@
+import { TabValue } from '../tabs/index';
+export interface TdTabPanelProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ panel?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: TabValue;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/type.js b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/index.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/index.d.ts
new file mode 100644
index 0000000..2f91d15
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/index.d.ts
@@ -0,0 +1,3 @@
+export * from './tabs';
+export * from './type';
+export * from './props';
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/index.js b/miniprogram_npm/tdesign-miniprogram/tabs/index.js
new file mode 100644
index 0000000..6f0131f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/index.js
@@ -0,0 +1 @@
+export*from"./tabs";export*from"./type";export*from"./props";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/props.d.ts
new file mode 100644
index 0000000..215fa49
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabsProps } from './type';
+declare const props: TdTabsProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/props.js b/miniprogram_npm/tdesign-miniprogram/tabs/props.js
new file mode 100644
index 0000000..f624354
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/props.js
@@ -0,0 +1 @@
+const props={animation:{type:Object},bottomLineMode:{type:String,value:"fixed"},externalClasses:{type:Array},showBottomLine:{type:Boolean,value:!0},spaceEvenly:{type:Boolean,value:!0},split:{type:Boolean,value:!0},sticky:{type:Boolean,value:!1},stickyProps:{type:Object},swipeable:{type:Boolean,value:!0},theme:{type:String,value:"line"},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.d.ts
new file mode 100644
index 0000000..254d030
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.d.ts
@@ -0,0 +1,59 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+import { TdTabsProps } from './type';
+export interface TabsProps extends TdTabsProps {
+}
+export default class Tabs extends SuperComponent {
+ options: {
+ pureDataPattern: RegExp;
+ };
+ behaviors: string[];
+ externalClasses: string[];
+ relations: RelationsOptions;
+ properties: TdTabsProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(name: any): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ tabs: any[];
+ currentLabels: any[];
+ currentIndex: number;
+ trackOption: {
+ lineWidth: number;
+ distance: number;
+ isInit: boolean;
+ };
+ offset: number;
+ scrollLeft: number;
+ tabID: string;
+ placement: string;
+ };
+ lifetimes: {
+ created(): void;
+ attached(): void;
+ };
+ initChildId(): void;
+ methods: {
+ onScroll(e: any): void;
+ updateTabs(cb: any): void;
+ setCurrentIndexByName(name: any): void;
+ setCurrentIndex(index: number): void;
+ getCurrentName(): any;
+ calcScrollOffset(containerWidth: number, targetLeft: number, targetWidth: number, offset: number): number;
+ getTabHeight(): Promise;
+ getTrackSize(): Promise;
+ setTrack(): Promise;
+ onTabTap(event: any): void;
+ onTouchStart(event: any): void;
+ onTouchMove(event: any): void;
+ onTouchEnd(): void;
+ onTouchScroll(event: WechatMiniprogram.CustomEvent): void;
+ changeIndex(index: any): void;
+ getAvailableTabIndex(deltaX: number): any;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.js b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.js
new file mode 100644
index 0000000..eb0392c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import touch from"../mixins/touch";import{getRect,uniqueFactory}from"../common/utils";import{getObserver}from"../common/wechat";const{prefix:prefix}=config,name=`${prefix}-tabs`,getUniqueID=uniqueFactory("tabs");let Tabs=class extends SuperComponent{constructor(){super(...arguments),this.options={pureDataPattern:/^currentLabels$/},this.behaviors=[touch],this.externalClasses=[`${prefix}-class`,`${prefix}-class-item`,`${prefix}-class-active`,`${prefix}-class-track`,`${prefix}-class-content`],this.relations={"../tab-panel/tab-panel":{type:"descendant",linked(t){this.children.push(t),this.initChildId(),t.index=this.children.length-1,this.updateTabs()},unlinked(t){this.children=this.children.filter((e=>e.index!==t.index)),this.updateTabs((()=>this.setTrack())),this.initChildId()}}},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={value(t){t!==this.getCurrentName()&&this.setCurrentIndexByName(t)}},this.data={prefix:prefix,classPrefix:name,tabs:[],currentLabels:[],currentIndex:-1,trackOption:{lineWidth:0,distance:0,isInit:!0},offset:0,scrollLeft:0,tabID:"",placement:"top"},this.lifetimes={created(){this.children=this.children||[]},attached(){wx.nextTick((()=>{this.setTrack()})),getRect(this,`.${name}`).then((t=>{this.containerWidth=t.width})),this.setData({tabID:getUniqueID()})}},this.methods={onScroll(t){const{scrollLeft:e}=t.detail;this.setData({scrollLeft:e})},updateTabs(t){const{children:e}=this,i=e.map((t=>t.data));i.forEach((t=>{"string"==typeof t.icon&&(t.icon={name:t.icon})})),this.setData({tabs:i},t),this.setCurrentIndexByName(this.properties.value)},setCurrentIndexByName(t){const{children:e}=this,i=e.findIndex((e=>e.getComputedName()===`${t}`));i>-1&&this.setCurrentIndex(i)},setCurrentIndex(t){if(t<=-1||t>=this.children.length)return;const e=[];this.children.forEach(((i,s)=>{const r=t===s;r===i.data.active&&i.initialized||i.render(r,this),e.push(i.data.label)}));const{currentIndex:i,currentLabels:s}=this.data;i===t&&s.join("")===e.join("")||this.setData({currentIndex:t,currentLabels:e},(()=>{this.setTrack()}))},getCurrentName(){if(this.children){const t=this.children[this.data.currentIndex];if(t)return t.getComputedName()}},calcScrollOffset:(t,e,i,s)=>s+e-.5*t+i/2,getTabHeight(){return getRect(this,`.${name}`)},getTrackSize(){const{bottomLineMode:t}=this.properties,e={fixed:`.${prefix}-tabs__track`,auto:`.${prefix}-tabs__item--active .${prefix}-tabs__item-inner`,full:`.${prefix}-tabs__item--active`};return new Promise(((i,s)=>{this.trackWidth?i(this.trackWidth):getRect(this,e[t]||e.fixed).then((t=>{t&&i(t.width)})).catch(s)}))},setTrack(){return __awaiter(this,void 0,void 0,(function*(){const{children:t}=this;if(!t)return;const{currentIndex:e}=this.data;if(!(e<=-1))try{const t=yield getRect(this,`.${prefix}-tabs__item`,!0),i=t[e];if(!i)return;let s=0,r=0,n=0;if(t.forEach((t=>{sthis.setTrack())));const a=yield this.getTrackSize();"line"===this.data.theme&&(r+=(i.width-a)/2);const h=void 0===this.previousIndex;(h||this.previousIndex!==e)&&(this.previousIndex=e,this.setData({trackOption:{lineWidth:a,distance:r,isInit:h}}))}catch(t){this.triggerEvent("error",t)}}))},onTabTap(t){const{index:e}=t.currentTarget.dataset;this.changeIndex(e)},onTouchStart(t){this.properties.swipeable&&this.touchStart(t)},onTouchMove(t){this.properties.swipeable&&this.touchMove(t)},onTouchEnd(){if(!this.properties.swipeable)return;const{direction:t,deltaX:e,offsetX:i}=this;if("horizontal"===t&&i>=50){const t=this.getAvailableTabIndex(e);-1!==t&&this.changeIndex(t)}},onTouchScroll(t){this._trigger("scroll",t.detail)},changeIndex(t){const e=this.data.tabs[t],{value:i,label:s}=e;(null==e?void 0:e.disabled)||t===this.data.currentIndex||this._trigger("change",{value:i,label:s}),this._trigger("click",{value:i,label:s})},getAvailableTabIndex(t){const e=t>0?-1:1,{currentIndex:i,tabs:s}=this.data,r=s.length;for(let t=e;i+e>=0&&i+e=0&&e{t.setId(`${this.data.tabID}_panel_${e}`)}))}};Tabs=__decorate([wxComponent()],Tabs);export default Tabs;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.json b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.json
new file mode 100644
index 0000000..376444d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-sticky":"../sticky/sticky","t-badge":"../badge/badge","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxml b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxml
new file mode 100644
index 0000000..54fb414
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxml
@@ -0,0 +1 @@
+{{item.label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxs b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxs
new file mode 100644
index 0000000..7a173a1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxs
@@ -0,0 +1,30 @@
+var utils = require('../common/utils.wxs');
+
+function animate(options) {
+ if (options.duration) {
+ return utils._style({
+ 'transition-duration': options.duration + 's',
+ transform: 'translate3d( ' + -100 * options.currentIndex + '%,0, 0)',
+ });
+ }
+ return '';
+}
+
+function trackStyle(options) {
+ if (options.distance || options.lineWidth) {
+ return utils._style({
+ '-webkit-transform': 'translateX(' + options.distance + 'px)',
+ transform: 'translateX(' + options.distance + 'px)',
+ 'transition-duration': options.isInit ? '0' : '0.3s',
+ width: options.lineWidth + 'px',
+ opacity: 1,
+ });
+ }
+
+ return '';
+}
+
+module.exports = {
+ animate: animate,
+ trackStyle: trackStyle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxss b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxss
new file mode 100644
index 0000000..d71b984
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tabs{position:relative;font-size:var(--td-tab-font-size,28rpx);background:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));flex-wrap:wrap}.t-tabs__wrapper{display:flex;overflow:hidden;background:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tabs__wrapper--card{background:var(--td-tab-item-tag-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));--td-tab-border-color:transparent}.t-tabs__item{position:relative;display:flex;flex:none;align-items:center;justify-content:center;font-weight:400;color:var(--td-tab-item-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));padding:0 var(--td-spacer-2,32rpx);box-sizing:border-box;white-space:nowrap;overflow:hidden;height:var(--td-tab-item-height,96rpx)}.t-tabs__item--active{font-weight:600;color:var(--td-tab-item-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tabs__item--disabled{color:var(--td-tab-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-tabs__item--evenly{flex:1 0 auto}.t-tabs__item-inner{display:flex;align-items:center;justify-content:center}.t-tabs__item-inner--tag{width:100%;text-align:center;padding:0 var(--td-spacer-2,32rpx);line-height:var(--td-tab-item-tag-height,64rpx);border-radius:calc(var(--td-tab-item-tag-height,64rpx)/ 2);background-color:var(--td-tab-item-tag-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tabs__item-inner--active.t-tabs__item-inner--tag{background-color:var(--td-tab-item-tag-active-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tabs__item--tag:not(.t-tabs__item--evenly){padding:0 calc(var(--td-spacer,16rpx)/ 2)}.t-tabs__item--tag:not(.t-tabs__item--evenly):first-child{margin-left:var(--td-spacer,16rpx)}.t-tabs__item--tag:not(.t-tabs__item--evenly):last-child{padding-right:var(--td-spacer-1,24rpx)}.t-tabs__item--tag{padding:0 var(--td-spacer,16rpx)}.t-tabs__item--card.t-tabs__item--active{background-color:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border-radius:var(--td-radius-large,18rpx) var(--td-radius-large,18rpx) 0 0}.t-tabs__item--card.t-tabs__item--active:first-child{border-top-left-radius:0}.t-tabs__item--card.t-tabs__item--active:last-child{border-top-right-radius:0}.t-tabs__item--card.t-tabs__item--pre{border-bottom-right-radius:var(--td-radius-large,18rpx)}.t-tabs__item-prefix,.t-tabs__item-suffix{position:absolute;bottom:0;width:18rpx;height:18rpx;background-color:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tabs__item-prefix::after,.t-tabs__item-suffix::after{content:'';display:block;width:100%;height:100%;background-color:var(--td-tab-item-tag-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tabs__item-prefix{right:0}.t-tabs__item-prefix::after{border-bottom-right-radius:var(--td-radius-large,18rpx)}.t-tabs__item-suffix{left:0}.t-tabs__item-suffix::after{border-bottom-left-radius:var(--td-radius-large,18rpx)}.t-tabs__badge--active{--td-badge-content-text-color:var(--td-tab-item-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)))}.t-tabs__badge--disabled{--td-badge-content-text-color:var(--td-tab-item-disabled-color, var(--td-text-color-disabled, var(--td-font-gray-4, rgba(0, 0, 0, 0.26))))}.t-tabs__icon{font-size:var(--td-tab-icon-size,36rpx);margin-right:calc(var(--td-spacer,16rpx)/ 4)}.t-tabs__content{overflow:hidden}.t-tabs__nav{position:relative;user-select:none;display:flex;flex-wrap:nowrap;align-items:center}.t-tabs__nav.t-tabs__nav--evenly{width:100%}.t-tabs__track{position:absolute;font-weight:600;z-index:1;opacity:0;background-color:var(--td-tab-track-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));left:0;bottom:1rpx;width:var(--td-tab-track-width,32rpx);height:var(--td-tab-track-thickness,6rpx);border-radius:var(--td-tab-track-radius,8rpx)}.t-tabs__scroll{position:relative;height:var(--td-tab-item-height,96rpx)}.t-tabs__scroll--split{position:relative}.t-tabs__scroll--split::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-tab-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)))}.t-tabs__scroll--split::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-tabs__scroll::-webkit-scrollbar{display:none}.t-tabs__content{width:100%}.t-tabs__content-inner{display:block}.t-tabs__content--animated .t-tabs__content-inner{position:relative;width:100%;height:100%;display:flex;will-change:left;transition-property:transform}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/type.d.ts
new file mode 100644
index 0000000..71699bd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/type.d.ts
@@ -0,0 +1,55 @@
+import { StickyProps } from '../sticky/index';
+export interface TdTabsProps {
+ animation?: {
+ type: ObjectConstructor;
+ value?: TabAnimation;
+ };
+ bottomLineMode?: {
+ type: StringConstructor;
+ value?: 'fixed' | 'auto' | 'full';
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-item', 't-class-active', 't-class-track'];
+ };
+ showBottomLine?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ spaceEvenly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ split?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ sticky?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ stickyProps?: {
+ type: ObjectConstructor;
+ value?: StickyProps;
+ };
+ swipeable?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'line' | 'tag' | 'card';
+ };
+ value?: {
+ type: null;
+ value?: TabValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: TabValue;
+ };
+}
+export declare type TabAnimation = {
+ duration: number;
+} & Record;
+export declare type TabValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/type.js b/miniprogram_npm/tdesign-miniprogram/tabs/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tag/props.d.ts
new file mode 100644
index 0000000..8074655
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTagProps } from './type';
+declare const props: TdTagProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/props.js b/miniprogram_npm/tdesign-miniprogram/tag/props.js
new file mode 100644
index 0000000..84a9521
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/props.js
@@ -0,0 +1 @@
+const props={closable:{type:null,value:!1},disabled:{type:Boolean,value:!1},externalClasses:{type:Array},icon:{type:null},maxWidth:{type:null},shape:{type:String,value:"square"},size:{type:String,value:"medium"},theme:{type:String,value:"default"},variant:{type:String,value:"dark"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.d.ts b/miniprogram_npm/tdesign-miniprogram/tag/tag.d.ts
new file mode 100644
index 0000000..2c86ef0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.d.ts
@@ -0,0 +1,28 @@
+///
+import { SuperComponent } from '../common/src/index';
+export default class Tag extends SuperComponent {
+ data: {
+ prefix: string;
+ classPrefix: string;
+ className: string;
+ tagStyle: string;
+ };
+ properties: import("./type").TdTagProps;
+ externalClasses: string[];
+ options: WechatMiniprogram.Component.ComponentOptions;
+ lifetimes: {
+ attached(): void;
+ };
+ observers: {
+ 'size, shape, theme, variant, closable, disabled'(): void;
+ maxWidth(): void;
+ icon(v: any): void;
+ closable(v: any): void;
+ };
+ methods: {
+ setClass(): void;
+ setTagStyle(): string;
+ handleClick(e: WechatMiniprogram.BaseEvent): void;
+ handleClose(e: WechatMiniprogram.BaseEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.js b/miniprogram_npm/tdesign-miniprogram/tag/tag.js
new file mode 100644
index 0000000..086df92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{classNames,calcIcon}from"../common/utils";import{isNumber}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-tag`;let Tag=class extends SuperComponent{constructor(){super(...arguments),this.data={prefix:prefix,classPrefix:name,className:"",tagStyle:""},this.properties=props,this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.lifetimes={attached(){this.setClass(),this.setTagStyle()}},this.observers={"size, shape, theme, variant, closable, disabled"(){this.setClass()},maxWidth(){this.setTagStyle()},icon(s){this.setData({_icon:calcIcon(s)})},closable(s){this.setData({_closable:calcIcon(s,"close")})}},this.methods={setClass(){const{prefix:s,classPrefix:t}=this.data,{size:e,shape:a,theme:i,variant:o,closable:l,disabled:r}=this.properties,c=classNames([t,`${t}--${i||"default"}`,`${t}--${o}`,l?`${t}--closable ${s}-is-closable`:"",r?`${t}--disabled ${s}-is-disabled`:"",`${t}--${e}`,`${t}--${a}`]);this.setData({className:c})},setTagStyle(){const{maxWidth:s}=this.properties;if(!s)return"";const t=isNumber(s)?`${s}px`:s;this.setData({tagStyle:`max-width:${t};`})},handleClick(s){this.data.disabled||this.triggerEvent("click",s)},handleClose(s){this.data.disabled||this.triggerEvent("close",s)}}}};Tag=__decorate([wxComponent()],Tag);export default Tag;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.json b/miniprogram_npm/tdesign-miniprogram/tag/tag.json
new file mode 100644
index 0000000..235b52f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":".././icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.wxml b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxml
new file mode 100644
index 0000000..c3eb0a7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.wxss b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxss
new file mode 100644
index 0000000..18f4ce1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tag{display:inline-flex;align-items:center;border:2rpx solid transparent;box-sizing:border-box;border-radius:var(--td-tag-square-border-radius,8rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx));user-select:none;vertical-align:middle}.t-tag__text{word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-tag__icon,.t-tag__icon-close{display:flex;align-items:center}.t-tag__icon-close{color:var(--td-tag-close-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-tag__icon:not(:empty)+.t-tag__text:not(:empty),.t-tag__text:not(:empty)+.t-tag__icon-close:not(:empty){margin-left:8rpx}.t-tag.t-tag--small{height:var(--td-tag-small-height,40rpx);line-height:var(--td-tag-small-height,40rpx);padding:0 var(--td-tag-small-padding,11rpx);font-size:var(--td-tag-small-font-size,var(--td-font-size,20rpx))}.t-tag.t-tag--small .t-icon,.t-tag.t-tag--small .t-icon-close{font-size:var(--td-tag-small-icon-size,24rpx)}.t-tag.t-tag--small .t-tag__icon:not(:empty)+.t-tag__text:not(:empty),.t-tag.t-tag--small .t-tag__text:not(:empty)+.t-tag__icon-close:not(:empty){margin-left:4rpx}.t-tag.t-tag--medium{height:var(--td-tag-medium-height,48rpx);line-height:var(--td-tag-medium-height,48rpx);padding:0 var(--td-tag-medium-padding,15rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx))}.t-tag.t-tag--medium .t-icon,.t-tag.t-tag--medium .t-icon-close{font-size:var(--td-tag-medium-icon-size,28rpx)}.t-tag.t-tag--large{height:var(--td-tag-large-height,56rpx);line-height:var(--td-tag-large-height,56rpx);padding:0 var(--td-tag-large-padding,15rpx);font-size:var(--td-tag-large-font-size,var(--td-font-size-base,28rpx))}.t-tag.t-tag--large .t-icon,.t-tag.t-tag--large .t-icon-close{font-size:var(--td-tag-large-icon-size,32rpx)}.t-tag.t-tag--extra-large{height:var(--td-tag-extra-large-height,80rpx);line-height:var(--td-tag-extra-large-height,80rpx);padding:0 var(--td-tag-extra-large-padding,31rpx);font-size:var(--td-tag-extra-large-font-size,var(--td-font-size-base,28rpx))}.t-tag.t-tag--extra-large .t-icon,.t-tag.t-tag--extra-large .t-icon-close{font-size:var(--td-tag-extra-large-icon-size,32rpx)}.t-tag.t-tag--square{border-radius:var(--td-tag-square-border-radius,8rpx)}.t-tag.t-tag--round{border-radius:var(--td-tag-round-border-radius,999px)}.t-tag.t-tag--mark{border-radius:0;border-top-right-radius:var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px));border-bottom-right-radius:var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px))}.t-tag--dark.t-tag--default{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-tag--dark.t-tag--primary{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tag--dark.t-tag--success{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-tag--dark.t-tag--warning{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-tag--dark.t-tag--danger{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-tag--dark.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--primary{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--success{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--warning{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--danger{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--light.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light-outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light-outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light-outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light-outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-tag.t-tag--closable.t-tag--disabled{cursor:not-allowed;color:var(--td-tag-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-tag-disabled-background-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)));border-color:var(--td-tag-disabled-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tag/type.d.ts
new file mode 100644
index 0000000..bd1147d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/type.d.ts
@@ -0,0 +1,38 @@
+export interface TdTagProps {
+ closable?: {
+ type: null;
+ value?: boolean | object;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class'];
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ maxWidth?: {
+ type: null;
+ value?: string | number;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'square' | 'round' | 'mark';
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'small' | 'medium' | 'large' | 'extra-large';
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'primary' | 'warning' | 'danger' | 'success';
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'dark' | 'light' | 'outline' | 'light-outline';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/type.js b/miniprogram_npm/tdesign-miniprogram/tag/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/props.d.ts b/miniprogram_npm/tdesign-miniprogram/textarea/props.d.ts
new file mode 100644
index 0000000..83213f6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTextareaProps } from './type';
+declare const props: TdTextareaProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/props.js b/miniprogram_npm/tdesign-miniprogram/textarea/props.js
new file mode 100644
index 0000000..6768842
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/props.js
@@ -0,0 +1 @@
+const props={adjustPosition:{type:Boolean,value:!0},allowInputOverMax:{type:Boolean,value:!1},autofocus:{type:Boolean,value:!1},autosize:{type:null,value:!1},bordered:{type:Boolean,value:!1},confirmHold:{type:Boolean,value:!1},confirmType:{type:String,value:"return"},cursor:{type:Number,value:-1},cursorSpacing:{type:Number,value:0},disableDefaultPadding:{type:Boolean,value:!1},disabled:{type:null,value:void 0},fixed:{type:Boolean,value:!1},focus:{type:Boolean,value:!1},holdKeyboard:{type:Boolean,value:!1},indicator:{type:Boolean,value:!1},label:{type:String},maxcharacter:{type:Number},maxlength:{type:Number,value:-1},placeholder:{type:String,value:void 0},placeholderClass:{type:String,value:"textarea-placeholder"},placeholderStyle:{type:String,value:""},readonly:{type:null,value:void 0},selectionEnd:{type:Number,value:-1},selectionStart:{type:Number,value:-1},showConfirmBar:{type:Boolean,value:!0},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.d.ts b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.d.ts
new file mode 100644
index 0000000..a3d8ec2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.d.ts
@@ -0,0 +1,34 @@
+import { SuperComponent } from '../common/src/index';
+export default class Textarea extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ behaviors: string[];
+ externalClasses: string[];
+ properties: import("./type").TdTextareaProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ count: number;
+ };
+ observers: {
+ value(val: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ updateCount(val: any): void;
+ updateValue(val: any): void;
+ calculateValue(value: any, maxcharacter: any, maxlength: any): {
+ value: any;
+ count: number;
+ };
+ onInput(event: any): void;
+ onFocus(event: any): void;
+ onBlur(event: any): void;
+ onConfirm(event: any): void;
+ onLineChange(event: any): void;
+ onKeyboardHeightChange(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.js b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.js
new file mode 100644
index 0000000..094c0db
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getCharacterLength}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-textarea`;let Textarea=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.behaviors=["wx://form-field"],this.externalClasses=[`${prefix}-class`,`${prefix}-class-textarea`,`${prefix}-class-label`,`${prefix}-class-indicator`],this.properties=props,this.data={prefix:prefix,classPrefix:name,count:0},this.observers={value(e){this.updateCount(null!=e?e:this.properties.defaultValue)}},this.lifetimes={ready(){var e;const{value:t,defaultValue:a}=this.properties;this.updateValue(null!==(e=null!=t?t:a)&&void 0!==e?e:"")}},this.methods={updateCount(e){const{maxcharacter:t,maxlength:a}=this.properties,{count:r}=this.calculateValue(e,t,a);this.setData({count:r})},updateValue(e){const{maxcharacter:t,maxlength:a}=this.properties,{value:r,count:s}=this.calculateValue(e,t,a);this.setData({value:r,count:s})},calculateValue(e,t,a){const{allowInputOverMax:r}=this.properties;if(t>0&&!Number.isNaN(t)){const{length:a,characters:s}=getCharacterLength("maxcharacter",e,r?1/0:t);return{value:s,count:a}}if(a>0&&!Number.isNaN(a)){const{length:t,characters:s}=getCharacterLength("maxlength",e,r?1/0:a);return{value:s,count:t}}return{value:e,count:e?String(e).length:0}},onInput(e){const{value:t,cursor:a}=e.detail;this.updateValue(t),this.triggerEvent("change",{value:this.data.value,cursor:a})},onFocus(e){this.triggerEvent("focus",Object.assign({},e.detail))},onBlur(e){this.triggerEvent("blur",Object.assign({},e.detail))},onConfirm(e){this.triggerEvent("enter",Object.assign({},e.detail))},onLineChange(e){this.triggerEvent("line-change",Object.assign({},e.detail))},onKeyboardHeightChange(e){this.triggerEvent("keyboardheightchange",e.detail)}}}};Textarea=__decorate([wxComponent()],Textarea);export default Textarea;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.json b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxml b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxml
new file mode 100644
index 0000000..7074d58
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxml
@@ -0,0 +1 @@
+{{ label }}{{count}} / {{maxcharacter || maxlength}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxs b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxs
new file mode 100644
index 0000000..eae6814
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxs
@@ -0,0 +1,15 @@
+var utils = require('../common/utils.wxs');
+
+function textareaStyle(autosize) {
+ if (autosize && autosize.constructor === 'Object') {
+ return utils._style({
+ 'min-height': utils.addUnit(autosize.minHeight),
+ 'max-height': utils.addUnit(autosize.maxHeight),
+ });
+ }
+ return '';
+}
+
+module.exports = {
+ textareaStyle: textareaStyle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxss b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxss
new file mode 100644
index 0000000..2192543
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-textarea{display:flex;flex-direction:column;box-sizing:border-box;padding:32rpx 32rpx;background-color:var(--td-textarea-background-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-textarea__label:not(:empty){font-size:var(--td-font-size-base,28rpx);color:var(--td-textarea-label-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));flex-shrink:0;line-height:44rpx;padding-bottom:var(--td-spacer,16rpx);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.t-textarea__wrapper{display:flex;flex-direction:column;width:100%;flex:1 1 auto;overflow:hidden}.t-textarea__wrapper-inner{flex:1 1 auto;box-sizing:border-box;width:inherit;min-width:0;min-height:20px;margin:0;padding:0;text-align:left;background-color:transparent;border:0;resize:none;font-size:var(--td-font-size-m,32rpx);color:var(--td-textarea-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:48rpx}.t-textarea__placeholder{color:var(--td-textarea-placeholder-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-font-size-m,32rpx)}.t-textarea__indicator:not(:empty){flex-shrink:0;color:var(--td-textarea-indicator-text-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-spacer-1,24rpx);text-align:right;line-height:40rpx;padding-top:var(--td-spacer,16rpx)}.t-textarea--border{border-radius:var(--td-textarea-border-radius,var(--td-radius-default,12rpx));border:2rpx solid var(--td-textarea-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-textarea .t-is-disabled{color:var(--td-textarea-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/type.d.ts b/miniprogram_npm/tdesign-miniprogram/textarea/type.d.ts
new file mode 100644
index 0000000..b113606
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/type.d.ts
@@ -0,0 +1,114 @@
+export interface TdTextareaProps {
+ adjustPosition?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ allowInputOverMax?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ autofocus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ autosize?: {
+ type: null;
+ value?: boolean | {
+ maxHeight?: number;
+ minHeight?: number;
+ };
+ };
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmHold?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmType?: {
+ type: StringConstructor;
+ value?: 'return' | 'send' | 'search' | 'next' | 'go' | 'done';
+ };
+ cursor?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ cursorSpacing?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disableDefaultPadding?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ focus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ holdKeyboard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ indicator?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxcharacter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxlength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderStyle?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ selectionEnd?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionStart?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ showConfirmBar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: TextareaValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: TextareaValue;
+ };
+}
+export declare type TextareaValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/type.js b/miniprogram_npm/tdesign-miniprogram/textarea/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/index.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/index.d.ts
new file mode 100644
index 0000000..681cfef
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/index.d.ts
@@ -0,0 +1,22 @@
+///
+///
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+declare type ToastType = 'loading' | 'success' | 'warning' | 'error';
+declare type ToastPositionType = 'top' | 'middle' | 'bottom';
+declare type ToastDirectionType = 'row' | 'column';
+export declare type ToastOptionsType = {
+ context?: Context;
+ selector?: string;
+ icon?: string;
+ message?: string;
+ duration?: number;
+ theme?: ToastType;
+ placement?: ToastPositionType;
+ preventScrollThrough?: boolean;
+ direction?: ToastDirectionType;
+ close?: () => void;
+};
+declare function Toast(options: ToastOptionsType): void;
+declare function showToast(options?: ToastOptionsType): void;
+declare function hideToast(options?: ToastOptionsType): void;
+export { Toast as default, showToast, hideToast };
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/index.js b/miniprogram_npm/tdesign-miniprogram/toast/index.js
new file mode 100644
index 0000000..15c4d25
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{getInstance}from"../common/utils";function Toast(t){var o;const{context:s,selector:e="#t-toast"}=t,n=__rest(t,["context","selector"]),a=getInstance(s,e);a&&a.show(Object.assign(Object.assign({},n),{duration:null!==(o=n.duration)&&void 0!==o?o:2e3}))}function showToast(t={}){Toast(t)}function hideToast(t={}){const{context:o,selector:s="#t-toast"}=t,e=getInstance(o,s);e&&e.hide()}export{Toast as default,showToast,hideToast};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/props.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/props.d.ts
new file mode 100644
index 0000000..c6b0f86
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/props.d.ts
@@ -0,0 +1,3 @@
+import { TdToastProps } from './type';
+declare const props: TdToastProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/props.js b/miniprogram_npm/tdesign-miniprogram/toast/props.js
new file mode 100644
index 0000000..62194a3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/props.js
@@ -0,0 +1 @@
+const props={direction:{type:String,value:"row"},duration:{type:Number,value:2e3},icon:{type:null},message:{type:String},overlayProps:{type:Object},placement:{type:String,value:"middle"},preventScrollThrough:{type:Boolean,value:!1},showOverlay:{type:Boolean,value:!1},theme:{type:String},usingCustomNavbar:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/toast.d.ts
new file mode 100644
index 0000000..ce0f9fc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.d.ts
@@ -0,0 +1,31 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { ToastOptionsType } from './index';
+declare type Timer = NodeJS.Timeout | null;
+export default class Toast extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ behaviors: string[];
+ hideTimer: Timer;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ typeMapIcon: string;
+ };
+ properties: import("./type").TdToastProps;
+ lifetimes: {
+ detached(): void;
+ };
+ pageLifetimes: {
+ hide(): void;
+ };
+ methods: {
+ show(options: ToastOptionsType): void;
+ hide(): void;
+ destroyed(): void;
+ loop(): void;
+ };
+}
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.js b/miniprogram_npm/tdesign-miniprogram/toast/toast.js
new file mode 100644
index 0000000..e1219aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import transition from"../mixins/transition";import{calcIcon}from"../common/utils";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-toast`;let Toast=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.behaviors=[transition(),useCustomNavbar],this.hideTimer=null,this.data={prefix:prefix,classPrefix:name,typeMapIcon:""},this.properties=props,this.lifetimes={detached(){this.destroyed()}},this.pageLifetimes={hide(){this.hide()}},this.methods={show(e){this.hideTimer&&clearTimeout(this.hideTimer);const i={loading:"loading",success:"check-circle",warning:"error-circle",error:"close-circle"}[null==e?void 0:e.theme],t={direction:props.direction.value,duration:props.duration.value,icon:props.icon.value,message:props.message.value,placement:props.placement.value,preventScrollThrough:props.preventScrollThrough.value,theme:props.theme.value},o=Object.assign(Object.assign(Object.assign({},t),e),{visible:!0,isLoading:"loading"===(null==e?void 0:e.theme),_icon:calcIcon(null!=i?i:e.icon)}),{duration:s}=o;this.setData(o),s>0&&(this.hideTimer=setTimeout((()=>{this.hide()}),s))},hide(){var e,i;this.data.visible&&(this.setData({visible:!1}),null===(i=null===(e=this.data)||void 0===e?void 0:e.close)||void 0===i||i.call(e),this.triggerEvent("close"))},destroyed(){this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=null),this.triggerEvent("destory")},loop(){}}}};Toast=__decorate([wxComponent()],Toast);export default Toast;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.json b/miniprogram_npm/tdesign-miniprogram/toast/toast.json
new file mode 100644
index 0000000..a594851
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-loading":"../loading/loading","t-overlay":"../overlay/overlay"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.wxml b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxml
new file mode 100644
index 0000000..c502d01
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxml
@@ -0,0 +1 @@
+{{message}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.wxss b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxss
new file mode 100644
index 0000000..fb67041
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-toast{position:fixed;left:50%;transform:translate(-50%,-50%);z-index:12001;opacity:1;transition:opacity .3s ease;background-color:var(--td-toast-bg-color,var(--td-font-gray-2,rgba(0,0,0,.6)));border-radius:var(--td-toast-radius,8rpx);font-size:28rpx;color:var(--td-toast-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));max-width:var(--td-toast-max-width,374rpx);min-height:0;width:auto;display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box}.t-toast--column{padding:48rpx;min-width:160rpx;min-height:160rpx;border-radius:16rpx;display:flex;align-items:center;justify-content:center}.t-toast--loading.t-toast--with-text{min-width:204rpx;min-height:204rpx;padding-top:0;padding-bottom:0}.t-toast__content{align-items:center;line-height:44rpx}.t-toast__content--row{display:flex;text-align:left;padding:28rpx 44rpx}.t-toast__content--column{display:flex;flex-direction:column;justify-content:center;align-items:center}.t-toast__icon--row{display:flex;font-size:var(--td-toast-row-icon-size,48rpx)}.t-toast__icon--column{font-size:var(--td-toast-column-icon-size,64rpx)}.t-toast__text{overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;white-space:pre-line}.t-toast__text--column:not(:empty):not(:only-child){margin-top:16rpx}.t-toast__text--row:not(:empty):not(:only-child){margin-left:16rpx}.t-toast.t-fade-enter,.t-toast.t-fade-leave-to{opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/type.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/type.d.ts
new file mode 100644
index 0000000..d7fd295
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/type.d.ts
@@ -0,0 +1,43 @@
+import { OverlayProps } from '../overlay/index';
+export interface TdToastProps {
+ direction?: {
+ type: StringConstructor;
+ value?: 'row' | 'column';
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ message?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ overlayProps?: {
+ type: ObjectConstructor;
+ value?: OverlayProps;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'top' | 'middle' | 'bottom';
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'loading' | 'success' | 'warning' | 'error';
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/type.js b/miniprogram_npm/tdesign-miniprogram/toast/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/index.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/index.d.ts
new file mode 100644
index 0000000..e5ac999
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/index.d.ts
@@ -0,0 +1,2 @@
+export * from './props';
+export * from './type';
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/index.js b/miniprogram_npm/tdesign-miniprogram/transition/index.js
new file mode 100644
index 0000000..cdff944
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/props.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/props.d.ts
new file mode 100644
index 0000000..0343aed
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTransitionProps } from './type';
+declare const props: TdTransitionProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/props.js b/miniprogram_npm/tdesign-miniprogram/transition/props.js
new file mode 100644
index 0000000..d764748
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/props.js
@@ -0,0 +1 @@
+const props={appear:{type:Boolean,value:!1},destoryOnHide:{type:Boolean,value:!1},durations:{type:null},name:{type:String,value:"t-transition"},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/transition.d.ts
new file mode 100644
index 0000000..e487bd5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.d.ts
@@ -0,0 +1,8 @@
+import { SuperComponent } from '../common/src/index';
+export default class Transition extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ data: {
+ classPrefix: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.js b/miniprogram_npm/tdesign-miniprogram/transition/transition.js
new file mode 100644
index 0000000..5a12f8b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import transition from"../mixins/transition";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-transition`;let Transition=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.behaviors=[transition()],this.data={classPrefix:name}}};Transition=__decorate([wxComponent()],Transition);export default Transition;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.json b/miniprogram_npm/tdesign-miniprogram/transition/transition.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.wxml b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxml
new file mode 100644
index 0000000..1bba30f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.wxss b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxss
new file mode 100644
index 0000000..c9a2eb3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-transition-enter{opacity:0}.t-transition-enter-to{opacity:1;transition:opacity 1s}.t-transition-leave{opacity:1}.t-transition-leave-to{opacity:0;transition:opacity 1s}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/type.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/type.d.ts
new file mode 100644
index 0000000..998100c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/type.d.ts
@@ -0,0 +1,22 @@
+export interface TdTransitionProps {
+ appear?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ destoryOnHide?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ durations?: {
+ type: null;
+ value?: number | number[];
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/type.js b/miniprogram_npm/tdesign-miniprogram/transition/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/index.wxs b/miniprogram_npm/tdesign-miniprogram/tree-select/index.wxs
new file mode 100644
index 0000000..dc28a9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/index.wxs
@@ -0,0 +1,7 @@
+var getTreeClass = function (level, total) {
+ if (level === 0) return 'right';
+ if (level === 1 && level !== total - 1) return 'middle';
+ return 'left';
+};
+
+module.exports.getTreeClass = getTreeClass;
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tree-select/props.d.ts
new file mode 100644
index 0000000..465bea2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTreeSelectProps } from './type';
+declare const props: TdTreeSelectProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/props.js b/miniprogram_npm/tdesign-miniprogram/tree-select/props.js
new file mode 100644
index 0000000..8dd3cb8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/props.js
@@ -0,0 +1 @@
+const props={customValue:{type:null},height:{type:null,value:336},keys:{type:Object},multiple:{type:Boolean,value:!1},options:{type:Array,value:[]},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.d.ts b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.d.ts
new file mode 100644
index 0000000..f45736e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.d.ts
@@ -0,0 +1,31 @@
+import { SuperComponent } from '../common/src/index';
+import type { TreeOptionData } from '../common/common';
+export default class TreeSelect extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ scrollIntoView: any;
+ };
+ properties: import("./type").TdTreeSelectProps>;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'value, customValue, options, keys, multiple'(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ buildTreeOptions(): void;
+ getScrollIntoView(status: string): void;
+ onRootChange(e: any): void;
+ handleTreeClick(e: any): void;
+ handleChange(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.js b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.js
new file mode 100644
index 0000000..6c4d199
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{isDef}from"../common/validator";import config from"../common/config";import{getTreeDepth}from"../common/utils";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-tree-select`;let TreeSelect=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-left-column`,`${prefix}-class-left-item`,`${prefix}-class-middle-item`,`${prefix}-class-right-column`,`${prefix}-class-right-item`,`${prefix}-class-right-item-label`],this.options={multipleSlots:!0},this.data={prefix:prefix,classPrefix:name,scrollIntoView:null},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={"value, customValue, options, keys, multiple"(){this.buildTreeOptions()}},this.lifetimes={ready(){this.getScrollIntoView("init")}},this.methods={buildTreeOptions(){var e,l;const{options:t,value:i,customValue:o,multiple:n,keys:s}=this.data;if(!t.length)return;const r=[];let a=-1,c={children:t};for(;null==c?void 0:c.children;){a+=1;const t=c.children.map((e=>({label:e[(null==s?void 0:s.label)||"label"],value:e[(null==s?void 0:s.value)||"value"],disabled:e[(null==s?void 0:s.disabled)||"disabled"],children:e[(null==s?void 0:s.children)||"children"]})));r.push(t);const n=null!==(e=null==o?void 0:o[a])&&void 0!==e?e:null==i?void 0:i[a];c=n&&null!==(l=t.find((e=>e.value===n)))&&void 0!==l?l:t[0]}const u=getTreeDepth(t,null==s?void 0:s.children);for(;r.length{var t,o,s;const a=l===r.length-1&&n?[null===(t=e[0])||void 0===t?void 0:t.value]:null===(o=e[0])||void 0===o?void 0:o.value;return null!==(s=null==i?void 0:i[l])&&void 0!==s?s:a}));this.setData({innerValue:p,leafLevel:d,treeOptions:r})},getScrollIntoView(e){const{value:l,customValue:t,scrollIntoView:i}=this.data;if("init"===e){const e=t||l,i=Array.isArray(e)?e.map((e=>Array.isArray(e)?e[0]:e)):[e];this.setData({scrollIntoView:i})}else{if(null===i)return;this.setData({scrollIntoView:null})}},onRootChange(e){const{innerValue:l}=this.data,{value:t}=e.detail;this.getScrollIntoView("none"),l[0]=t,this._trigger("change",{value:l,level:0})},handleTreeClick(e){const{level:l,value:t}=e.currentTarget.dataset,{innerValue:i}=this.data;i[l]=t,this.getScrollIntoView("none"),this._trigger("change",{value:i,level:1})},handleChange(e){const{innerValue:l}=this.data,{level:t,type:i}=e.target.dataset,{value:o}="multiple"===i?e.detail.context:e.detail;if("multiple"===i){isDef(l[t])||(l[t]=[]);const e=l[t].indexOf(o);-1===e?l[t].push(o):l[t].splice(e,1)}else l[t]=o;this.getScrollIntoView("none"),this._trigger("change",{value:l,level:t})}}}};TreeSelect=__decorate([wxComponent()],TreeSelect);export default TreeSelect;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.json b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.json
new file mode 100644
index 0000000..3b8f81a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-radio":"../radio/radio","t-radio-group":"../radio-group/radio-group","t-checkbox":"../checkbox/checkbox","t-checkbox-group":"../checkbox-group/checkbox-group","t-side-bar":"../side-bar/side-bar","t-side-bar-item":"../side-bar-item/side-bar-item","t-scroll-view":"../scroll-view/scroll-view"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxml b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxml
new file mode 100644
index 0000000..61ca34b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxml
@@ -0,0 +1 @@
+{{item.label}}{{item.label}}{{item.label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxss b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxss
new file mode 100644
index 0000000..8459f4d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tree-select{display:flex;background-color:var(--td-tree-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tree-select__column{width:var(--td-tree-colum-width,206rpx);color:var(--td-tree-colum-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tree-select__column--left{background:var(--td-tree-root-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tree-select__column--right{flex:1}.t-tree-select__column::-webkit-scrollbar{display:none;width:0;height:0;color:transparent}.t-tree-select__item{overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;height:var(--td-tree-item-height,112rpx);line-height:var(--td-tree-item-height,112rpx);font-size:var(--td-tree-item-font-size,32rpx);padding-left:32rpx}.t-tree-select__item--active{font-weight:600;color:var(--td-tree-item-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tree-select__item--disabled{pointer-events:none;cursor:not-allowed;color:var(--td-tree-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-tree-select-column{width:100%;height:auto}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tree-select/type.d.ts
new file mode 100644
index 0000000..e7718fc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/type.d.ts
@@ -0,0 +1,32 @@
+import { TreeOptionData, TreeKeysType } from '../common/common';
+export interface TdTreeSelectProps {
+ customValue?: {
+ type: null;
+ value?: TreeSelectValue;
+ };
+ height?: {
+ type: null;
+ value?: string | number;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: TreeKeysType;
+ };
+ multiple?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ value?: {
+ type: null;
+ value?: TreeSelectValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: TreeSelectValue;
+ };
+}
+export declare type TreeSelectValue = string | number | Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/type.js b/miniprogram_npm/tdesign-miniprogram/tree-select/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/drag.wxs b/miniprogram_npm/tdesign-miniprogram/upload/drag.wxs
new file mode 100644
index 0000000..a136b58
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/drag.wxs
@@ -0,0 +1,238 @@
+var classPrefix = '';
+var startIndex = 0;
+var endIndex = 0;
+var dragCollisionList = [];
+
+var isOutRange = function (x1, y1, x2, y2, x3, y3) {
+ return x1 < 0 || x1 >= y1 || x2 < 0 || x2 >= y2 || x3 < 0 || x3 >= y3;
+};
+
+var sortCore = function (sKey, eKey, st) {
+ var _ = st.dragBaseData;
+
+ var excludeFix = function (cKey, type) {
+ if (st.list[cKey].fixed) {
+ // fixed 元素位置不会变化, 这里直接用 cKey(sortKey) 获取, 更加快捷
+ type ? --cKey : ++cKey;
+ return excludeFix(cKey, type);
+ }
+ return cKey;
+ };
+
+ // 先获取到 endKey 对应的 realKey, 防止下面排序过程中该 realKey 被修改
+ var endRealKey = -1;
+ st.list.forEach(function (item) {
+ if (item.sortKey === eKey) endRealKey = item.realKey;
+ });
+
+ return st.list.map(function (item) {
+ if (item.fixed) return item;
+ var cKey = item.sortKey;
+ var rKey = item.realKey;
+
+ if (sKey < eKey) {
+ // 正序拖动
+ if (cKey > sKey && cKey <= eKey) {
+ --rKey;
+ cKey = excludeFix(--cKey, true);
+ } else if (cKey === sKey) {
+ rKey = endRealKey;
+ cKey = eKey;
+ }
+ } else if (sKey > eKey) {
+ // 倒序拖动
+ if (cKey >= eKey && cKey < sKey) {
+ ++rKey;
+ cKey = excludeFix(++cKey, false);
+ } else if (cKey === sKey) {
+ rKey = endRealKey;
+ cKey = eKey;
+ }
+ }
+
+ if (item.sortKey !== cKey) {
+ item.tranX = (cKey % _.columns) * 100 + '%';
+ item.tranY = Math.floor(cKey / _.columns) * 100 + '%';
+ item.sortKey = cKey;
+ item.realKey = rKey;
+ }
+ return item;
+ });
+};
+
+var triggerCustomEvent = function (list, type, ins) {
+ var _list = [],
+ listData = [];
+
+ list.forEach(function (item) {
+ _list[item.sortKey] = item;
+ });
+
+ _list.forEach(function (item) {
+ if (!item.extraNode) {
+ listData.push(item.data);
+ }
+ });
+
+ ins.triggerEvent(type, { listData: listData });
+};
+
+var longPress = function (event, ownerInstance) {
+ var ins = event.instance;
+ var st = ownerInstance.getState();
+ var _ = st.dragBaseData;
+
+ var sTouch = event.changedTouches[0];
+ if (!sTouch) return;
+
+ st.cur = ins.getDataset().index;
+ longPressIndex = st.cur;
+
+ // 初始项是固定项则返回
+ var item = st.list[st.cur];
+ if (item && item.fixed) return;
+
+ // 如果已经在 drag 中则返回, 防止多指触发 drag 动作, touchstart 事件中有效果
+ if (st.dragging) return;
+ st.dragging = true;
+ ownerInstance.callMethod('dragStatusChange', { dragging: true });
+
+ // 计算X,Y轴初始位移, 使 item 中心移动到点击处, 单列时候X轴初始不做位移
+ st.tranX = _.columns === 1 ? 0 : sTouch.pageX - (_.itemWidth / 2 + _.wrapLeft);
+ st.tranY = sTouch.pageY - (_.itemHeight / 2 + _.wrapTop);
+ st.sId = sTouch.identifier;
+ ins.setStyle({
+ transform: 'translate3d(' + st.tranX + 'px, ' + st.tranY + 'px, 0)',
+ });
+ st.itemsInstance.forEach(function (item, index) {
+ item.removeClass(classPrefix + '__drag--tran').removeClass(classPrefix + '__drag--cur');
+ item.addClass(index === st.cur ? classPrefix + '__drag--cur' : classPrefix + '__drag--tran');
+ });
+ ownerInstance.callMethod('dragVibrate', { vibrateType: 'longPress' });
+};
+
+var touchMove = function (event, ownerInstance) {
+ var ins = event.instance;
+ var st = ownerInstance.getState();
+ var _ = st.dragBaseData;
+
+ var mTouch = event.changedTouches[0];
+ if (!mTouch) return;
+
+ if (!st.dragging) return;
+
+ // 如果不是同一个触发点则返回
+ if (st.sId !== mTouch.identifier) return;
+
+ // 计算X,Y轴位移, 单列时候X轴初始不做位移
+ var tranX = _.columns === 1 ? 0 : mTouch.pageX - (_.itemWidth / 2 + _.wrapLeft);
+ var tranY = mTouch.pageY - (_.itemHeight / 2 + _.wrapTop);
+
+ // 到顶到底自动滑动
+ if (mTouch.clientY > _.windowHeight - _.itemHeight - _.realBottomSize) {
+ // 当前触摸点pageY + item高度 - (屏幕高度 - 底部固定区域高度)
+ ownerInstance.callMethod('pageScroll', {
+ scrollTop: mTouch.pageY + _.itemHeight - (_.windowHeight - _.realBottomSize),
+ });
+ } else if (mTouch.clientY < _.itemHeight + _.realTopSize) {
+ // 当前触摸点pageY - item高度 - 顶部固定区域高度
+ ownerInstance.callMethod('pageScroll', {
+ scrollTop: mTouch.pageY - _.itemHeight - _.realTopSize,
+ });
+ }
+
+ // 设置当前激活元素偏移量
+ ins.setStyle({
+ transform: 'translate3d(' + tranX + 'px, ' + tranY + 'px, 0)',
+ });
+
+ var startKey = st.list[st.cur].sortKey;
+ var curX = Math.round(tranX / _.itemWidth);
+ var curY = Math.round(tranY / _.itemHeight);
+ var endKey = curX + _.columns * curY;
+
+ // 目标项是固定项则返回
+ var item = st.list[endKey];
+ if (item && item.fixed) return;
+
+ // X轴或Y轴超出范围则返回
+ if (isOutRange(curX, _.columns, curY, _.rows, endKey, st.list.length)) return;
+
+ // 防止拖拽过程中发生乱序问题
+ if (startKey === endKey || startKey === st.preStartKey) return;
+ st.preStartKey = startKey;
+
+ dragCollisionList = sortCore(startKey, endKey, st);
+ startIndex = startKey;
+ endIndex = endKey;
+ st.itemsInstance.forEach(function (itemIns, index) {
+ var item = dragCollisionList[index];
+ if (index !== st.cur) {
+ itemIns.setStyle({
+ transform: 'translate3d(' + item.tranX + ',' + item.tranY + ', 0)',
+ });
+ }
+ });
+
+ ownerInstance.callMethod('dragVibrate', { vibrateType: 'touchMove' });
+ ownerInstance.callMethod('dragCollision', {
+ dragCollisionList: dragCollisionList,
+ startIndex: startIndex,
+ endIndex: endIndex,
+ });
+ triggerCustomEvent(dragCollisionList, 'change', ownerInstance);
+};
+
+var touchEnd = function (event, ownerInstance) {
+ var ins = event.instance;
+ var st = ownerInstance.getState();
+
+ if (!st.dragging) return;
+ triggerCustomEvent(st.list, 'sortend', ownerInstance);
+ ins.addClass(classPrefix + '__drag--tran');
+ ins.setStyle({
+ transform: 'translate3d(' + st.list[st.cur].tranX + ',' + st.list[st.cur].tranY + ', 0)',
+ });
+ st.preStartKey = -1;
+ st.dragging = false;
+ ownerInstance.callMethod('dragStatusChange', { dragging: false });
+ ownerInstance.callMethod('dragEnd', {
+ dragCollisionList: dragCollisionList,
+ startIndex: startIndex,
+ endIndex: endIndex,
+ });
+ st.cur = -1;
+ st.tranX = 0;
+ st.tranY = 0;
+};
+
+var baseDataObserver = function (newVal, oldVal, ownerInstance, ins) {
+ var st = ownerInstance.getState();
+ st.dragBaseData = newVal;
+ classPrefix = newVal.classPrefix;
+};
+
+var listObserver = function (newVal, oldVal, ownerInstance, ins) {
+ var st = ownerInstance.getState();
+ st.itemsInstance = ownerInstance.selectAllComponents('.' + classPrefix + '__drag-item');
+ st.list = newVal || [];
+ st.list.forEach(function (item, index) {
+ var itemIns = st.itemsInstance[index];
+ if (item && itemIns) {
+ itemIns.removeClass(classPrefix + '__drag--tran');
+ itemIns.setStyle({
+ transform: 'translate3d(' + item.tranX + ',' + item.tranY + ', 0)',
+ });
+ if (item.fixed) itemIns.addClass(classPrefix + '__drag--fixed');
+ }
+ });
+ dragCollisionList = [];
+};
+
+module.exports = {
+ longPress: longPress,
+ touchMove: touchMove,
+ touchEnd: touchEnd,
+ baseDataObserver: baseDataObserver,
+ listObserver: listObserver,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/props.d.ts b/miniprogram_npm/tdesign-miniprogram/upload/props.d.ts
new file mode 100644
index 0000000..2f7371c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/props.d.ts
@@ -0,0 +1,3 @@
+import { TdUploadProps } from './type';
+declare const props: TdUploadProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/props.js b/miniprogram_npm/tdesign-miniprogram/upload/props.js
new file mode 100644
index 0000000..074990e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/props.js
@@ -0,0 +1 @@
+const props={addBtn:{type:Boolean,value:!0},addContent:{type:String},allowUploadDuplicateFile:{type:Boolean,value:!1},config:{type:Object},disabled:{type:null,value:void 0},draggable:{type:null},files:{type:Array,value:null},defaultFiles:{type:Array},gridConfig:{type:Object},gutter:{type:Number,value:16},imageProps:{type:Object},max:{type:Number,value:0},mediaType:{type:Array,value:["image","video"]},preview:{type:Boolean,value:!0},removeBtn:{type:Boolean,value:!0},requestMethod:{type:null},sizeLimit:{type:null},source:{type:String,value:"media"},transition:{type:Object,value:{backTransition:!0,duration:300,timingFunction:"ease"}}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/type.d.ts b/miniprogram_npm/tdesign-miniprogram/upload/type.d.ts
new file mode 100644
index 0000000..9cf6558
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/type.d.ts
@@ -0,0 +1,121 @@
+import { ImageProps } from '../image/index';
+export interface TdUploadProps {
+ addBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ addContent?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ allowUploadDuplicateFile?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ config?: {
+ type: ObjectConstructor;
+ value?: UploadMpConfig;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ draggable?: {
+ type: null;
+ value?: boolean | {
+ vibrate?: boolean;
+ collisionVibrate?: boolean;
+ };
+ };
+ files?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ defaultFiles?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ gridConfig?: {
+ type: ObjectConstructor;
+ value?: {
+ column?: number;
+ width?: number;
+ height?: number;
+ };
+ };
+ gutter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: ImageProps;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ mediaType?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ preview?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ removeBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ requestMethod?: {
+ type: undefined;
+ value?: null;
+ };
+ sizeLimit?: {
+ type: null;
+ value?: number | SizeLimitObj;
+ };
+ source?: {
+ type: StringConstructor;
+ value?: 'media' | 'messageFile';
+ };
+ transition?: {
+ type: ObjectConstructor;
+ value?: Transition;
+ };
+}
+export declare type UploadMpConfig = ImageConfig | VideoConfig;
+export interface ImageConfig {
+ count?: number;
+ sizeType?: Array;
+ sourceType?: Array;
+}
+export declare type SizeTypeValues = 'original' | 'compressed';
+export declare type SourceTypeValues = 'album' | 'camera';
+export interface VideoConfig {
+ sourceType?: Array;
+ compressed?: boolean;
+ maxDuration?: number;
+ camera?: 'back' | 'front';
+}
+export interface UploadFile {
+ url: string;
+ name?: string;
+ size?: number;
+ type?: 'image' | 'video';
+ percent?: number;
+ status: 'loading' | 'reload' | 'failed' | 'done';
+}
+export declare type MediaType = 'image' | 'video';
+export interface SizeLimitObj {
+ size: number;
+ unit: SizeUnit;
+ message?: string;
+}
+export declare type SizeUnitArray = ['B', 'KB', 'MB', 'GB'];
+export declare type SizeUnit = SizeUnitArray[number];
+export interface Transition {
+ backTransition?: boolean;
+ duration?: number;
+ timingFunction?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/type.js b/miniprogram_npm/tdesign-miniprogram/upload/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload-info.json b/miniprogram_npm/tdesign-miniprogram/upload/upload-info.json
new file mode 100644
index 0000000..a19ec9e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload-info.json
@@ -0,0 +1 @@
+{"key":"Upload","label":"上传","icon":"","properties":[{"key":"addContent","type":["String","TNode"],"defaultValue":"","desc":"添加按钮内容。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"config","type":["Object"],"defaultValue":"","desc":"图片上传配置,视频上传配置,文件上传配置等,包含图片尺寸、图片来源、视频来源、视频拍摄最长时间等。更多细节查看小程序官网。[图片上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)。[视频上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html)","label":""},{"key":"deleteBtn","type":["String","TNode"],"defaultValue":"","desc":"删除图标。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"fileListDisplay","type":["TNode"],"defaultValue":"","desc":"【开发中】用于完全自定义文件列表内容","label":""},{"key":"files","type":["Array"],"defaultValue":"","desc":"已上传文件列表","label":""},{"key":"gridConfig","type":["Object"],"defaultValue":"","desc":"upload组件每行上传图片列数以及图片的宽度和高度","label":""},{"key":"gutter","type":["Number"],"defaultValue":"16","desc":"预览窗格的 gutter 大小,单位 rpx","label":""},{"key":"imageProps","type":["Object"],"defaultValue":"","desc":"透传 Image 组件全部属性","label":""},{"key":"max","type":["Number"],"defaultValue":"0","desc":"用于控制文件上传数量,值为 0 则不限制","label":""},{"key":"mediaType","type":["Array"],"defaultValue":"['image', 'video']","desc":"支持上传的文件类型,图片或视频","label":""},{"key":"requestMethod","type":["Function"],"defaultValue":"","desc":"自定义上传方法","label":""},{"key":"sizeLimit","type":["Number","Object"],"defaultValue":"","desc":"图片文件大小限制,单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }`","label":""}],"events":[{"key":"add","desc":"上传成功后触发,仅包含本次选择的照片;`context.url` 表示选定视频的临时文件路径 (本地路径)。`context.duration` 表示选定视频的时间长度。`context.size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""},{"key":"complete","desc":"上传成功或失败后触发","label":""},{"key":"fail","desc":"上传失败后触发","label":""},{"key":"remove","desc":"移除文件时触发","label":""},{"key":"selectChange","desc":"选择文件或图片之后,上传之前,触发该事件。
`params.value` 表示之前已经上传完成的文件列表。
`params.currentSelectedFiles` 表示本次上传选中的文件列表","label":""},{"key":"success","desc":"上传成功后触发,包含所有上传的文件;`context.url` 表示选定视频的临时文件路径 (本地路径)。`context.duration` 表示选定视频的时间长度。`context.size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""}]}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.d.ts b/miniprogram_npm/tdesign-miniprogram/upload/upload.d.ts
new file mode 100644
index 0000000..6c3225a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.d.ts
@@ -0,0 +1,60 @@
+import { SuperComponent } from '../common/src/index';
+import { UploadFile } from './type';
+export default class Upload extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ current: boolean;
+ proofs: any[];
+ customFiles: UploadFile[];
+ customLimit: number;
+ column: number;
+ dragBaseData: {};
+ rows: number;
+ dragWrapStyle: string;
+ dragList: any[];
+ dragging: boolean;
+ dragLayout: boolean;
+ };
+ properties: import("./type").TdUploadProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'files, max, draggable'(files: UploadFile, max: number): void;
+ gridConfig(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ onProofTap(e: any): void;
+ handleLimit(customFiles: UploadFile[], max: number): void;
+ triggerSuccessEvent(files: any): void;
+ triggerFailEvent(err: any): void;
+ onFileClick(e: any): void;
+ getFileType(mediaType: string[], tempFilePath: string, fileType?: string): string;
+ getRandFileName(filePath: any): string;
+ onDelete(e: any): void;
+ deleteHandle(index: number): void;
+ updateGrid(): void;
+ initDragLayout(): void;
+ initDragList(): void;
+ initDragBaseData(): void;
+ methods: {
+ uploadFiles(files: UploadFile[]): Promise;
+ startUpload(files: UploadFile[]): any;
+ onAddTap(): void;
+ chooseMedia(mediaType: any): void;
+ chooseMessageFile(mediaType: any): void;
+ afterSelect(files: any): void;
+ dragVibrate(e: any): void;
+ dragStatusChange(e: any): void;
+ dragEnd(e: any): void;
+ triggerDropEvent(files: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.js b/miniprogram_npm/tdesign-miniprogram/upload/upload.js
new file mode 100644
index 0000000..5992aa9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.js
@@ -0,0 +1 @@
+import{__decorate,__rest}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{isOverSize}from"../common/utils";import{isObject}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-upload`;let Upload=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.data={classPrefix:name,prefix:prefix,current:!1,proofs:[],customFiles:[],customLimit:0,column:4,dragBaseData:{},rows:0,dragWrapStyle:"",dragList:[],dragging:!0,dragLayout:!1},this.properties=props,this.controlledProps=[{key:"files",event:"success"}],this.observers={"files, max, draggable"(t,e){this.handleLimit(t,e)},gridConfig(){this.updateGrid()}},this.lifetimes={ready(){this.handleLimit(this.data.customFiles,this.data.max),this.updateGrid()}},this.methods={uploadFiles(t){return new Promise((e=>{const i=this.data.requestMethod(t);if(i instanceof Promise)return i;e({})}))},startUpload(t){return"function"==typeof this.data.requestMethod?this.uploadFiles(t).then((()=>{t.forEach((t=>{t.percent=100})),this.triggerSuccessEvent(t)})).catch((t=>{this.triggerFailEvent(t)})):(this.triggerSuccessEvent(t),this.handleLimit(this.data.customFiles,this.data.max),Promise.resolve())},onAddTap(){const{disabled:t,mediaType:e,source:i}=this.properties;t||("media"===i?this.chooseMedia(e):this.chooseMessageFile(e))},chooseMedia(t){const{customLimit:e}=this.data,{config:i,sizeLimit:s}=this.properties;wx.chooseMedia(Object.assign(Object.assign({count:Math.min(20,e),mediaType:t},i),{success:e=>{const i=[];e.tempFiles.forEach((e=>{const{size:r,fileType:a,tempFilePath:o,width:n,height:l,duration:c,thumbTempFilePath:h}=e,g=__rest(e,["size","fileType","tempFilePath","width","height","duration","thumbTempFilePath"]);if(isOverSize(r,s)){let t=("image"===a?"图片":"视频")+"大小超过限制";return"number"!=typeof s&&(t=s.message.replace("{sizeLimit}",null==s?void 0:s.size)),void wx.showToast({icon:"none",title:t})}const d=this.getRandFileName(o);i.push(Object.assign({name:d,type:this.getFileType(t,o,a),url:o,size:r,width:n,height:l,duration:c,thumb:h,percent:0},g))})),this.afterSelect(i)},fail:t=>{this.triggerFailEvent(t)},complete:t=>{this.triggerEvent("complete",t)}}))},chooseMessageFile(t){const{customLimit:e}=this.data,{config:i,sizeLimit:s}=this.properties;wx.chooseMessageFile(Object.assign(Object.assign({count:Math.min(100,e),type:Array.isArray(t)?"all":t},i),{success:e=>{const i=[];e.tempFiles.forEach((e=>{const{size:r,type:a,path:o}=e,n=__rest(e,["size","type","path"]);if(isOverSize(r,s)){let t=("image"===a?"图片":"视频")+"大小超过限制";return"number"!=typeof s&&(t=s.message.replace("{sizeLimit}",null==s?void 0:s.size)),void wx.showToast({icon:"none",title:t})}const l=this.getRandFileName(o);i.push(Object.assign({name:l,type:this.getFileType(t,o,a),url:o,size:r,percent:0},n))})),this.afterSelect(i)},fail:t=>this.triggerFailEvent(t),complete:t=>this.triggerEvent("complete",t)}))},afterSelect(t){this._trigger("select-change",{files:[...this.data.customFiles],currentSelectedFiles:[t]}),this._trigger("add",{files:t}),this.startUpload(t)},dragVibrate(t){var e;const{vibrateType:i}=t,{draggable:s}=this.data,r=null===(e=null==s?void 0:s.vibrate)||void 0===e||e,a=null==s?void 0:s.collisionVibrate;(r&&"longPress"===i||a&&"touchMove"===i)&&wx.vibrateShort({type:"light"})},dragStatusChange(t){const{dragging:e}=t;this.setData({dragging:e})},dragEnd(t){const{dragCollisionList:e}=t;let i=[];i=0===e.length?this.data.customFiles:e.reduce(((t,e)=>{const{realKey:i,data:s,fixed:r}=e;return r||(t[i]=Object.assign({},s)),t}),[]),this.triggerDropEvent(i)},triggerDropEvent(t){const{transition:e}=this.properties;if(e.backTransition){const i=setTimeout((()=>{this.triggerEvent("drop",{files:t}),clearTimeout(i)}),e.duration)}else this.triggerEvent("drop",{files:t})}}}onProofTap(t){var e;this.onFileClick(t);const{preview:i}=this.properties;if(!i)return;const{index:s}=t.currentTarget.dataset;wx.previewImage({urls:this.data.customFiles.filter((t=>-1!==t.percent)).map((t=>t.url)),current:null===(e=this.data.customFiles[s])||void 0===e?void 0:e.url})}handleLimit(t,e){0===e&&(e=Number.MAX_SAFE_INTEGER),this.setData({customFiles:t.length>e?t.slice(0,e):t,customLimit:e-t.length,dragging:!0}),this.initDragLayout()}triggerSuccessEvent(t){this._trigger("success",{files:[...this.data.customFiles,...t]})}triggerFailEvent(t){this.triggerEvent("fail",t)}onFileClick(t){const{file:e}=t.currentTarget.dataset;this.triggerEvent("click",{file:e})}getFileType(t,e,i){if(i)return i;if(1===t.length)return t[0];const s=e.split("."),r=s[s.length-1];return["avi","wmv","mkv","mp4","mov","rm","3gp","flv","mpg","rmvb"].includes(r.toLocaleLowerCase())?"video":"image"}getRandFileName(t){const e=t.lastIndexOf("."),i=-1===e?"":t.substr(e);return parseInt(`${Date.now()}${Math.floor(900*Math.random()+100)}`,10).toString(36)+i}onDelete(t){const{index:e}=t.currentTarget.dataset;this.deleteHandle(e)}deleteHandle(t){const{customFiles:e}=this.data,i=e[t];this.triggerEvent("remove",{index:t,file:i})}updateGrid(){let{gridConfig:t={}}=this.properties;isObject(t)||(t={});const{column:e=4,width:i=160,height:s=160}=t;this.setData({gridItemStyle:`width:${i}rpx;height:${s}rpx`,column:e})}initDragLayout(){const{draggable:t,disabled:e}=this.properties;t&&!e&&(this.initDragList(),this.initDragBaseData())}initDragList(){let t=0;const{column:e,customFiles:i,customLimit:s}=this.data,r=[];if(i.forEach(((i,s)=>{r.push({realKey:t,sortKey:s,tranX:s%e*100+"%",tranY:100*Math.floor(s/e)+"%",data:Object.assign({},i)}),t+=1})),s>0){const t=r.length;r.push({realKey:t,sortKey:t,tranX:t%e*100+"%",tranY:100*Math.floor(t/e)+"%",fixed:!0})}this.data.rows=Math.ceil(r.length/e),this.setData({dragList:r})}initDragBaseData(){const{classPrefix:t,rows:e,column:i,customFiles:s}=this.data;if(0===s.length)return void this.setData({dragBaseData:{},dragWrapStyle:"",dragLayout:!1});const r=this.createSelectorQuery(),a=`.${t} >>> .t-grid-item`,o=`.${t} >>> .t-grid`;r.select(a).boundingClientRect(),r.select(o).boundingClientRect(),r.selectViewport().scrollOffset(),r.exec((s=>{const[{width:r,height:a},{left:o,top:n},{scrollTop:l}]=s,c={rows:e,classPrefix:t,itemWidth:r,itemHeight:a,wrapLeft:o,wrapTop:n+l,columns:i},h=`height: ${e*a}px`;this.setData({dragBaseData:c,dragWrapStyle:h,dragLayout:!0},(()=>{const t=setTimeout((()=>{this.setData({dragging:!1}),clearTimeout(t)}),0)}))}))}};Upload=__decorate([wxComponent()],Upload);export default Upload;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.json b/miniprogram_npm/tdesign-miniprogram/upload/upload.json
new file mode 100644
index 0000000..e7b83d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-grid":"../grid/grid","t-grid-item":"../grid-item/grid-item","t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.wxml b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxml
new file mode 100644
index 0000000..9bb6f78
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxml
@@ -0,0 +1 @@
+{{file.percent ? file.percent + '%' : '上传中...'}}{{file.status == 'reload' ? '重新上传' : '上传失败'}}{{addContent}}{{file.percent ? file.percent + '%' : '上传中...'}}{{file.status == 'reload' ? '重新上传' : '上传失败'}}{{addContent}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.wxs b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxs
new file mode 100644
index 0000000..03b321f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxs
@@ -0,0 +1,15 @@
+module.exports.getWrapperAriaRole = function (file) {
+ return file.status && file.status != 'done' ? 'text' : 'button';
+};
+
+module.exports.getWrapperAriaLabel = function (file) {
+ if (file.status && file.status != 'done') {
+ if (file.status == 'loading') {
+ return file.percent ? '上传中:' + file.percent + '%' : '上传中';
+ } else {
+ return file.status == 'reload' ? '重新上传' : '上传失败';
+ }
+ } else {
+ return file.type === 'video' ? '视频' : '图像';
+ }
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.wxss b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxss
new file mode 100644
index 0000000..0fa7d3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-upload{position:relative}.t-upload__grid-content{padding:0}.t-upload__grid-file{position:relative}.t-upload__add-icon{width:100%;height:100%;display:none;align-items:center;justify-content:center;font-size:var(--td-upload-add-icon-font-size,56rpx);background-color:var(--td-upload-add-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));color:var(--td-upload-add-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));border-radius:var(--td-upload-radius,var(--td-radius-default,12rpx))}.t-upload__add-icon--disabled{background-color:var(--td-upload-add-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)));color:var(--td-upload-add-icon-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-upload__add-icon:only-child{display:flex}.t-upload__thumbnail{width:100%;height:100%;max-height:100%;overflow:hidden}.t-upload__wrapper{position:relative;border-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));overflow:hidden}.t-upload__wrapper--disabled::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--td-upload-disabled-mask,rgba(0,.6));z-index:1}.t-upload__close-btn{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;width:40rpx;height:40rpx;border-top-right-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));border-bottom-left-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));background-color:var(--td-font-gray-3,rgba(0,0,0,.4))}.t-upload__progress-mask{position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--td-font-gray-2,rgba(0,0,0,.6));display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));color:var(--td-text-color-anti,var(--td-font-white-1,#fff));padding:32rpx 0;box-sizing:border-box}.t-upload__progress-text{font-size:24rpx;line-height:40rpx;margin-top:8rpx}.t-upload__progress-loading{animation:spin infinite linear .6s}.t-upload__drag{position:relative;width:100%;--td-grid-item-bg-color:transparent}.t-upload__drag-item{position:absolute;z-index:1;top:0;left:0;height:auto;width:100%}.t-upload__drag--fixed{z-index:0}.t-upload__drag--tran{transition-property:transform;transition-duration:var(--td-upload-drag-transition-duration);transition-timing-function:var(--td-upload-drag-transition-timing-function)}.t-upload__drag--cur{z-index:var(--td-upload-drag-z-index,999)}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..b8b8469
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,22 @@
+{
+ "name": "attendant-wechat",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "attendant-wechat",
+ "version": "1.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "tdesign-miniprogram": "^1.5.0"
+ }
+ },
+ "node_modules/tdesign-miniprogram": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmmirror.com/tdesign-miniprogram/-/tdesign-miniprogram-1.13.0.tgz",
+ "integrity": "sha512-CaqqOlXCFJdkTh0ZeVRnTHhGz97uLckRA58ADT9Cs+YJXimA7rtAFt7mb+jqLn+v1944U3lyeX6GNy0lctI4zQ==",
+ "license": "MIT"
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..78a5df3
--- /dev/null
+++ b/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "attendant-wechat",
+ "version": "1.0.0",
+ "description": "值班助手微信小程序",
+ "main": "app.js",
+ "scripts": {
+ "dev": "echo '请在微信开发者工具中打开项目进行开发'"
+ },
+ "keywords": [
+ "miniprogram",
+ "wechat"
+ ],
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "tdesign-miniprogram": "^1.5.0"
+ }
+}
diff --git a/pages/ai/aichat/aichat.js b/pages/ai/aichat/aichat.js
new file mode 100644
index 0000000..0b25563
--- /dev/null
+++ b/pages/ai/aichat/aichat.js
@@ -0,0 +1,235 @@
+const API = require('../../../utils/api.js')
+
+Page({
+ data: {
+ messages: [],
+ inputValue: '',
+ inputFocus: false,
+ isTyping: false,
+ scrollToMessage: '',
+ quickQuestions: [
+ '怎么加入暖橙团队?',
+ '陪诊服务的流程是什么?',
+ '如何预约陪诊服务?',
+ '陪诊服务收费标准?'
+ ]
+ },
+
+ messageIdCounter: 0,
+
+ onLoad() {
+ this.loadChatHistory()
+ this.initSocketListeners()
+ },
+
+ onUnload() {
+ this.removeSocketListeners()
+ },
+
+ onShow() {
+ this.setData({ inputFocus: true })
+ },
+
+ initSocketListeners() {
+ const app = getApp()
+ const socket = app.globalData.chatSocket
+ if (!socket) return
+
+ this._onSocketMessage = (data) => {
+ if (data && data.type === 'ai') {
+ this.handleAIReply(data)
+ }
+ }
+
+ this._onSocketError = (err) => {
+ console.error('[AIChat] WebSocket error', err)
+ this.handleAIError('网络连接失败,请检查网络设置')
+ }
+
+ socket.onMessage(this._onSocketMessage)
+ socket.onError(this._onSocketError)
+ },
+
+ removeSocketListeners() {
+ const app = getApp()
+ const socket = app.globalData.chatSocket
+ if (!socket) return
+
+ if (this._onSocketMessage) {
+ socket.onMessage(null)
+ }
+ if (this._onSocketError) {
+ socket.onError(null)
+ }
+ },
+
+ handleAIReply(data) {
+ let messages = null
+ if (this.data.messages.length > 0) {
+ let lastMessage = this.data.messages[this.data.messages.length - 1]
+ if (lastMessage.type === 'ai' && lastMessage._serverId === data.id) {
+ lastMessage.content += data.content || ''
+ messages = this.data.messages
+ }
+ }
+
+ if (!messages) {
+ const aiResponse = {
+ id: `msg_${++this.messageIdCounter}`,
+ _serverId: data.id,
+ type: 'ai',
+ contentType: 'text',
+ content: data.content || '',
+ time: this.formatTime(new Date())
+ }
+
+ if (data.sessionId) {
+ wx.setStorageSync('ai_session_id', data.sessionId)
+ }
+
+ messages = [...this.data.messages, aiResponse]
+ }
+
+ this.setData({
+ messages: messages,
+ isTyping: false
+ })
+ this.saveChatHistory(messages)
+ this.scrollToBottom()
+ },
+
+ loadChatHistory() {
+ try {
+ const history = wx.getStorageSync('ai_chat_history')
+ if (history && history.length > 0) {
+ this.setData({ messages: history })
+ this.scrollToBottom()
+ }
+ } catch (e) {
+ console.log('加载聊天记录失败', e)
+ }
+ },
+
+ saveChatHistory(messages) {
+ try {
+ wx.setStorageSync('ai_chat_history', messages)
+ } catch (e) {
+ console.log('保存聊天记录失败', e)
+ }
+ },
+
+ onInputChange(e) {
+ this.setData({ inputValue: e.detail.value })
+ },
+
+ onQuickQuestionTap(e) {
+ const question = e.currentTarget.dataset.question
+ this.setData({ inputValue: question })
+ this.sendMessage()
+ },
+
+ sendMessage() {
+ const content = this.data.inputValue.trim()
+ if (!content) return
+
+ const userMessage = {
+ id: `msg_${++this.messageIdCounter}`,
+ type: 'user',
+ contentType: 'text',
+ content: content,
+ time: this.formatTime(new Date())
+ }
+
+ const messages = [...this.data.messages, userMessage]
+ this.setData({
+ messages: messages,
+ inputValue: '',
+ isTyping: true
+ })
+
+ this.saveChatHistory(messages)
+ this.scrollToBottom()
+
+ this.sendToAI(content)
+ },
+
+ sendToAI(content, type = 'chat') {
+ const app = getApp()
+ const user = app.globalData.user
+ const socket = app.globalData.chatSocket
+
+ if (!socket.isConnected) {
+ socket.connect()
+ }
+
+ if (socket) {
+ socket.send({
+ type: type,
+ content: content,
+ userId: user ? user._id : '',
+ appId: app.globalData.appId
+ })
+ } else {
+ // 处理连接失败的情况
+ this.handleAIError('网络连接失败,请检查网络设置')
+ }
+ },
+
+ handleAIError(errorMessage) {
+ const errorResponse = {
+ id: `msg_${++this.messageIdCounter}`,
+ type: 'ai',
+ contentType: 'text',
+ content: errorMessage,
+ time: this.formatTime(new Date())
+ }
+
+ const messages = [...this.data.messages, errorResponse]
+ this.setData({
+ messages: messages,
+ isTyping: false
+ })
+ this.saveChatHistory(messages)
+ this.scrollToBottom()
+ },
+
+ scrollToBottom() {
+ setTimeout(() => {
+ const lastMessage = this.data.messages[this.data.messages.length - 1]
+ if (lastMessage) {
+ this.setData({
+ scrollToMessage: `msg-${lastMessage.id}`
+ })
+ }
+ }, 100)
+ },
+
+ previewImage(e) {
+ const src = e.currentTarget.dataset.src
+ wx.previewImage({
+ urls: [src],
+ current: src
+ })
+ },
+
+ formatTime(date) {
+ const hours = String(date.getHours()).padStart(2, '0')
+ const minutes = String(date.getMinutes()).padStart(2, '0')
+ return `${hours}:${minutes}`
+ },
+
+ clearChat() {
+ wx.showModal({
+ title: '确认清空',
+ content: '确定要清空所有聊天记录吗?',
+ success: (res) => {
+ if (res.confirm) {
+ this.sendToAI('clear', 'clear')
+ this.setData({ messages: [] })
+ wx.removeStorageSync('ai_chat_history')
+ wx.removeStorageSync('ai_session_id')
+ }
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/pages/ai/aichat/aichat.json b/pages/ai/aichat/aichat.json
new file mode 100644
index 0000000..813e909
--- /dev/null
+++ b/pages/ai/aichat/aichat.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "AI陪诊助手",
+ "usingComponents": {
+ "t-icon": "tdesign-miniprogram/icon/icon"
+ }
+}
\ No newline at end of file
diff --git a/pages/ai/aichat/aichat.wxml b/pages/ai/aichat/aichat.wxml
new file mode 100644
index 0000000..5cd8430
--- /dev/null
+++ b/pages/ai/aichat/aichat.wxml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+ AI陪诊助手
+ 我是您的智能陪诊助手,可以为您解答陪诊相关问题
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.content}}
+
+
+ {{item.time}}
+
+
+
+
+
+
+
+ {{item.content}}
+
+
+ {{item.time}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 清空聊天
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/ai/aichat/aichat.wxss b/pages/ai/aichat/aichat.wxss
new file mode 100644
index 0000000..36035ac
--- /dev/null
+++ b/pages/ai/aichat/aichat.wxss
@@ -0,0 +1,278 @@
+.chat-container {
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+ background-color: #F5F5F5;
+ position: relative;
+}
+
+/* 清空按钮 */
+.clear-btn {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 6rpx;
+ padding: 12rpx 24rpx;
+ background-color: #FFFFFF;
+ border-top: 1rpx solid #EEEEEE;
+}
+
+.clear-btn:active {
+ opacity: 0.7;
+}
+
+.clear-text {
+ font-size: 22rpx;
+ color: #999999;
+}
+
+/* 消息列表区域 */
+.message-list {
+ flex: 1;
+ padding: 20rpx 0;
+}
+
+.message-list.has-messages {
+ padding-top: 20rpx;
+}
+
+/* 欢迎区域 */
+.welcome-area {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 80rpx 40rpx;
+ text-align: center;
+}
+
+.welcome-icon {
+ width: 160rpx;
+ height: 160rpx;
+ border-radius: 50%;
+ background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 40rpx;
+ box-shadow: 0 8rpx 32rpx rgba(255, 155, 51, 0.3);
+}
+
+.welcome-title {
+ font-size: 40rpx;
+ font-weight: 600;
+ color: #333333;
+ margin-bottom: 16rpx;
+}
+
+.welcome-desc {
+ font-size: 28rpx;
+ color: #999999;
+ margin-bottom: 60rpx;
+ line-height: 1.6;
+}
+
+.quick-questions {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+}
+
+.quick-item {
+ background-color: #FFFFFF;
+ padding: 28rpx 32rpx;
+ border-radius: 16rpx;
+ font-size: 28rpx;
+ color: #333333;
+ text-align: left;
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
+ transition: all 0.2s ease;
+}
+
+.quick-item:active {
+ transform: scale(0.98);
+ background-color: #FFF8F0;
+}
+
+/* 消息项 */
+.message-item {
+ display: flex;
+ padding: 16rpx 24rpx;
+ align-items: flex-start;
+}
+
+.message-item.ai {
+ justify-content: flex-start;
+}
+
+.message-item.user {
+ justify-content: flex-end;
+}
+
+/* 头像 */
+.avatar {
+ width: 72rpx;
+ height: 72rpx;
+ border-radius: 40%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+}
+
+.ai-avatar {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
+ margin-right: 16rpx;
+ padding: 16rpx;
+ width: 46rpx;
+ height: 46rpx;
+}
+
+.user-avatar {
+ background: linear-gradient(135deg, #4CAF50 0%, #45A049 100%);
+ margin-left: 16rpx;
+}
+
+/* 消息内容 */
+.message-content {
+ display: flex;
+ flex-direction: column;
+ max-width: 70%;
+}
+
+.message-item.user .message-content {
+ align-items: flex-end;
+}
+
+.message-item.ai .message-content {
+ align-items: flex-start;
+}
+
+/* 消息气泡 */
+.message-bubble {
+ padding: 20rpx 24rpx;
+ border-radius: 16rpx;
+ word-wrap: break-word;
+ word-break: break-all;
+}
+
+.message-item.ai .message-bubble {
+ background-color: #FFFFFF;
+ border-top-left-radius: 4rpx;
+}
+
+.message-item.user .message-bubble {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
+ border-top-right-radius: 4rpx;
+}
+
+.message-text {
+ font-size: 28rpx;
+ line-height: 1.6;
+}
+
+.message-item.ai .message-text {
+ color: #333333;
+}
+
+.message-item.user .message-text {
+ color: #FFFFFF;
+}
+
+.message-image {
+ max-width: 400rpx;
+ border-radius: 8rpx;
+}
+
+.message-time {
+ font-size: 20rpx;
+ color: #999999;
+ margin-top: 8rpx;
+}
+
+/* 正在输入指示器 */
+.typing-bubble {
+ padding: 24rpx 32rpx;
+}
+
+.typing-indicator {
+ display: flex;
+ align-items: center;
+ gap: 12rpx;
+}
+
+.dot {
+ width: 16rpx;
+ height: 16rpx;
+ border-radius: 50%;
+ background-color: #CCCCCC;
+ animation: typing 1.4s infinite ease-in-out both;
+}
+
+.dot:nth-child(1) {
+ animation-delay: -0.32s;
+}
+
+.dot:nth-child(2) {
+ animation-delay: -0.16s;
+}
+
+@keyframes typing {
+ 0%, 80%, 100% {
+ transform: scale(0.6);
+ opacity: 0.5;
+ }
+ 40% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/* 输入区域 */
+.input-area {
+ background-color: #FFFFFF;
+ padding: 20rpx 24rpx;
+ padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
+ border-top: 1rpx solid #EEEEEE;
+}
+
+.input-wrapper {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+}
+
+.message-input {
+ flex: 1;
+ height: 72rpx;
+ background-color: #F5F5F5;
+ border-radius: 16rpx;
+ padding: 0 28rpx;
+ font-size: 28rpx;
+ color: #333333;
+}
+
+.input-placeholder {
+ color: #AAAAAA;
+}
+
+.input-actions {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+}
+
+.action-btn {
+ width: 72rpx;
+ height: 72rpx;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #F5F5F5;
+ transition: all 0.2s ease;
+}
+
+.send-btn.active {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
+}
\ No newline at end of file
diff --git a/pages/escort_record_list/escort_record_list.js b/pages/escort_record_list/escort_record_list.js
new file mode 100644
index 0000000..79cd001
--- /dev/null
+++ b/pages/escort_record_list/escort_record_list.js
@@ -0,0 +1,151 @@
+const API = require('../../utils/api.js')
+
+const STATUS_MAP = {
+ pending: { text: '待确认', color: '#F59E0B', bg: '#FEF3C7' },
+ confirmed: { text: '已确认', color: '#3B82F6', bg: '#DBEAFE' },
+ in_progress: { text: '进行中', color: '#8B5CF6', bg: '#EDE9FE' },
+ completed: { text: '已完成', color: '#10B981', bg: '#D1FAE5' },
+ cancelled: { text: '已取消', color: '#6B7280', bg: '#F3F4F6' }
+}
+
+const TYPE_MAP = {
+ outpatient: '门诊陪诊',
+ inpatient: '住院陪诊',
+ examination: '检查陪诊',
+ surgery: '手术陪诊',
+ medication: '取药陪诊',
+ other: '其他'
+}
+
+Page({
+ data: {
+ records: [],
+ loading: false,
+ hasMore: true,
+ page: 1,
+ pageSize: 10,
+ statusFilter: '',
+ statusTabs: [
+ { value: '', label: '全部' },
+ { value: 'pending', label: '待确认' },
+ { value: 'confirmed', label: '已确认' },
+ { value: 'in_progress', label: '进行中' },
+ { value: 'completed', label: '已完成' }
+ ]
+ },
+
+ onLoad() {
+ this.loadRecords(true)
+ },
+
+ onShow() {
+ this.loadRecords(true)
+ },
+
+ onPullDownRefresh() {
+ this.loadRecords(true).finally(() => {
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ onReachBottom() {
+ if (this.data.hasMore && !this.data.loading) {
+ this.loadRecords(false)
+ }
+ },
+
+ loadRecords(reset = false) {
+ const app = getApp()
+ const user = app.globalData.user
+
+ if (!user || !user._id) {
+ wx.showToast({ title: '请先登录', icon: 'none' })
+ return Promise.resolve()
+ }
+
+ const page = reset ? 1 : this.data.page + 1
+ this.setData({ loading: true })
+
+ const params = {
+ userId: user._id,
+ page,
+ pageSize: this.data.pageSize
+ }
+ if (this.data.statusFilter) {
+ params.status = this.data.statusFilter
+ }
+
+ return API.escort.getMyRecords(params)
+ .then((res) => {
+ if (res.code === 0) {
+ const list = res.data.records || []
+ const formatted = list.map(item => this.formatRecord(item))
+ this.setData({
+ records: reset ? formatted : this.data.records.concat(formatted),
+ page,
+ hasMore: list.length >= this.data.pageSize
+ })
+ } else {
+ wx.showToast({ title: res.msg || '加载失败', icon: 'none' })
+ }
+ })
+ .catch(() => {
+ wx.showToast({ title: '网络请求失败', icon: 'none' })
+ })
+ .finally(() => {
+ this.setData({ loading: false })
+ })
+ },
+
+ formatRecord(item) {
+ const statusInfo = STATUS_MAP[item.escort?.status] || STATUS_MAP.pending
+ const typeText = TYPE_MAP[item.escort?.type] || '陪诊服务'
+ const fee = item.payment?.totalFee || 0
+ const appointmentTime = item.schedule?.date
+ ? this.formatDateTime(item.schedule.date) + item.schedule.startTime
+ : '--'
+
+ return {
+ _id: item._id,
+ patientName: item.patient?.name || '--',
+ patientMobile: item.patient?.mobile || '--',
+ hospital: item.hospital?.name || '--',
+ department: item.hospital?.department || '--',
+ typeText,
+ status: item.escort?.status,
+ statusText: statusInfo.text,
+ statusColor: statusInfo.color,
+ statusBg: statusInfo.bg,
+ appointmentTime,
+ fee: fee.toFixed(2),
+ escortNote: item.notes?.escortNote || ''
+ }
+ },
+
+ formatDateTime(dateStr) {
+ const d = new Date(dateStr)
+ const year = d.getFullYear()
+ const month = String(d.getMonth() + 1).padStart(2, '0')
+ const day = String(d.getDate()).padStart(2, '0')
+ return `${year}-${month}-${day} `
+ },
+
+ onTabChange(e) {
+ const status = e.currentTarget.dataset.value
+ this.setData({ statusFilter: status })
+ this.loadRecords(true)
+ },
+
+ onTapRecord(e) {
+ const id = e.currentTarget.dataset.id
+ wx.navigateTo({
+ url: `/pages/mine/escort_record_detail/escort_record_detail?id=${id}`
+ })
+ },
+
+ makePhoneCall() {
+ wx.makePhoneCall({
+ phoneNumber: '18618162956'
+ })
+ }
+})
diff --git a/pages/escort_record_list/escort_record_list.json b/pages/escort_record_list/escort_record_list.json
new file mode 100644
index 0000000..523c3ef
--- /dev/null
+++ b/pages/escort_record_list/escort_record_list.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "陪诊记录",
+ "usingComponents": {},
+ "enablePullDownRefresh": true,
+ "backgroundTextStyle": "dark"
+}
diff --git a/pages/escort_record_list/escort_record_list.wxml b/pages/escort_record_list/escort_record_list.wxml
new file mode 100644
index 0000000..a5a0405
--- /dev/null
+++ b/pages/escort_record_list/escort_record_list.wxml
@@ -0,0 +1,80 @@
+
+
+
+
+ {{item.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 就诊医院
+ {{item.hospital}}
+
+
+ 就诊科室
+ {{item.department}}
+
+
+ 就诊人
+ {{item.patientName}} {{item.patientMobile}}
+
+
+
+
+
+
+
+
+
+
+
+ 暂无陪诊记录
+ 您还没有预约陪诊服务
+
+
+
+
+
+
+
+
+
+ —— 已经到底了 ——
+
+
diff --git a/pages/escort_record_list/escort_record_list.wxss b/pages/escort_record_list/escort_record_list.wxss
new file mode 100644
index 0000000..b1e2d41
--- /dev/null
+++ b/pages/escort_record_list/escort_record_list.wxss
@@ -0,0 +1,183 @@
+page {
+ background-color: #FAF6F1;
+}
+
+.container {
+ min-height: 100vh;
+ padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
+}
+
+/* 状态筛选标签 */
+.status-tabs {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+ padding: 24rpx 32rpx;
+ background: #FFFFFF;
+ position: sticky;
+ top: 0;
+ z-index: 10;
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);
+ overflow-x: auto;
+ white-space: nowrap;
+}
+
+.tab-item {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding: 12rpx 28rpx;
+ font-size: 26rpx;
+ color: #6B7280;
+ background: #F3F4F6;
+ border-radius: 32rpx;
+ transition: all 0.2s;
+}
+
+.tab-item.active {
+ color: #FFFFFF;
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ font-weight: 600;
+}
+
+/* 记录列表 */
+.record-list {
+ padding: 20rpx 24rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+}
+
+.record-card {
+ background: #FFFFFF;
+ border-radius: 20rpx;
+ padding: 28rpx;
+ box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04);
+}
+
+/* 卡片头部 */
+.card-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20rpx;
+ padding-bottom: 20rpx;
+ border-bottom: 1rpx solid #F3F4F6;
+}
+
+.header-left {
+ display: flex;
+ flex-direction: column;
+ gap: 8rpx;
+}
+
+.record-type {
+ font-size: 30rpx;
+ font-weight: 600;
+ color: #1F2937;
+}
+
+.record-time {
+ font-size: 24rpx;
+ color: #9CA3AF;
+}
+
+.status-badge {
+ font-size: 24rpx;
+ font-weight: 600;
+ padding: 8rpx 20rpx;
+ border-radius: 8rpx;
+}
+
+/* 卡片内容 */
+.card-body {
+ display: flex;
+ flex-direction: column;
+ gap: 16rpx;
+ margin-bottom: 20rpx;
+}
+
+.info-row {
+ display: flex;
+ align-items: center;
+}
+
+.info-label {
+ font-size: 26rpx;
+ color: #9CA3AF;
+ width: 140rpx;
+ flex-shrink: 0;
+}
+
+.info-value {
+ font-size: 26rpx;
+ color: #374151;
+ flex: 1;
+}
+
+/* 卡片底部 */
+.card-footer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 20rpx;
+ border-top: 1rpx solid #F3F4F6;
+}
+
+.fee-wrap {
+ display: flex;
+ align-items: baseline;
+}
+
+.fee-label {
+ font-size: 26rpx;
+ color: #6B7280;
+}
+
+.fee-value {
+ font-size: 32rpx;
+ color: #FF9B33;
+ font-weight: 700;
+}
+
+.arrow {
+ display: flex;
+ align-items: center;
+}
+
+/* 空状态 */
+.empty-state {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding-top: 200rpx;
+}
+
+.empty-text {
+ font-size: 30rpx;
+ color: #9CA3AF;
+ margin-top: 24rpx;
+}
+
+.empty-subtext {
+ font-size: 26rpx;
+ color: #D1D5DB;
+ margin-top: 12rpx;
+}
+
+/* 加载中 */
+.loading-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 40rpx;
+}
+
+/* 到底提示 */
+.no-more {
+ text-align: center;
+ padding: 32rpx;
+ font-size: 24rpx;
+ color: #D1D5DB;
+}
diff --git a/pages/healthrecord/main/healthrecord.js b/pages/healthrecord/main/healthrecord.js
new file mode 100644
index 0000000..71d8778
--- /dev/null
+++ b/pages/healthrecord/main/healthrecord.js
@@ -0,0 +1,66 @@
+// pages/healthrecord/healthrecord.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/healthrecord/main/healthrecord.json b/pages/healthrecord/main/healthrecord.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/healthrecord/main/healthrecord.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/healthrecord/main/healthrecord.wxml b/pages/healthrecord/main/healthrecord.wxml
new file mode 100644
index 0000000..88b01ff
--- /dev/null
+++ b/pages/healthrecord/main/healthrecord.wxml
@@ -0,0 +1,2 @@
+
+pages/healthrecord/healthrecord.wxml
\ No newline at end of file
diff --git a/pages/healthrecord/main/healthrecord.wxss b/pages/healthrecord/main/healthrecord.wxss
new file mode 100644
index 0000000..59bbbc9
--- /dev/null
+++ b/pages/healthrecord/main/healthrecord.wxss
@@ -0,0 +1 @@
+/* pages/healthrecord/healthrecord.wxss */
\ No newline at end of file
diff --git a/pages/index/index.js b/pages/index/index.js
new file mode 100644
index 0000000..a5a6abb
--- /dev/null
+++ b/pages/index/index.js
@@ -0,0 +1,43 @@
+Page({
+ data: {
+ contact: {
+ icon: 'logo-wechat-stroke',
+ phone: '18618162956'
+ },
+ services: {},
+ },
+
+ async onLoad() {
+ const app = getApp()
+ const services = await app.globalData.servicesReady
+ this.setData({
+ services: services.sort((a, b) => parseFloat(a.price) - parseFloat(b.price))
+ });
+ },
+
+ makePhoneCall() {
+ const phoneNumber = this.data.contact.phone;
+ wx.makePhoneCall({
+ phoneNumber: phoneNumber,
+ success: () => {
+ console.log('拨打电话成功');
+ },
+ fail: () => {
+ console.log('拨打电话失败');
+ }
+ });
+ },
+
+ goToDetail(e) {
+ const id = e.currentTarget.dataset.id;
+ wx.navigateTo({
+ url: `/pages/itemdetail/itemdetail?id=${id}`
+ });
+ },
+
+ goToAIChat() {
+ wx.switchTab({
+ url: '/pages/ai/aichat/aichat'
+ });
+ }
+});
\ No newline at end of file
diff --git a/pages/index/index.json b/pages/index/index.json
new file mode 100644
index 0000000..f1a7de4
--- /dev/null
+++ b/pages/index/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "暖橙陪诊",
+ "usingComponents": {
+ "t-icon": "tdesign-miniprogram/icon/icon"
+ }
+}
\ No newline at end of file
diff --git a/pages/index/index.wxml b/pages/index/index.wxml
new file mode 100644
index 0000000..590a702
--- /dev/null
+++ b/pages/index/index.wxml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+ 陪诊
+
+
+
+
+
+ AI客服
+
+
+
+
+
+ 商务合作
+
+
+
+
+
+
+ 电话联系
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+ {{ item.subtitle }}
+ {{ item.readTime }}
+
+
+ ¥{{ item.price }}
+
+
+
+
+
+
+ 18618162956
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/index.wxss b/pages/index/index.wxss
new file mode 100644
index 0000000..a2c5335
--- /dev/null
+++ b/pages/index/index.wxss
@@ -0,0 +1,268 @@
+page {
+ background-color: #FAF6F1;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+}
+
+.container {
+ min-height: 100vh;
+}
+
+.header-section {
+ position: relative;
+ width: 100%;
+ height: 360rpx;
+ overflow: hidden;
+ padding-top: 10rpx;
+}
+
+.header-bg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.header-blur-mask {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.doctor-image {
+ position: absolute;
+ right: -60rpx;
+ bottom: 0;
+ width: 380rpx;
+ height: 420rpx;
+}
+
+.user-info {
+ position: relative;
+ z-index: 10;
+ padding: 100rpx 40rpx 40rpx;
+ display: flex;
+ align-items: center;
+}
+
+.avatar {
+ width: 80rpx;
+ height: 80rpx;
+}
+
+.welcome-text {
+ margin-left: 24rpx;
+}
+
+.welcome-title {
+ display: block;
+ font-size: 28rpx;
+ color: #FFFFFF;
+ opacity: 0.9;
+ margin-bottom: 8rpx;
+}
+
+.user-name {
+ display: block;
+ font-size: 40rpx;
+ font-weight: 700;
+ color: #FFFFFF;
+ margin-bottom: 8rpx;
+}
+
+.welcome-subtitle {
+ display: block;
+ font-size: 26rpx;
+ color: #FFFFFF;
+ opacity: 0.8;
+}
+
+.contact-section {
+ padding: 0 32rpx;
+ margin-top: 40rpx;
+ position: relative;
+ z-index: 20;
+}
+
+.contact-box {
+ background: #FFFFFF;
+ border-radius: 10rpx;
+ padding: 34rpx 32rpx;
+ display: flex;
+ align-items: center;
+}
+
+.contact-icon {
+ font-size: 38rpx;
+ margin-right: 16rpx;
+}
+
+.contact-text {
+ font-size: 30rpx;
+ color: #9CA3AF;
+ margin-right: 16rpx;
+}
+
+.contact-phone {
+ font-size: 28rpx;
+ color: #1F2937;
+ font-weight: 600;
+}
+
+.contact-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 28rpx;
+ font-weight: 600;
+ padding: 26rpx 6rpx;
+ border-radius: 20rpx;
+ margin-left: auto;
+}
+
+.services-section {
+ padding: 36rpx 32rpx;
+ display: flex;
+ justify-content: space-around;
+ background: #FFFFFF;
+ margin: 30rpx 0rpx;
+ box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04);
+}
+
+.service-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.service-icon-wrap {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 16rpx;
+}
+
+.service-icon-wrap.blue {
+ background-color: #FF9B33;
+}
+
+.service-icon {
+ width: 50rpx;
+ height: 50rpx;
+ color: #FF9B33;
+}
+
+.service-name {
+ font-size: 28rpx;
+ color: #374151;
+ font-weight: 600;
+}
+
+.articles-section {
+ padding: 10rpx 0rpx;
+}
+
+.section-header {
+ display: flex;
+ align-items: center;
+ margin-bottom: 20rpx;
+ padding-left: 20rpx;
+}
+
+.section-icon {
+ font-size: 36rpx;
+ margin-right: 12rpx;
+}
+
+.section-title-wrap {
+ display: flex;
+ align-items: center;
+}
+
+.section-more {
+ margin-left: auto;
+}
+
+.section-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #1F2937;
+}
+
+.section-more {
+ font-size: 26rpx;
+ color: #FF9B33;
+ font-weight: 500;
+}
+
+.article-list {
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+}
+
+.article-item {
+ background: #FFFFFF;
+ border-radius: 0rpx;
+ padding: 24rpx;
+ display: flex;
+ align-items: center;
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);
+ position: relative;
+}
+
+.article-image {
+ width: 160rpx;
+ height: 160rpx;
+ border-radius: 10rpx;
+ flex-shrink: 0;
+}
+
+.article-content {
+ flex: 1;
+ margin-left: 20rpx;
+ padding-right: 16rpx;
+ align-self: flex-start;
+}
+
+.article-title {
+ display: block;
+ font-size: 30rpx;
+ font-weight: 600;
+ color: #1F2937;
+ line-height: 1.4;
+ margin-bottom: 22rpx;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+.article-meta {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+}
+
+.article-date {
+ font-size: 26rpx;
+ color: #6c6c6c;
+}
+
+.article-time {
+ font-size: 22rpx;
+ color: #9CA3AF;
+}
+
+.article-price {
+ font-size: 32rpx;
+ font-weight: 700;
+ color: #FF9B33;
+ align-self: flex-start;
+ margin-left: auto;
+ flex-shrink: 0;
+}
diff --git a/pages/itemdetail/itemdetail.js b/pages/itemdetail/itemdetail.js
new file mode 100644
index 0000000..1230733
--- /dev/null
+++ b/pages/itemdetail/itemdetail.js
@@ -0,0 +1,1123 @@
+const API = require('../../utils/api.js')
+
+Page({
+ data: {
+ service: {
+ id: null,
+ title: '',
+ subtitle: '',
+ price: '0.00',
+ image: '',
+ tag: '',
+ description: '',
+ flow: [],
+ notices: []
+ },
+ totalPrice: '0.00',
+ showOrderPopup: false,
+ patientName: '',
+ patientPhone: '',
+ province: '',
+ provinceIndex: 0,
+ provinces: ['北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市', '江苏省', '浙江省', '安徽省', '福建省', '江西省', '山东省', '河南省', '湖北省', '湖南省', '广东省', '广西壮族自治区', '海南省', '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省', '青海省', '宁夏回族自治区', '新疆维吾尔自治区', '台湾省', '香港特别行政区', '澳门特别行政区'],
+ hospital: '',
+ appointmentDate: '',
+ appointmentTime: '',
+ remark: '',
+ today: '',
+ gender: '不限',
+ genderIndex: 0,
+ genderOptions: ['不限', '男', '女'],
+ department: '',
+ departments: ['内科', '外科', '妇产科', '儿科', '骨科', '神经科', '心血管内科', '消化内科', '呼吸内科', '内分泌科', '皮肤科', '眼科', '耳鼻喉科', '口腔科', '急诊科', '肿瘤科', '康复医学科', '老年病科', '中医科', '针灸推拿科'],
+ hospitals: [{
+ id: 1,
+ name: '中国医学科学院北京协和医院',
+ level: '三级甲等'
+ },
+ {
+ id: 2,
+ name: '中国人民解放军总医院(301医院)',
+ level: '三级甲等'
+ },
+ {
+ id: 3,
+ name: '中国医学科学院肿瘤医院',
+ level: '三级甲等'
+ },
+ {
+ id: 4,
+ name: '中国医学科学院阜外心血管病医院',
+ level: '三级甲等'
+ },
+ {
+ id: 5,
+ name: '中国医学科学院整形外科医院',
+ level: '三级甲等'
+ },
+ {
+ id: 6,
+ name: '北京大学第一医院',
+ level: '三级甲等'
+ },
+ {
+ id: 7,
+ name: '北京大学人民医院',
+ level: '三级甲等'
+ },
+ {
+ id: 8,
+ name: '北京大学第三医院',
+ level: '三级甲等'
+ },
+ {
+ id: 9,
+ name: '北京大学肿瘤医院',
+ level: '三级甲等'
+ },
+ {
+ id: 10,
+ name: '北京大学口腔医院',
+ level: '三级甲等'
+ },
+ {
+ id: 11,
+ name: '北京大学第六医院',
+ level: '三级甲等'
+ },
+ {
+ id: 12,
+ name: '北京中医药大学东直门医院',
+ level: '三级甲等'
+ },
+ {
+ id: 13,
+ name: '北京中医药大学东直门医院通州院区',
+ level: '三级甲等'
+ },
+ {
+ id: 14,
+ name: '北京中医药大学东方医院',
+ level: '三级甲等'
+ },
+ {
+ id: 15,
+ name: '北京中医药大学第三附属医院',
+ level: '三级甲等'
+ },
+ {
+ id: 16,
+ name: '北京天坛医院',
+ level: '三级甲等'
+ },
+ {
+ id: 17,
+ name: '北京宣武医院',
+ level: '三级甲等'
+ },
+ {
+ id: 18,
+ name: '北京朝阳医院',
+ level: '三级甲等'
+ },
+ {
+ id: 19,
+ name: '北京朝阳医院常营院区',
+ level: '三级甲等'
+ },
+ {
+ id: 20,
+ name: '北京朝阳医院石景山院区',
+ level: '三级甲等'
+ },
+ {
+ id: 21,
+ name: '北京友谊医院',
+ level: '三级甲等'
+ },
+ {
+ id: 22,
+ name: '北京积水潭医院',
+ level: '三级甲等'
+ },
+ {
+ id: 23,
+ name: '北京安贞医院',
+ level: '三级甲等'
+ },
+ {
+ id: 24,
+ name: '北京世纪坛医院',
+ level: '三级甲等'
+ },
+ {
+ id: 25,
+ name: '北京中医医院',
+ level: '三级甲等'
+ },
+ {
+ id: 26,
+ name: '北京中医医院顺义医院',
+ level: '三级甲等'
+ },
+ {
+ id: 27,
+ name: '北京中医医院延庆医院',
+ level: '三级甲等'
+ },
+ {
+ id: 28,
+ name: '北京儿童医院',
+ level: '三级甲等'
+ },
+ {
+ id: 29,
+ name: '北京儿童医院顺义妇儿医院',
+ level: '三级甲等'
+ },
+ {
+ id: 30,
+ name: '北京妇产医院',
+ level: '三级甲等'
+ },
+ {
+ id: 31,
+ name: '北京同仁医院',
+ level: '三级甲等'
+ },
+ {
+ id: 32,
+ name: '北京安定医院',
+ level: '三级甲等'
+ },
+ {
+ id: 33,
+ name: '北京回龙观医院',
+ level: '三级甲等'
+ },
+ {
+ id: 34,
+ name: '北京胸科医院',
+ level: '三级甲等'
+ },
+ {
+ id: 35,
+ name: '北京地坛医院',
+ level: '三级甲等'
+ },
+ {
+ id: 36,
+ name: '北京佑安医院',
+ level: '三级甲等'
+ },
+ {
+ id: 37,
+ name: '北京口腔医院',
+ level: '三级甲等'
+ },
+ {
+ id: 38,
+ name: '北京老年医院',
+ level: '三级甲等'
+ },
+ {
+ id: 39,
+ name: '北京小汤山医院',
+ level: '三级甲等'
+ },
+ {
+ id: 40,
+ name: '北京清华长庚医院',
+ level: '三级甲等'
+ },
+ {
+ id: 41,
+ name: '中国康复研究中心北京博爱医院',
+ level: '三级甲等'
+ },
+ {
+ id: 42,
+ name: '北京急救中心',
+ level: '三级甲等'
+ },
+ {
+ id: 43,
+ name: '解放军空军总医院(空军特色医学中心)',
+ level: '三级甲等'
+ },
+ {
+ id: 44,
+ name: '解放军海军总医院',
+ level: '三级甲等'
+ },
+ {
+ id: 45,
+ name: '解放军火箭军总医院(火箭军特色医学中心)',
+ level: '三级甲等'
+ },
+ {
+ id: 46,
+ name: '解放军总医院第九医学中心',
+ level: '三级甲等'
+ },
+ {
+ id: 47,
+ name: '解放军总医院第六医学中心',
+ level: '三级甲等'
+ },
+ {
+ id: 48,
+ name: '解放军305医院',
+ level: '三级甲等'
+ },
+ {
+ id: 49,
+ name: '武警总医院',
+ level: '三级甲等'
+ },
+ {
+ id: 50,
+ name: '中日友好医院',
+ level: '三级甲等'
+ },
+ {
+ id: 51,
+ name: '中国中医科学院广安门医院',
+ level: '三级甲等'
+ },
+ {
+ id: 52,
+ name: '中国中医科学院广安门医院南区',
+ level: '三级甲等'
+ },
+ {
+ id: 53,
+ name: '中国中医科学院西苑医院',
+ level: '三级甲等'
+ },
+ {
+ id: 54,
+ name: '中国中医科学院望京医院',
+ level: '三级甲等'
+ },
+ {
+ id: 55,
+ name: '中国中医科学院眼科医院',
+ level: '三级甲等'
+ },
+ {
+ id: 56,
+ name: '清华大学玉泉医院',
+ level: '三级甲等'
+ },
+ {
+ id: 57,
+ name: '清华大学第一附属医院',
+ level: '三级甲等'
+ },
+ {
+ id: 58,
+ name: '北京大学首钢医院',
+ level: '三级甲等'
+ },
+ {
+ id: 59,
+ name: '首都医科大学附属首都儿童医学中心',
+ level: '三级甲等'
+ },
+ {
+ id: 60,
+ name: '首都医科大学附属复兴医院',
+ level: '三级甲等'
+ },
+ {
+ id: 61,
+ name: '首都医科大学附属北京康复医院',
+ level: '三级甲等'
+ },
+ {
+ id: 62,
+ name: '首都医科大学附属北京潞河医院',
+ level: '三级甲等'
+ },
+ {
+ id: 63,
+ name: '首都医科大学附属北京顺义医院',
+ level: '三级甲等'
+ },
+ {
+ id: 64,
+ name: '首都医科大学附属北京大兴医院',
+ level: '三级甲等'
+ },
+ {
+ id: 65,
+ name: '护国寺中医院',
+ level: '三级甲等'
+ },
+ {
+ id: 66,
+ name: '北京市肛肠医院',
+ level: '三级甲等'
+ },
+ {
+ id: 67,
+ name: '北京市回民医院',
+ level: '三级甲等'
+ },
+ {
+ id: 68,
+ name: '北京市第一中西医结合医院',
+ level: '三级甲等'
+ },
+ {
+ id: 69,
+ name: '北京中西医结合医院',
+ level: '三级甲等'
+ },
+ {
+ id: 70,
+ name: '北京市海淀区妇幼保健院',
+ level: '三级甲等'
+ },
+ {
+ id: 71,
+ name: '北京市丰台区中西医结合医院',
+ level: '三级甲等'
+ },
+ {
+ id: 72,
+ name: '北京市和平里医院',
+ level: '三级甲等'
+ },
+ {
+ id: 73,
+ name: '北京市隆福医院',
+ level: '三级甲等'
+ },
+ {
+ id: 74,
+ name: '北京市昌平区中医医院',
+ level: '三级甲等'
+ },
+ {
+ id: 75,
+ name: '北京市昌平区中西医结合医院',
+ level: '三级甲等'
+ },
+ {
+ id: 76,
+ name: '北京市房山区中医医院',
+ level: '三级甲等'
+ },
+ {
+ id: 77,
+ name: '北京市平谷区中医医院',
+ level: '三级甲等'
+ },
+ {
+ id: 78,
+ name: '通州区妇幼保健院',
+ level: '三级甲等'
+ },
+ {
+ id: 79,
+ name: '北京燕化医院',
+ level: '三级甲等'
+ },
+ {
+ id: 80,
+ name: '北京和睦家医院',
+ level: '三级甲等'
+ },
+ {
+ id: 81,
+ name: '北京华德眼科医院',
+ level: '三级甲等'
+ },
+ {
+ id: 82,
+ name: '北京希玛林顺潮眼科医院',
+ level: '三级甲等'
+ },
+ {
+ id: 83,
+ name: '北京优联医院',
+ level: '三级甲等'
+ },
+ {
+ id: 84,
+ name: '北京裕和医院',
+ level: '三级甲等'
+ },
+ {
+ id: 85,
+ name: '北京京城皮肤医院',
+ level: '三级甲等'
+ },
+ {
+ id: 86,
+ name: '航空总医院',
+ level: '三级甲等'
+ },
+ {
+ id: 87,
+ name: '航天中心医院',
+ level: '三级甲等'
+ },
+ {
+ id: 88,
+ name: '航天总医院',
+ level: '三级甲等'
+ },
+ {
+ id: 89,
+ name: '北京电力医院',
+ level: '三级甲等'
+ },
+ {
+ id: 90,
+ name: '北京通用航天医院',
+ level: '三级甲等'
+ },
+ {
+ id: 91,
+ name: '应急管理部应急总医院',
+ level: '三级甲等'
+ },
+ {
+ id: 92,
+ name: '北京回龙观医院',
+ level: '三级甲等'
+ },
+ {
+ id: 93,
+ name: '北京康复医院',
+ level: '三级甲等'
+ },
+ {
+ id: 94,
+ name: '北京南郊肿瘤医院',
+ level: '三级甲等'
+ },
+ {
+ id: 95,
+ name: '北京美中爱瑞肿瘤医院',
+ level: '三级甲等'
+ },
+ {
+ id: 96,
+ name: '北京陆道培医院',
+ level: '三级甲等'
+ },
+ {
+ id: 97,
+ name: '北京高博医院',
+ level: '三级甲等'
+ },
+ {
+ id: 98,
+ name: '北京高博博仁医院',
+ level: '三级甲等'
+ },
+ {
+ id: 99,
+ name: '北京京都儿童医院',
+ level: '三级甲等'
+ },
+ {
+ id: 100,
+ name: '北京首大眼耳鼻喉医院',
+ level: '三级甲等'
+ },
+ {
+ id: 101,
+ name: '北京市海淀医院',
+ level: '三级甲等'
+ },
+ {
+ id: 102,
+ name: '北京市中关村医院',
+ level: '三级甲等'
+ },
+ {
+ id: 103,
+ name: '北京市石景山医院',
+ level: '三级甲等'
+ },
+ {
+ id: 104,
+ name: '北京市顺义区医院',
+ level: '三级甲等'
+ },
+ {
+ id: 105,
+ name: '北京市大兴区人民医院',
+ level: '三级甲等'
+ },
+ {
+ id: 106,
+ name: '北京市房山区良乡医院',
+ level: '三级甲等'
+ },
+ {
+ id: 107,
+ name: '北京市延庆区医院',
+ level: '三级甲等'
+ },
+ {
+ id: 108,
+ name: '北京市平谷区医院',
+ level: '三级甲等'
+ },
+ {
+ id: 109,
+ name: '北京市密云区中医医院',
+ level: '三级甲等'
+ },
+ {
+ id: 110,
+ name: '北京怀柔医院',
+ level: '三级甲等'
+ },
+ {
+ id: 111,
+ name: '北京中医医院怀柔医院',
+ level: '三级甲等'
+ },
+ {
+ id: 112,
+ name: '北京协和医院',
+ level: '三级甲等'
+ },
+ {
+ id: 113,
+ name: '北京医院',
+ level: '三级甲等'
+ },
+ {
+ id: 114,
+ name: '北京市第六医院',
+ level: '二级甲等'
+ },
+ {
+ id: 115,
+ name: '北京市普仁医院',
+ level: '二级甲等'
+ },
+ {
+ id: 116,
+ name: '北京市鼓楼中医医院',
+ level: '二级甲等'
+ },
+ {
+ id: 117,
+ name: '北京市西城区人民医院',
+ level: '二级甲等'
+ },
+ {
+ id: 118,
+ name: '北京市西城区平安医院',
+ level: '二级甲等'
+ },
+ {
+ id: 119,
+ name: '北京市第二医院',
+ level: '二级甲等'
+ },
+ {
+ id: 120,
+ name: '北京市东城区第一人民医院',
+ level: '二级甲等'
+ },
+ {
+ id: 121,
+ name: '北京市丰台区中医医院',
+ level: '二级甲等'
+ },
+ {
+ id: 122,
+ name: '北京市丰台区医院',
+ level: '二级甲等'
+ },
+ {
+ id: 123,
+ name: '北京市丰台区康复医院',
+ level: '二级甲等'
+ },
+ {
+ id: 124,
+ name: '北京市石景山区中医医院',
+ level: '二级甲等'
+ },
+ {
+ id: 125,
+ name: '北京市通州区中西医结合医院',
+ level: '二级甲等'
+ },
+ {
+ id: 126,
+ name: '北京市通州区新华医院',
+ level: '二级甲等'
+ },
+ {
+ id: 127,
+ name: '北京市通州区老年病医院',
+ level: '二级甲等'
+ },
+ {
+ id: 128,
+ name: '北京市顺义区空港医院',
+ level: '二级甲等'
+ },
+ {
+ id: 129,
+ name: '北京市顺义区精神病医院',
+ level: '二级甲等'
+ },
+ {
+ id: 130,
+ name: '北京市昌平区医院',
+ level: '二级甲等'
+ },
+ {
+ id: 131,
+ name: '北京市昌平区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 132,
+ name: '北京市昌平区南口医院',
+ level: '二级甲等'
+ },
+ {
+ id: 133,
+ name: '北京市大兴区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 134,
+ name: '北京市大兴区心康医院',
+ level: '二级甲等'
+ },
+ {
+ id: 135,
+ name: '北京市房山区第一医院',
+ level: '二级甲等'
+ },
+ {
+ id: 136,
+ name: '北京市房山区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 137,
+ name: '北京市房山区精神病医院',
+ level: '二级甲等'
+ },
+ {
+ id: 138,
+ name: '北京市密云区医院',
+ level: '二级甲等'
+ },
+ {
+ id: 139,
+ name: '北京市密云区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 140,
+ name: '北京市平谷区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 141,
+ name: '北京市平谷区精神病医院',
+ level: '二级甲等'
+ },
+ {
+ id: 142,
+ name: '北京市延庆区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 143,
+ name: '北京市延庆区精神病医院',
+ level: '二级甲等'
+ },
+ {
+ id: 144,
+ name: '北京市怀柔区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 145,
+ name: '北京市怀柔区第二医院',
+ level: '二级甲等'
+ },
+ {
+ id: 146,
+ name: '北京市门头沟区医院',
+ level: '二级甲等'
+ },
+ {
+ id: 147,
+ name: '北京市门头沟区中医医院',
+ level: '二级甲等'
+ },
+ {
+ id: 148,
+ name: '北京市门头沟区妇幼保健院',
+ level: '二级甲等'
+ },
+ {
+ id: 149,
+ name: '北京水利医院',
+ level: '二级甲等'
+ },
+ {
+ id: 150,
+ name: '北京四季青医院',
+ level: '二级甲等'
+ },
+ {
+ id: 151,
+ name: '北京上地医院',
+ level: '二级甲等'
+ },
+ {
+ id: 152,
+ name: '北京华医中西医结合皮肤病医院',
+ level: '二级甲等'
+ },
+ {
+ id: 153,
+ name: '德尔康尼骨科医院',
+ level: '二级甲等'
+ },
+ {
+ id: 154,
+ name: '北京怡德医院',
+ level: '二级甲等'
+ },
+ {
+ id: 155,
+ name: '北京万柳美中宜和妇儿医院',
+ level: '二级甲等'
+ },
+ {
+ id: 156,
+ name: '北京家圆医院',
+ level: '二级甲等'
+ },
+ {
+ id: 157,
+ name: '北京新世纪儿童医院',
+ level: '二级甲等'
+ },
+ {
+ id: 158,
+ name: '北京和睦家东城院区',
+ level: '二级甲等'
+ },
+ {
+ id: 159,
+ name: '北京嘉禾妇儿医院',
+ level: '二级甲等'
+ },
+ {
+ id: 160,
+ name: '垂杨柳医院',
+ level: '二级甲等'
+ }
+ ]
+ },
+
+ onLoad(options) {
+ const today = new Date()
+ const year = today.getFullYear()
+ const month = String(today.getMonth() + 1).padStart(2, '0')
+ const day = String(today.getDate()).padStart(2, '0')
+ const todayStr = `${year}-${month}-${day}`
+
+ this.setData({
+ today: todayStr
+ })
+
+ const serviceId = parseInt(options.id) || 1
+ this.loadServiceDetail(serviceId)
+ },
+
+ loadServiceDetail(id) {
+ const app = getApp()
+ let service = null
+ for (const item of app.globalData.services) {
+ if (item.id === id) {
+ service = item
+ break
+ }
+ }
+ if (!service) {
+ return
+ }
+
+ const totalPrice = this.calculateTotal(service.price, 1)
+ this.setData({
+ service: service,
+ totalPrice: totalPrice
+ })
+ },
+
+ calculateTotal(price) {
+ return price
+ },
+
+ openOrderPopup() {
+ const app = getApp()
+ if (!app.globalData.user) {
+ wx.showToast({
+ title: '请先登录',
+ icon: 'none'
+ })
+ return
+ }
+
+ const user = app.globalData.user
+ this.setData({
+ patientName: user.profile?.name || '',
+ patientPhone: user.profile?.mobile || '',
+ showOrderPopup: true
+ })
+ },
+
+ closeOrderPopup() {
+ this.setData({
+ showOrderPopup: false
+ })
+ },
+
+ onPatientNameChange(e) {
+ this.setData({
+ patientName: e.detail.value
+ })
+ },
+
+ onPatientPhoneChange(e) {
+ this.setData({
+ patientPhone: e.detail.value
+ })
+ },
+
+ onProvinceChange(e) {
+ const index = e.detail.value
+ const province = this.data.provinces[index]
+ this.setData({
+ provinceIndex: index,
+ province: province
+ })
+ },
+
+ onHospitalChange(e) {
+ this.setData({
+ hospital: e.detail.value
+ })
+ },
+
+ onDepartmentChange(e) {
+ this.setData({
+ department: e.detail.value
+ })
+ },
+
+ onDateChange(e) {
+ this.setData({
+ appointmentDate: e.detail.value
+ })
+ },
+
+ onTimeChange(e) {
+ this.setData({
+ appointmentTime: e.detail.value
+ })
+ },
+
+ onGenderChange(e) {
+ const index = e.detail.value
+ const gender = this.data.genderOptions[index]
+ this.setData({
+ genderIndex: index,
+ gender: gender
+ })
+ },
+
+ onRemarkChange(e) {
+ this.setData({
+ remark: e.detail.value
+ })
+ },
+
+ submitOrder() {
+ const {
+ service,
+ patientName,
+ patientPhone,
+ province,
+ hospital,
+ department,
+ appointmentDate,
+ appointmentTime,
+ gender,
+ remark
+ } = this.data
+
+ if (!patientName.trim()) {
+ wx.showToast({
+ title: '请输入就诊人姓名',
+ icon: 'none'
+ })
+ return
+ }
+ if (!patientPhone.trim()) {
+ wx.showToast({
+ title: '请输入联系电话',
+ icon: 'none'
+ })
+ return
+ }
+ if (!hospital.trim()) {
+ wx.showToast({
+ title: '请输入就诊医院',
+ icon: 'none'
+ })
+ return
+ }
+ if (!department.trim()) {
+ wx.showToast({
+ title: '请输入就诊科室',
+ icon: 'none'
+ })
+ return
+ }
+ if (!appointmentDate) {
+ wx.showToast({
+ title: '请选择预约日期',
+ icon: 'none'
+ })
+ return
+ }
+ if (!appointmentTime) {
+ wx.showToast({
+ title: '请选择预约时间',
+ icon: 'none'
+ })
+ return
+ }
+
+ const phoneRegex = /^1[3-9]\d{9}$/
+ if (!phoneRegex.test(patientPhone.trim())) {
+ wx.showToast({
+ title: '请输入正确的手机号',
+ icon: 'none'
+ })
+ return
+ }
+
+ const app = getApp()
+ const user = app.globalData.user
+ let sex = "none"
+ if (gender == '男') sex = 'male'
+ else if (gender == '女') sex = 'female'
+
+ const orderData = {
+ userId: user._id,
+ patient: {
+ name: patientName.trim(),
+ mobile: patientPhone.trim(),
+ },
+ escort: {
+ serviceId: service.id,
+ serviceName: service.title,
+ },
+ hospital: {
+ province: province,
+ name: hospital.trim(),
+ department: department.trim(),
+ },
+ attendant: {
+ sex: sex,
+ },
+ schedule: {
+ date: appointmentDate,
+ startTime: appointmentTime
+ },
+ payment: {
+ totalFee: service.price
+ },
+ notes: {
+ patientNote: remark.trim()
+ }
+ }
+
+ wx.showLoading({
+ title: '提交中...'
+ })
+
+ API.escort.createRecord(orderData)
+ .then((data) => {
+ wx.hideLoading()
+ if (data.code === 0) {
+ wx.showToast({
+ title: '下单成功',
+ icon: 'success'
+ })
+ this.setData({
+ showOrderPopup: false
+ })
+ this.resetForm()
+ } else {
+ wx.showToast({
+ title: data.msg || '下单失败',
+ icon: 'none'
+ })
+ }
+ })
+ .catch((err) => {
+ wx.hideLoading()
+ wx.showToast({
+ title: '网络请求失败',
+ icon: 'none'
+ })
+ console.log('下单失败', err)
+ })
+ },
+
+ resetForm() {
+ this.setData({
+ patientName: '',
+ patientPhone: '',
+ province: '',
+ provinceIndex: 0,
+ hospital: '',
+ department: '',
+ appointmentDate: '',
+ appointmentTime: '',
+ gender: '',
+ genderIndex: 0,
+ remark: ''
+ })
+ const totalPrice = this.calculateTotal(this.data.service.price)
+ this.setData({
+ totalPrice: totalPrice
+ })
+ },
+
+ onShareAppMessage() {
+ const {
+ service
+ } = this.data
+ return {
+ title: `${service.title} - 专业陪诊服务`,
+ path: `/pages/itemdetail/itemdetail?id=${service.id}`
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/itemdetail/itemdetail.json b/pages/itemdetail/itemdetail.json
new file mode 100644
index 0000000..8dbc89c
--- /dev/null
+++ b/pages/itemdetail/itemdetail.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "t-icon": "tdesign-miniprogram/icon/icon"
+ },
+ "navigationBarTitleText": "服务详情"
+}
diff --git a/pages/itemdetail/itemdetail.wxml b/pages/itemdetail/itemdetail.wxml
new file mode 100644
index 0000000..2d977e8
--- /dev/null
+++ b/pages/itemdetail/itemdetail.wxml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+ {{service.subtitle}}
+
+
+
+
+
+
+ 服务详情
+
+
+ {{service.description}}
+
+
+
+
+
+
+
+ 服务流程
+
+
+
+ {{index + 1}}
+
+ {{item.title}}
+ {{item.desc}}
+
+
+
+
+
+
+
+
+
+ 注意事项
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+
+
+ 合计:
+ ¥{{totalPrice}}
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/itemdetail/itemdetail.wxss b/pages/itemdetail/itemdetail.wxss
new file mode 100644
index 0000000..34dc74b
--- /dev/null
+++ b/pages/itemdetail/itemdetail.wxss
@@ -0,0 +1,495 @@
+page {
+ background-color: #FAF6F1;
+}
+
+.container {
+ min-height: 100vh;
+ padding-bottom: constant(safe-area-inset-bottom);
+ padding-bottom: env(safe-area-inset-bottom);
+}
+
+/* 服务图片 */
+.service-image-wrap {
+ width: 100%;
+ height: 420rpx;
+ overflow: hidden;
+}
+
+.service-image {
+ width: 100%;
+ height: 100%;
+}
+
+/* 信息卡片 */
+.info-card {
+ background: #FFFFFF;
+ margin: -40rpx 24rpx 24rpx;
+ border-radius: 20rpx;
+ padding: 32rpx;
+ position: relative;
+ z-index: 10;
+ box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06);
+}
+
+.service-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ margin-bottom: 16rpx;
+}
+
+.service-title-wrap {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 12rpx;
+}
+
+.service-title {
+ font-size: 36rpx;
+ font-weight: 700;
+ color: #1F2937;
+}
+
+.service-tag {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 22rpx;
+ padding: 4rpx 16rpx;
+ border-radius: 8rpx;
+}
+
+.service-price-wrap {
+ display: flex;
+ align-items: baseline;
+}
+
+.price-symbol {
+ font-size: 28rpx;
+ color: #FF9B33;
+ font-weight: 600;
+}
+
+.service-price {
+ font-size: 44rpx;
+ color: #FF9B33;
+ font-weight: 700;
+}
+
+.price-unit {
+ font-size: 24rpx;
+ color: #9CA3AF;
+ margin-left: 4rpx;
+}
+
+.service-subtitle {
+ font-size: 26rpx;
+ color: #6B7280;
+ line-height: 1.5;
+}
+
+/* 详情卡片 */
+.detail-card {
+ background: #FFFFFF;
+ margin: 0 24rpx 24rpx;
+ border-radius: 20rpx;
+ padding: 32rpx;
+ box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04);
+}
+
+.card-title {
+ display: flex;
+ align-items: center;
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #1F2937;
+ margin-bottom: 24rpx;
+}
+
+.card-icon {
+ color: #FF9B33;
+ margin-right: 12rpx;
+}
+
+.detail-content {
+ line-height: 1.8;
+}
+
+.detail-text {
+ font-size: 28rpx;
+ color: #4B5563;
+ line-height: 1.8;
+}
+
+/* 服务流程 */
+.flow-list {
+ display: flex;
+ flex-direction: column;
+ gap: 24rpx;
+}
+
+.flow-item {
+ display: flex;
+ align-items: flex-start;
+ gap: 20rpx;
+}
+
+.flow-number {
+ width: 44rpx;
+ height: 44rpx;
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 24rpx;
+ font-weight: 600;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+}
+
+.flow-content {
+ flex: 1;
+}
+
+.flow-title {
+ display: block;
+ font-size: 28rpx;
+ font-weight: 600;
+ color: #1F2937;
+ margin-bottom: 8rpx;
+}
+
+.flow-desc {
+ display: block;
+ font-size: 26rpx;
+ color: #6B7280;
+ line-height: 1.5;
+}
+
+/* 注意事项 */
+.notice-list {
+ display: flex;
+ flex-direction: column;
+ gap: 16rpx;
+}
+
+.notice-item {
+ display: flex;
+ align-items: flex-start;
+ gap: 16rpx;
+}
+
+.notice-dot {
+ width: 12rpx;
+ height: 12rpx;
+ background: #FF9B33;
+ border-radius: 50%;
+ margin-top: 12rpx;
+ flex-shrink: 0;
+}
+
+.notice-text {
+ font-size: 28rpx;
+ color: #4B5563;
+ line-height: 1.6;
+ flex: 1;
+}
+
+/* 底部占位 */
+.bottom-placeholder {
+ height: 140rpx;
+}
+
+/* 底部下单栏 */
+.bottom-bar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: #FFFFFF;
+ padding: 24rpx 32rpx;
+ padding-bottom: calc(24rpx + constant(safe-area-inset-bottom));
+ padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ box-shadow: 0 -4rpx 20rpx rgba(0, 0, 0, 0.06);
+ z-index: 100;
+}
+
+.price-info {
+ display: flex;
+ align-items: baseline;
+}
+
+.total-label {
+ font-size: 28rpx;
+ color: #6B7280;
+}
+
+.total-price {
+ font-size: 40rpx;
+ color: #FF9B33;
+ font-weight: 700;
+}
+
+.order-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 30rpx;
+ font-weight: 600;
+ padding: 24rpx 56rpx;
+ border-radius: 40rpx;
+ border: none;
+ line-height: 1.5;
+}
+
+.order-btn::after {
+ border: none;
+}
+
+/* 弹窗遮罩 */
+.popup-mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 200;
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 0.3s, visibility 0.3s;
+}
+
+.popup-mask.show {
+ opacity: 1;
+ visibility: visible;
+}
+
+/* 弹窗内容 */
+.popup-content {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: #FFFFFF;
+ border-radius: 24rpx 24rpx 0 0;
+ z-index: 201;
+ transform: translateY(100%);
+ transition: transform 0.3s ease-out;
+ display: flex;
+ flex-direction: column;
+ max-height: 85vh;
+}
+
+.popup-content.show {
+ transform: translateY(0);
+}
+
+.popup-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 32rpx;
+ position: relative;
+ border-bottom: 1rpx solid #F3F4F6;
+ flex-shrink: 0;
+}
+
+.popup-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #1F2937;
+}
+
+.popup-close {
+ position: absolute;
+ right: 32rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ color: #9CA3AF;
+}
+
+.popup-body {
+ flex: 1;
+ overflow-y: auto;
+ padding: 32rpx;
+ max-height: 60vh;
+ width: auto;
+}
+
+/* 弹窗内服务信息 */
+.order-service-info {
+ display: flex;
+ align-items: center;
+ gap: 20rpx;
+ padding-bottom: 24rpx;
+ border-bottom: 1rpx solid #F3F4F6;
+ margin-bottom: 24rpx;
+}
+
+.order-service-image {
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 12rpx;
+ flex-shrink: 0;
+}
+
+.order-service-text {
+ flex: 1;
+}
+
+.order-service-title {
+ display: block;
+ font-size: 30rpx;
+ font-weight: 600;
+ color: #1F2937;
+ margin-bottom: 12rpx;
+}
+
+.order-service-price {
+ display: block;
+ font-size: 32rpx;
+ color: #FF9B33;
+ font-weight: 700;
+}
+
+/* 表单行 */
+.order-row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20rpx 0;
+ border-bottom: 1rpx solid #F3F4F6;
+}
+
+.order-row.column {
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 16rpx;
+}
+
+.order-label {
+ font-size: 28rpx;
+ color: #374151;
+ font-weight: 500;
+ flex-shrink: 0;
+}
+
+.order-input {
+ flex: 1;
+ text-align: right;
+ font-size: 28rpx;
+ color: #1F2937;
+ margin-left: 24rpx;
+}
+
+.input-placeholder {
+ color: #9CA3AF;
+}
+
+.picker-value {
+ font-size: 28rpx;
+ color: #1F2937;
+}
+
+.picker-value.placeholder {
+ color: #9CA3AF;
+}
+
+/* 数量控制 */
+.quantity-control {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+}
+
+.quantity-btn {
+ width: 52rpx;
+ height: 52rpx;
+ background: #F3F4F6;
+ border-radius: 8rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 32rpx;
+ color: #1F2937;
+ font-weight: 600;
+}
+
+.quantity-btn.disabled {
+ color: #CCCCCC;
+ background: #F9FAFB;
+}
+
+.quantity-value {
+ font-size: 30rpx;
+ color: #1F2937;
+ font-weight: 600;
+ min-width: 40rpx;
+ text-align: center;
+}
+
+/* 文本域 */
+.order-textarea {
+ width: 100%;
+ height: 160rpx;
+ background: #F9FAFB;
+ border-radius: 12rpx;
+ padding: 20rpx;
+ font-size: 28rpx;
+ color: #1F2937;
+ box-sizing: border-box;
+}
+
+.textarea-count {
+ font-size: 24rpx;
+ color: #9CA3AF;
+ align-self: flex-end;
+}
+
+/* 弹窗底部 */
+.popup-footer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 24rpx 32rpx;
+ padding-bottom: calc(24rpx + constant(safe-area-inset-bottom));
+ padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
+ border-top: 1rpx solid #F3F4F6;
+ background: #FFFFFF;
+ flex-shrink: 0;
+}
+
+.popup-price {
+ display: flex;
+ align-items: baseline;
+}
+
+.popup-price-label {
+ font-size: 28rpx;
+ color: #6B7280;
+}
+
+.popup-price-value {
+ font-size: 40rpx;
+ color: #FF9B33;
+ font-weight: 700;
+}
+
+.popup-submit-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 30rpx;
+ font-weight: 600;
+ padding: 24rpx 56rpx;
+ border-radius: 40rpx;
+ border: none;
+ line-height: 1.5;
+}
+
+.popup-submit-btn::after {
+ border: none;
+}
diff --git a/pages/mine/comp_address/comp_address.js b/pages/mine/comp_address/comp_address.js
new file mode 100644
index 0000000..16682b6
--- /dev/null
+++ b/pages/mine/comp_address/comp_address.js
@@ -0,0 +1,195 @@
+// pages/mine/comp_address/comp_address.js
+Component({
+ properties: {
+ visible: {
+ type: Boolean,
+ value: false
+ }
+ },
+
+ data: {
+ addresses: [],
+ editData: {
+ _index: -1,
+ label: '',
+ province: '',
+ city: '',
+ district: '',
+ address: '',
+ postcode: '',
+ isDefault: false
+ },
+ isEditing: false
+ },
+
+ observers: {
+ visible(newVal) {
+ if (newVal) {
+ this.initAddressData()
+ }
+ }
+ },
+
+ methods: {
+ initAddressData() {
+ const app = getApp()
+ const user = app.globalData.user || {}
+ const addresses = user.addresses || []
+ this.setData({
+ addresses: addresses.map(item => ({ ...item })),
+ isEditing: false,
+ editData: {
+ _index: -1,
+ label: '',
+ province: '',
+ city: '',
+ district: '',
+ address: '',
+ postcode: '',
+ isDefault: false
+ }
+ })
+ },
+
+ onClose() {
+ this.triggerEvent('close')
+ },
+
+ onSheetTap() {},
+
+ onAddAddress() {
+ this.setData({
+ isEditing: true,
+ editData: {
+ _index: -1,
+ label: '',
+ province: '',
+ city: '',
+ district: '',
+ address: '',
+ postcode: '',
+ isDefault: this.data.addresses.length === 0
+ }
+ })
+ },
+
+ onEditAddress(e) {
+ const index = e.currentTarget.dataset.index
+ const item = this.data.addresses[index]
+ this.setData({
+ isEditing: true,
+ editData: {
+ _index: index,
+ label: item.label || '',
+ province: item.province || '',
+ city: item.city || '',
+ district: item.district || '',
+ address: item.address || '',
+ postcode: item.postcode || '',
+ isDefault: item.isDefault || false
+ }
+ })
+ },
+
+ onDeleteAddress(e) {
+ const index = e.currentTarget.dataset.index
+ wx.showModal({
+ title: '提示',
+ content: '确定删除该地址吗?',
+ success: (res) => {
+ if (res.confirm) {
+ const addresses = this.data.addresses.slice()
+ addresses.splice(index, 1)
+ if (addresses.length > 0 && !addresses.some(a => a.isDefault)) {
+ addresses[0].isDefault = true
+ }
+ this.setData({ addresses })
+ this.triggerEvent('save', { addresses })
+ }
+ }
+ })
+ },
+
+ onSetDefault(e) {
+ const index = e.currentTarget.dataset.index
+ const addresses = this.data.addresses.map((item, i) => ({
+ ...item,
+ isDefault: i === index
+ }))
+ this.setData({ addresses })
+ this.triggerEvent('save', { addresses })
+ },
+
+ onBackToList() {
+ this.setData({ isEditing: false })
+ },
+
+ onRegionChange(e) {
+ const region = e.detail.value
+ this.setData({
+ 'editData.province': region[0] || '',
+ 'editData.city': region[1] || '',
+ 'editData.district': region[2] || ''
+ })
+ },
+
+ onFieldInput(e) {
+ const field = e.currentTarget.dataset.field
+ this.setData({
+ [`editData.${field}`]: e.detail.value
+ })
+ },
+
+ onDefaultChange(e) {
+ this.setData({
+ 'editData.isDefault': e.detail.value
+ })
+ },
+
+ onSaveEdit() {
+ const editData = this.data.editData
+ if (!editData.label.trim()) {
+ wx.showToast({ title: '请输入地址标签', icon: 'none' })
+ return
+ }
+ if (!editData.province || !editData.city || !editData.district) {
+ wx.showToast({ title: '请选择所在地区', icon: 'none' })
+ return
+ }
+ if (!editData.address.trim()) {
+ wx.showToast({ title: '请输入详细地址', icon: 'none' })
+ return
+ }
+
+ const addresses = this.data.addresses.slice()
+ const newItem = {
+ label: editData.label.trim(),
+ province: editData.province,
+ city: editData.city,
+ district: editData.district,
+ address: editData.address.trim(),
+ postcode: editData.postcode.trim(),
+ isDefault: editData.isDefault
+ }
+
+ if (editData.isDefault) {
+ addresses.forEach(item => { item.isDefault = false })
+ }
+
+ if (editData._index >= 0) {
+ addresses[editData._index] = newItem
+ } else {
+ if (addresses.length === 0) {
+ newItem.isDefault = true
+ }
+ addresses.push(newItem)
+ }
+
+ this.setData({
+ addresses,
+ isEditing: false
+ })
+ this.triggerEvent('save', { addresses })
+ }
+ }
+})
diff --git a/pages/mine/comp_address/comp_address.json b/pages/mine/comp_address/comp_address.json
new file mode 100644
index 0000000..3fb9848
--- /dev/null
+++ b/pages/mine/comp_address/comp_address.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "t-icon": "tdesign-miniprogram/icon/icon"
+ }
+}
diff --git a/pages/mine/comp_address/comp_address.wxml b/pages/mine/comp_address/comp_address.wxml
new file mode 100644
index 0000000..aea54e0
--- /dev/null
+++ b/pages/mine/comp_address/comp_address.wxml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+ 暂无地址,点击添加
+
+
+
+
+
+
+ {{item.label}}
+ 默认
+
+
+ {{item.province}} {{item.city}} {{item.district}}
+ {{item.address}}
+ 邮编:{{item.postcode}}
+
+
+
+
+
+ {{item.isDefault ? '默认地址' : '设为默认'}}
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+ 地址标签
+
+
+
+
+ 所在地区
+
+
+ {{editData.province || '请选择地区'}}{{editData.city ? ' ' + editData.city : ''}}{{editData.district ? ' ' + editData.district : ''}}
+
+
+
+
+
+ 详细地址
+
+
+
+
+ 设为默认地址
+
+
+
+
+
+
+
+
diff --git a/pages/mine/comp_address/comp_address.wxss b/pages/mine/comp_address/comp_address.wxss
new file mode 100644
index 0000000..e030be3
--- /dev/null
+++ b/pages/mine/comp_address/comp_address.wxss
@@ -0,0 +1,237 @@
+.address-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 1000;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+}
+
+.address-sheet {
+ background: #FFFFFF;
+ border-radius: 32rpx 32rpx 0 0;
+ padding-bottom: env(safe-area-inset-bottom);
+ animation: slideUp 0.3s ease;
+ max-height: 85vh;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+}
+
+@keyframes slideUp {
+ from { transform: translateY(100%); }
+ to { transform: translateY(0); }
+}
+
+.address-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 32rpx;
+ position: relative;
+ border-bottom: 1rpx solid #F5F5F5;
+ flex-shrink: 0;
+}
+
+.address-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #1A1A1A;
+}
+
+.address-back {
+ position: absolute;
+ left: 32rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ padding: 8rpx;
+}
+
+.address-close {
+ position: absolute;
+ right: 32rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ padding: 8rpx;
+}
+
+.address-body {
+ flex: 1;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+}
+
+.address-empty {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 120rpx 32rpx;
+}
+
+.address-empty-text {
+ margin-top: 24rpx;
+ font-size: 28rpx;
+ color: #999999;
+}
+
+.address-list {
+ padding: 24rpx 32rpx;
+}
+
+.address-card {
+ background: #FAFAFA;
+ border-radius: 16rpx;
+ padding: 24rpx;
+ margin-bottom: 24rpx;
+}
+
+.address-card-main {
+ margin-bottom: 16rpx;
+}
+
+.address-card-top {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+ margin-bottom: 12rpx;
+}
+
+.address-label {
+ font-size: 30rpx;
+ font-weight: 600;
+ color: #1A1A1A;
+}
+
+.address-default-tag {
+ font-size: 22rpx;
+ color: #FF8500;
+ background: rgba(255, 133, 0, 0.1);
+ padding: 4rpx 12rpx;
+ border-radius: 8rpx;
+}
+
+.address-card-content {
+ display: flex;
+ flex-direction: column;
+ gap: 8rpx;
+}
+
+.address-region {
+ font-size: 28rpx;
+ color: #666666;
+}
+
+.address-detail {
+ font-size: 28rpx;
+ color: #1A1A1A;
+ line-height: 1.5;
+}
+
+.address-postcode {
+ font-size: 24rpx;
+ color: #999999;
+}
+
+.address-card-actions {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-top: 1rpx solid #EEEEEE;
+ padding-top: 16rpx;
+}
+
+.address-action-default,
+.address-action-delete {
+ display: flex;
+ align-items: center;
+ gap: 8rpx;
+ padding: 8rpx;
+}
+
+.action-text {
+ font-size: 26rpx;
+ color: #666666;
+}
+
+.action-text.active {
+ color: #FF8500;
+}
+
+.address-footer {
+ padding: 4rpx 32rpx 48rpx;
+ flex-shrink: 0;
+}
+
+.address-add-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 30rpx;
+ font-weight: 600;
+ padding: 28rpx;
+ border-radius: 20rpx;
+ border: none;
+ line-height: 1.5;
+}
+
+.address-add-btn::after {
+ border: none;
+}
+
+.address-form {
+ padding: 0 32rpx;
+}
+
+.form-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ min-height: 100rpx;
+ border-bottom: 1rpx solid #F5F5F5;
+}
+
+.form-item-switch {
+ justify-content: space-between;
+}
+
+.form-label {
+ font-size: 30rpx;
+ color: #1A1A1A;
+ font-weight: 500;
+ flex-shrink: 0;
+ margin-right: 24rpx;
+}
+
+.form-input {
+ flex: 1;
+ text-align: right;
+ font-size: 30rpx;
+ color: #1A1A1A;
+}
+
+.form-picker {
+ flex: 1;
+ text-align: right;
+ font-size: 30rpx;
+ color: #666666;
+}
+
+.address-save-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 30rpx;
+ font-weight: 600;
+ padding: 28rpx;
+ border-radius: 20rpx;
+ border: none;
+ line-height: 1.5;
+}
+
+.address-save-btn::after {
+ border: none;
+}
diff --git a/pages/mine/comp_profile/comp_profile.js b/pages/mine/comp_profile/comp_profile.js
new file mode 100644
index 0000000..8863658
--- /dev/null
+++ b/pages/mine/comp_profile/comp_profile.js
@@ -0,0 +1,135 @@
+// pages/mine/comp_profile/comp_profile.js
+Component({
+ properties: {
+ visible: {
+ type: Boolean,
+ value: false
+ }
+ },
+
+ data: {
+ editData: {
+ name: '',
+ sex: 'male',
+ birth: '1970-1-1',
+ province: '',
+ city: '',
+ district: '',
+ phone: ''
+ },
+ today: ''
+ },
+
+ lifetimes: {
+ attached() {
+ const today = new Date()
+ this.setData({
+ today: `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`
+ })
+ },
+ ready() {
+ this.initEditData()
+ }
+ },
+
+ observers: {
+ visible(newVal) {
+ if (newVal) {
+ this.initEditData()
+ }
+ }
+ },
+
+ methods: {
+ initEditData() {
+ const app = getApp()
+ const user = app.globalData.user || {}
+ const profile = user.profile || {}
+ const location = user.location || {}
+
+ let birth = ''
+ if (profile.birth) {
+ const date = new Date(profile.birth)
+ birth = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`
+ }
+
+ this.setData({
+ editData: {
+ avatar: profile.avatar || '/images/home-active2.png',
+ name: profile.name || '',
+ phone: profile.mobile || '',
+ sex: profile.sex || '',
+ birth: birth,
+ province: location.province || '',
+ city: location.city || '',
+ district: location.district || ''
+ }
+ })
+ },
+
+ onClose() {
+ this.triggerEvent('close')
+ },
+
+ onSheetTap() {},
+
+ onChooseAvatar() {
+ wx.chooseMedia({
+ count: 1,
+ mediaType: ['image'],
+ sourceType: ['album', 'camera'],
+ success: (res) => {
+ const tempFilePath = res.tempFiles[0].tempFilePath
+ this.setData({
+ 'editData.avatar': tempFilePath
+ })
+ }
+ })
+ },
+
+ onSelectSex(e) {
+ const sex = e.currentTarget.dataset.sex
+ this.setData({
+ 'editData.sex': sex
+ })
+ },
+
+ onBirthChange(e) {
+ this.setData({
+ 'editData.birth': e.detail.value
+ })
+ },
+
+ onRegionChange(e) {
+ const region = e.detail.value
+ this.setData({
+ 'editData.province': region[0] || '',
+ 'editData.city': region[1] || '',
+ 'editData.district': region[2] || ''
+ })
+ },
+
+ onFieldInput(e) {
+ const field = e.currentTarget.dataset.field
+ this.setData({
+ [`editData.${field}`]: e.detail.value
+ })
+ },
+
+ onSave() {
+ const editData = this.data.editData
+
+ if (editData.idnumber && editData.idnumber.length !== 18) {
+ wx.showToast({
+ title: '身份证号应为18位',
+ icon: 'none'
+ })
+ return
+ }
+
+ this.triggerEvent('save', {
+ editData: editData
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/mine/comp_profile/comp_profile.json b/pages/mine/comp_profile/comp_profile.json
new file mode 100644
index 0000000..3fb9848
--- /dev/null
+++ b/pages/mine/comp_profile/comp_profile.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "t-icon": "tdesign-miniprogram/icon/icon"
+ }
+}
diff --git a/pages/mine/comp_profile/comp_profile.wxml b/pages/mine/comp_profile/comp_profile.wxml
new file mode 100644
index 0000000..a4b6af0
--- /dev/null
+++ b/pages/mine/comp_profile/comp_profile.wxml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 头像
+
+
+
+
+
+
+
+ 姓名
+
+
+
+
+ 性别
+
+
+ 男
+
+
+ 女
+
+
+
+
+
+ 出生日期
+
+
+ {{editData.birth || '请选择出生日期'}}
+
+
+
+
+
+ 所在地区
+
+
+ {{editData.province || '请选择地区'}}{{editData.city ? ',' + editData.city : ''}}{{editData.district ? ',' + editData.district : ''}}
+
+
+
+
+
+ 手机号
+ {{editData.phone || '未绑定'}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/mine/comp_profile/comp_profile.wxss b/pages/mine/comp_profile/comp_profile.wxss
new file mode 100644
index 0000000..b83fd64
--- /dev/null
+++ b/pages/mine/comp_profile/comp_profile.wxss
@@ -0,0 +1,158 @@
+.profile-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 1000;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+}
+
+.profile-sheet {
+ background: #FFFFFF;
+ border-radius: 32rpx 32rpx 0 0;
+ padding-bottom: env(safe-area-inset-bottom);
+ animation: slideUp 0.3s ease;
+ max-height: 85vh;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+}
+
+@keyframes slideUp {
+ from { transform: translateY(100%); }
+ to { transform: translateY(0); }
+}
+
+.profile-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 32rpx;
+ position: relative;
+ border-bottom: 1rpx solid #F5F5F5;
+ flex-shrink: 0;
+}
+
+.profile-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #1A1A1A;
+}
+
+.profile-close {
+ position: absolute;
+ right: 32rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ padding: 8rpx;
+}
+
+.profile-body {
+ padding: 0 32rpx;
+ flex: 1;
+ overflow-y: auto;
+}
+
+.profile-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ min-height: 100rpx;
+ border-bottom: 1rpx solid #F5F5F5;
+}
+
+.profile-item-avatar {
+ justify-content: space-between;
+}
+
+.profile-item-last {
+ border-bottom: none;
+}
+
+.profile-label {
+ font-size: 30rpx;
+ color: #1A1A1A;
+ font-weight: 500;
+ flex-shrink: 0;
+ margin-right: 24rpx;
+}
+
+.profile-input {
+ flex: 1;
+ text-align: right;
+ font-size: 30rpx;
+ color: #1A1A1A;
+}
+
+.picker {
+ flex: 1;
+ text-align: right;
+ font-size: 30rpx;
+ color: #666666;
+}
+
+.profile-value {
+ font-size: 30rpx;
+ color: #666666;
+}
+
+.profile-avatar-wrap {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+}
+
+.profile-avatar {
+ width: 96rpx;
+ height: 96rpx;
+ border-radius: 50%;
+ background: #F5F5F5;
+}
+
+.profile-sex-wrap {
+ display: flex;
+ gap: 20rpx;
+}
+
+.profile-sex-tag {
+ padding: 10rpx 48rpx;
+ border-radius: 8rpx;
+ background: #F5F5F5;
+}
+
+.profile-sex-tag-active {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+}
+
+.profile-sex-text {
+ font-size: 28rpx;
+ color: #666666;
+}
+
+.profile-sex-tag-active .profile-sex-text {
+ color: #FFFFFF;
+}
+
+.profile-footer {
+ padding: 4rpx 32rpx 48rpx;
+ flex-shrink: 0;
+}
+
+.profile-save-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 30rpx;
+ font-weight: 600;
+ padding: 28rpx;
+ border-radius: 20rpx;
+ border: none;
+ line-height: 1.5;
+}
+
+.profile-save-btn::after {
+ border: none;
+}
\ No newline at end of file
diff --git a/pages/mine/mine.js b/pages/mine/mine.js
new file mode 100644
index 0000000..ffad0bf
--- /dev/null
+++ b/pages/mine/mine.js
@@ -0,0 +1,228 @@
+const API = require('../../utils/api.js')
+
+Page({
+ data: {
+ userInfo: {
+ avatar: '/images/home-active2.png',
+ name: '用户',
+ phone: '',
+ sex: '',
+ birth: '',
+ email: '',
+ idnumber: '',
+ ssn: '',
+ isLoggedIn: false
+ },
+ profileVisible: false,
+ menuGroups: [{
+ groupName: '个人服务',
+ items: [{
+ name: '个人信息',
+ icon: 'verify',
+ bindtap: 'onTapProfile'
+ }, {
+ name: '健康档案',
+ icon: 'user-vip',
+ bindtap: 'onTapHealth'
+ }, {
+ name: '邮寄地址',
+ icon: 'location',
+ bindtap: 'onTapAddress'
+ }]
+ }, {
+ groupName: '陪诊',
+ items: [{
+ name: '陪诊记录',
+ icon: 'assignment',
+ bindtap: 'onTapEscortRecord'
+ }]
+ }, {
+ groupName: '其他',
+ items: [{
+ name: '关于我们',
+ icon: 'info-circle',
+ bindtap: 'onTapAboutUs'
+ }]
+ }]
+ },
+
+ onLoad() {
+ this.loadUserInfo()
+ },
+
+ onShow() {
+ this.loadUserInfo()
+ },
+
+ loadUserInfo() {
+ const app = getApp()
+ if (app.globalData.user && app.globalData.user.profile) {
+ const profile = app.globalData.user.profile
+ this.setData({
+ 'userInfo.isLoggedIn': true,
+ 'userInfo.name': profile.name || '用户',
+ 'userInfo.phone': profile.mobile || '',
+ 'userInfo.sex': profile.sex || '',
+ 'userInfo.birth': profile.birth ? this.formatDate(profile.birth) : '',
+ 'userInfo.email': profile.email || '',
+ 'userInfo.idnumber': profile.idnumber || '',
+ 'userInfo.ssn': profile.ssn || ''
+ })
+ }
+ },
+
+ formatDate(date) {
+ if (!date) return ''
+ const d = new Date(date)
+ const year = d.getFullYear()
+ const month = String(d.getMonth() + 1).padStart(2, '0')
+ const day = String(d.getDate()).padStart(2, '0')
+ return `${year}-${month}-${day}`
+ },
+
+ onTapProfile() {
+ this.setData({ profileVisible: true })
+ },
+
+ onTapAddress() {
+ this.setData({ addressVisible: true })
+ },
+
+ onAddressClose() {
+ this.setData({ addressVisible: false })
+ },
+
+ onAddressSave(e) {
+ const app = getApp()
+ const user = app.globalData.user
+
+ if (!user || !user._id) {
+ wx.showToast({ title: '请先登录', icon: 'none' })
+ return
+ }
+
+ wx.showLoading({ title: '保存中...' })
+
+ const updateData = {
+ _id: user._id,
+ addresses: e.detail.addresses
+ }
+
+ API.user.update(updateData)
+ .then((data) => {
+ if (data.code === 0) {
+ app.globalData.user = data.data.user
+ wx.showToast({ title: '保存成功', icon: 'success' })
+ } else {
+ wx.showToast({ title: data.msg || '保存失败', icon: 'none' })
+ }
+ })
+ .catch(() => {
+ wx.showToast({ title: '网络请求失败', icon: 'none' })
+ })
+ .finally(() => {
+ wx.hideLoading()
+ })
+ },
+
+ onTapHealth() {
+ this.setData({ healthVisible: true })
+ },
+
+ onHealthClose() {
+ this.setData({ healthVisible: false })
+ },
+
+ onTapEscortRecord() {
+ wx.navigateTo({
+ url: '/pages/escort_record_list/escort_record_list'
+ })
+ },
+
+ onTapSetting() {
+ this.setData({ settingVisible: true })
+ },
+
+ onSettingClose() {
+ this.setData({ settingVisible: false })
+ },
+
+ onProfileClose() {
+ this.setData({ profileVisible: false })
+ },
+
+ onProfileSave(e) {
+ const newUserInfo = e.detail.editData
+ const app = getApp()
+ const user = app.globalData.user
+
+ if (!user || !user._id) {
+ wx.showToast({ title: '请先登录', icon: 'none' })
+ return
+ }
+
+ wx.showLoading({ title: '保存中...' })
+
+ const updateData = {
+ _id: user._id,
+ profile: {
+ name: newUserInfo.name,
+ sex: newUserInfo.sex,
+ birth: newUserInfo.birth ? new Date(newUserInfo.birth).toISOString() : null,
+ mobile: newUserInfo.phone
+ },
+ location: {
+ province: newUserInfo.province,
+ city: newUserInfo.city,
+ district: newUserInfo.district,
+ },
+ }
+
+ API.user.update(updateData)
+ .then((data) => {
+ if (data.code === 0) {
+ app.globalData.user = data.data.user
+ this.loadUserInfo()
+ wx.showToast({ title: '保存成功', icon: 'success' })
+ this.setData({ profileVisible: false })
+ } else {
+ wx.showToast({ title: data.msg || '保存失败', icon: 'none' })
+ }
+ })
+ .catch(() => {
+ wx.showToast({ title: '网络请求失败', icon: 'none' })
+ })
+ .finally(() => {
+ wx.hideLoading()
+ })
+ },
+
+ handleLogin(e) {
+ const phoneCode = e.detail.code ? e.detail.code : ''
+ API.user.wxGetPhoneNumber({ code: phoneCode })
+ .then((data) => {
+ const phoneNumber = data.data.phoneNumber
+ wx.setStorageSync('user_phonenumber', phoneNumber)
+ wx.login({
+ success: (res) => {
+ if (res.code) {
+ API.user.wxSignin({ phoneNumber, code: res.code })
+ .then((data) => {
+ if (data.code == 0) {
+ const app = getApp()
+ app.globalData.user = data.data.user
+ this.loadUserInfo()
+ }
+ })
+ } else {
+ console.log('登录失败!' + res.errMsg)
+ }
+ }
+ })
+ })
+ .catch((err) => {
+ wx.showToast({ title: '网络请求失败', icon: 'none' })
+ console.log('请求失败', err)
+ })
+ }
+})
\ No newline at end of file
diff --git a/pages/mine/mine.json b/pages/mine/mine.json
new file mode 100644
index 0000000..c1c4d1a
--- /dev/null
+++ b/pages/mine/mine.json
@@ -0,0 +1,11 @@
+{
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "Home",
+ "navigationBarBackgroundColor": "#ffffff",
+ "navigationBarTextStyle": "black",
+ "usingComponents": {
+ "t-icon": "tdesign-miniprogram/icon/icon",
+ "comp-profile": "./comp_profile/comp_profile",
+ "comp-address": "./comp_address/comp_address"
+ }
+}
\ No newline at end of file
diff --git a/pages/mine/mine.wxml b/pages/mine/mine.wxml
new file mode 100644
index 0000000..8a07361
--- /dev/null
+++ b/pages/mine/mine.wxml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/mine/mine.wxss b/pages/mine/mine.wxss
new file mode 100644
index 0000000..dbf1833
--- /dev/null
+++ b/pages/mine/mine.wxss
@@ -0,0 +1,153 @@
+page {
+ background-color: #F5F5F5;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+}
+
+.container {
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+}
+
+.header-card {
+ background: #FFFFFF;
+ padding: 150rpx 32rpx 48rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.avatar {
+ width: 120rpx;
+ height: 120rpx;
+}
+
+.user-name {
+ font-size: 36rpx;
+ font-weight: 600;
+ color: #1A1A1A;
+ margin-top: 24rpx;
+}
+
+.user-phone {
+ font-size: 26rpx;
+ color: #999999;
+ margin-top: 12rpx;
+}
+
+
+.login-section {
+ padding: 32rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+}
+
+.login-btn {
+ background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%);
+ color: #FFFFFF;
+ font-size: 30rpx;
+ font-weight: 600;
+ padding: 28rpx;
+ border-radius: 20rpx;
+ border: none;
+ line-height: 1.5;
+}
+
+.login-btn::after {
+ border: none;
+}
+
+.avatar-btn {
+ background: #FFFFFF;
+ color: #FF9B33;
+ font-size: 28rpx;
+ font-weight: 500;
+ padding: 24rpx;
+ border-radius: 20rpx;
+ border: 1rpx solid #FF9B33;
+ line-height: 1.5;
+}
+
+.avatar-btn::after {
+ border: none;
+}
+
+.nickname-input-wrap {
+ background: #FFFFFF;
+ border-radius: 20rpx;
+ padding: 24rpx 32rpx;
+}
+
+.nickname-input {
+ font-size: 28rpx;
+ color: #1F2937;
+}
+
+.menu-section {
+ padding: 24rpx 22rpx 0rpx 22rpx;
+}
+
+.menu-group-header {
+ font-size: 26rpx;
+ color: #999999;
+ padding: 16rpx 0;
+ margin-bottom: 16rpx;
+}
+
+.menu-list {
+ background: #FFFFFF;
+ border-radius: 16rpx;
+ overflow: hidden;
+ box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.04);
+}
+
+.menu-item {
+ display: flex;
+ align-items: center;
+ padding: 32rpx;
+ border-bottom: 1rpx solid #F5F5F5;
+}
+
+.menu-item:last-child {
+ border-bottom: none;
+}
+
+.menu-item-hover {
+ background: #FAFAFA;
+}
+
+.menu-icon {
+ color: #FF9B33;
+ margin-right: 24rpx;
+}
+
+.menu-text {
+ flex: 1;
+ font-size: 30rpx;
+ color: #1A1A1A;
+ font-weight: 500;
+}
+
+.menu-arrow {
+ color: #CCCCCC;
+}
+
+.footer-section {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 60rpx 32rpx;
+ margin-top: auto;
+}
+
+.version {
+ font-size: 24rpx;
+ color: #B0B0B0;
+ margin-bottom: 12rpx;
+}
+
+.copyright {
+ font-size: 22rpx;
+ color: #B0B0B0;
+}
\ No newline at end of file
diff --git a/project.config.json b/project.config.json
new file mode 100644
index 0000000..fbd3e86
--- /dev/null
+++ b/project.config.json
@@ -0,0 +1,35 @@
+{
+ "setting": {
+ "es6": true,
+ "postcss": true,
+ "minified": true,
+ "uglifyFileName": false,
+ "enhance": true,
+ "packNpmRelationList": [],
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "useCompilerPlugins": false,
+ "minifyWXML": true,
+ "compileWorklet": false,
+ "uploadWithSourceMap": true,
+ "packNpmManually": false,
+ "minifyWXSS": true,
+ "localPlugins": false,
+ "disableUseStrict": false,
+ "condition": false,
+ "swc": false,
+ "disableSWC": true
+ },
+ "compileType": "miniprogram",
+ "simulatorPluginLibVersion": {},
+ "packOptions": {
+ "ignore": [],
+ "include": []
+ },
+ "appid": "wxf73c79e16837af07",
+ "editorSetting": {},
+ "libVersion": "3.15.2"
+}
\ No newline at end of file
diff --git a/project.private.config.json b/project.private.config.json
new file mode 100644
index 0000000..edc748c
--- /dev/null
+++ b/project.private.config.json
@@ -0,0 +1,21 @@
+{
+ "libVersion": "3.15.2",
+ "projectname": "wxapp",
+ "setting": {
+ "urlCheck": false,
+ "coverView": true,
+ "lazyloadPlaceholderEnable": false,
+ "skylineRenderEnable": false,
+ "preloadBackgroundData": false,
+ "autoAudits": true,
+ "showShadowRootInWxmlPanel": true,
+ "compileHotReLoad": true,
+ "useApiHook": true,
+ "useStaticServer": false,
+ "useLanDebug": false,
+ "showES6CompileOption": false,
+ "checkInvalidKey": true,
+ "ignoreDevUnusedFiles": true,
+ "bigPackageSizeSupport": false
+ }
+}
\ No newline at end of file
diff --git a/sitemap.json b/sitemap.json
new file mode 100644
index 0000000..55d1d29
--- /dev/null
+++ b/sitemap.json
@@ -0,0 +1,7 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [{
+ "action": "allow",
+ "page": "*"
+ }]
+}
diff --git a/utils/api.js b/utils/api.js
new file mode 100644
index 0000000..548deb1
--- /dev/null
+++ b/utils/api.js
@@ -0,0 +1,29 @@
+const request = require('./request.js')
+
+const API = {
+ user: {
+ wxGetPhoneNumber: (data) => request.post('/user/wxgetphonenumber', data),
+ wxSignin: (data) => request.post('/user/wxsignin', data),
+ signout: (data) => request.post('/user/signout', data),
+ update: (data) => request.post('/user/update', data),
+ },
+
+ escort: {
+ getMyRecords: (params) => request.get('/health/escort-record/my', params),
+ getAttendantRecords: (params) => request.get('/health/escort-record/attendant', params),
+ getRecordById: (id) => request.get(`/health/escort-record/${id}`),
+ createRecord: (data) => request.post('/health/escort-record', data),
+ updateRecord: (id, data) => request.put(`/health/escort-record/${id}`, data),
+ updateStatus: (id, data) => request.patch(`/health/escort-record/${id}/status`, data),
+ },
+
+ resource: {
+ getServices: (params) => request.get('/health/service', params),
+ },
+
+ ai: {
+ chat: (data) => request.post('/ai/chat', data),
+ },
+}
+
+module.exports = API
\ No newline at end of file
diff --git a/utils/chatmsg.js b/utils/chatmsg.js
new file mode 100644
index 0000000..dafcea1
--- /dev/null
+++ b/utils/chatmsg.js
@@ -0,0 +1,222 @@
+const WS_BASE_URL = 'wss://api.huashengtec.com/health-ws'
+//const WS_BASE_URL = 'ws://127.0.0.1:9005'
+
+class AIChatSocket {
+ constructor(url = `${WS_BASE_URL}/chat`, options = {}) {
+ this.url = url
+ this.options = {
+ timeout: 10000,
+ heartbeatInterval: 30000,
+ autoReconnect: true,
+ maxReconnectAttempts: 3,
+ reconnectDelay: 3000,
+ ...options
+ }
+
+ this.socketTask = null
+ this.isConnected = false
+ this.isConnecting = false
+ this.messageQueue = []
+ this.reconnectAttempts = 0
+
+ this._openCallback = null
+ this._closeCallback = null
+ this._errorCallback = null
+ this._messageCallback = null
+ this._heartbeatTimer = null
+ }
+
+ connect() {
+ if (this.isConnected || this.isConnecting) {
+ console.log('[AIChatSocket] Already connected or connecting')
+ return Promise.resolve()
+ }
+
+ this.isConnecting = true
+
+ return new Promise((resolve, reject) => {
+ this.socketTask = wx.connectSocket({
+ url: this.url,
+ header: {
+ 'content-type': 'application/json',
+ ...this.options.header
+ },
+ protocols: this.options.protocols || [],
+ success: () => {
+ console.log('[AIChatSocket] WebSocket connecting...')
+ },
+ fail: (err) => {
+ this.isConnecting = false
+ console.error('[AIChatSocket] Connect failed:', err)
+ reject(err)
+ }
+ })
+
+ if (!this.socketTask) {
+ this.isConnecting = false
+ reject(new Error('SocketTask creation failed'))
+ return
+ }
+
+ this.socketTask.onOpen(() => {
+ console.log('[AIChatSocket] Connection opened')
+ this.isConnected = true
+ this.isConnecting = false
+ this.reconnectAttempts = 0
+ this._startHeartbeat()
+
+ this._flushMessageQueue()
+
+ if (this._openCallback) {
+ this._openCallback()
+ }
+ resolve()
+ })
+
+ this.socketTask.onClose((res) => {
+ console.log('[AIChatSocket] Connection closed:', res)
+ this.isConnected = false
+ this.isConnecting = false
+ this._stopHeartbeat()
+
+ if (this._closeCallback) {
+ this._closeCallback(res)
+ }
+
+ if (this.options.autoReconnect && this.reconnectAttempts < this.options.maxReconnectAttempts) {
+ this._reconnect()
+ }
+ })
+
+ this.socketTask.onError((err) => {
+ console.error('[AIChatSocket] WebSocket error:', err)
+ this.isConnected = false
+ this.isConnecting = false
+
+ if (this._errorCallback) {
+ this._errorCallback(err)
+ }
+ })
+
+ this.socketTask.onMessage((res) => {
+ try {
+ const data = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
+ if (this._messageCallback) {
+ this._messageCallback(data)
+ }
+ } catch (e) {
+ if (this._messageCallback) {
+ this._messageCallback(res.data)
+ }
+ }
+ })
+ })
+ }
+
+ send(data) {
+ const message = typeof data === 'string' ? data : JSON.stringify(data)
+
+ if (!this.isConnected || !this.socketTask) {
+ console.log('[AIChatSocket] Not connected, queueing message')
+ this.messageQueue.push(message)
+ return false
+ }
+
+ try {
+ this.socketTask.send({
+ data: message,
+ fail: (err) => {
+ console.error('[AIChatSocket] Send failed:', err)
+ this.messageQueue.push(message)
+ }
+ })
+ return true
+ } catch (err) {
+ console.error('[AIChatSocket] Send error:', err)
+ this.messageQueue.push(message)
+ return false
+ }
+ }
+
+ close() {
+ this._stopHeartbeat()
+ this.options.autoReconnect = false
+
+ if (this.socketTask) {
+ this.socketTask.close({
+ code: 1000,
+ reason: 'User closed',
+ fail: (err) => {
+ console.error('[AIChatSocket] Close failed:', err)
+ }
+ })
+ this.socketTask = null
+ }
+
+ this.isConnected = false
+ this.isConnecting = false
+ this.messageQueue = []
+ }
+
+ onOpen(callback) {
+ this._openCallback = callback
+ }
+
+ onClose(callback) {
+ this._closeCallback = callback
+ }
+
+ onError(callback) {
+ this._errorCallback = callback
+ }
+
+ onMessage(callback) {
+ this._messageCallback = callback
+ }
+
+ _flushMessageQueue() {
+ if (this.messageQueue.length === 0) return
+
+ console.log(`[AIChatSocket] Flushing ${this.messageQueue.length} queued messages`)
+ while (this.messageQueue.length > 0) {
+ const message = this.messageQueue.shift()
+ this.send(message)
+ }
+ }
+
+ _reconnect() {
+ this.reconnectAttempts++
+ console.log(`[AIChatSocket] Reconnecting... Attempt ${this.reconnectAttempts}/${this.options.maxReconnectAttempts}`)
+
+ setTimeout(() => {
+ this.connect().catch((err) => {
+ console.error('[AIChatSocket] Reconnect failed:', err)
+ })
+ }, this.options.reconnectDelay)
+ }
+
+ _startHeartbeat() {
+ this._stopHeartbeat()
+
+ this._heartbeatTimer = setInterval(() => {
+ if (this.isConnected && this.socketTask) {
+ this.socketTask.send({
+ data: JSON.stringify({ type: 'ping' }),
+ fail: (err) => {
+ console.error('[AIChatSocket] Heartbeat failed:', err)
+ this._stopHeartbeat()
+ }
+ })
+ }
+ }, this.options.heartbeatInterval)
+ }
+
+ _stopHeartbeat() {
+ if (this._heartbeatTimer) {
+ clearInterval(this._heartbeatTimer)
+ this._heartbeatTimer = null
+ }
+ }
+}
+
+module.exports = AIChatSocket
\ No newline at end of file
diff --git a/utils/request.js b/utils/request.js
new file mode 100644
index 0000000..4312e38
--- /dev/null
+++ b/utils/request.js
@@ -0,0 +1,52 @@
+class Request {
+
+ constructor(baseURL = 'https://api.huashengtec.com') {
+ //constructor(baseURL = 'http://127.0.0.1:9010') {
+ this.baseURL = baseURL
+ }
+
+ request(options) {
+ return new Promise((resolve, reject) => {
+ const { url, method = 'GET', data = {}, header = {}, ...rest } = options
+
+ const app = getApp()
+ const token = app?.globalData?.user?.security?.token || ''
+
+ data.appId = 'wxapp-escort'
+
+ wx.request({
+ url: url.startsWith('http') ? url : `${this.baseURL}${url}`,
+ method,
+ data,
+ header: {
+ 'Content-Type': 'application/json',
+ ...(token ? { 'token': token } : {}),
+ ...header
+ },
+ ...rest,
+ success: (res) => {
+ if (res.statusCode >= 200 && res.statusCode < 300) {
+ resolve(res.data)
+ } else {
+ reject(new Error(`HTTP ${res.statusCode}`))
+ }
+ },
+ fail: (err) => {
+ reject(err)
+ }
+ })
+ })
+ }
+
+ get(url, params = {}, options = {}) {
+ return this.request({ url, method: 'GET', data: params, ...options })
+ }
+
+ post(url, data = {}, options = {}) {
+ return this.request({ url, method: 'POST', data, ...options })
+ }
+}
+
+const request = new Request()
+
+module.exports = request
\ No newline at end of file