diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/01-\344\272\213\344\273\266\345\276\252\347\216\257.md" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/01-\344\272\213\344\273\266\345\276\252\347\216\257.md"
new file mode 100644
index 000000000..6b6e08b8a
--- /dev/null
+++ "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/01-\344\272\213\344\273\266\345\276\252\347\216\257.md"
@@ -0,0 +1,115 @@
+# 事件循环
+
+事件循环,在W3C中描述为 `Event Loop`,Chrome的实现源码中定义为 `Message Loop`,因此事件循环也称为消息循环,是**浏览器渲染主线程**的工作方式。
+
+
+
+## 1. 浏览器的进程模型
+
+浏览器是一个多进程多线程的应用程序,核心的进程是**浏览器进程**、**网络进程**、**渲染进程**
+
+**浏览器进程**:负责浏览器软件的UI界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同任务。
+
+**网络进程**:负责加载网络资源。
+
+**渲染进程**:(重点) 渲染进程启动后,会开启一个**渲染主线程**,主线程负责执行 HTML、CSS、JS。默认情况下,浏览器会为每个标签页开启一个**新的渲染进程**,以保证标签页隔离 (未来可能改为一个站点一个进程)。
+
+
+
+## 2. 渲染主线程的异步处理
+
+渲染主线程是浏览器中最繁忙的线程,处理的任务包括但不限于:
+
++ 解析 HTML
++ 解析 CSS
++ 计算样式
++ 布局
++ 处理图层
++ 帧绘制
++ 执行全局 JS 代码
++ 执行事件处理函数
++ 执行计时器的回调函数
++ ......
+
+JS运行在浏览器的单个渲染进程的渲染主线程中,而渲染主线程只有一个!注意,js的单线程,是因为执行在浏览器的渲染主线程,并不代表浏览器是单进程/线程的。
+
+因此,JS是一门 **单线程** 的语言,浏览器采用异步而非同步的方式来避免阻塞,如计时器、网络、事件监听。
+
+主线程将任务交给其他线程处理,完成后将事先传递的回调函数包装成任务,加入到消息队列的末尾排队,等待主线程调度执行。
+
+**总结**:
+
+1. **单线程是异步产生的原因**
+
+2. **事件循环是异步的实现方式**
+
+
+
+**异步的场景**:`setTimeout`、`setInterval`、`XHR`、`Fetch`、`addEventListener` 等
+
+
+
+
+
+## 3. JS 阻塞渲染
+
+如下面的案例,虽然 h1 已经设置了 text 内容,但会在 3s 后才显示,因为 **JS执行和渲染都在浏览器的渲染主线程上执行**,在执行了 h1 内容设置后,向消息队列(message queue)中插入了新的渲染任务,但需要在 delay 完成后,渲染主线程才会执行渲染。
+
+```javascript
+var h1 = document.querySelector(...);
+var btn = document.querySelector(...);
+
+// 死循环一段时间
+function delay(duration) {
+ var start = Date.now();
+ while(Date.now() - start < duration) {}
+}
+
+btn.onclick = function() {
+ h1.textContent = 'xxx';
+ delay(3000);
+}
+```
+
+
+
+## 4. 任务没有优先级,但消息队列有优先级
+
+每个任务都有一个任务类型,同一类型的任务必须在一个队列,一个队列可能有多种类型的任务,在一次事件循环中,浏览器可以根据实际情况从不同的队列中取出任务执行。
+
+浏览器必须准备好一个**微队列**(microTask),微队列中的任务优先于所有其他任务执行。
+
+随着浏览器复杂度急剧提升,W3C不再使用宏队列的说法。
+
+目前 chrome 中至少包含了以下队列:
+
++ **微队列**:[最高] 存放需要最快执行的任务
++ **交互队列**:[高] 存放用户交互后产生的事件处理任务
++ **延时队列**:[中] 存放定时器回调
+
+添加任务到微队列的方式主要为:`Promise`、`MutationObserver`,如
+
+```javascript
+// 立即添加函数到微队列
+Promise.resolve().then(函数)
+```
+
+案例:
+
+```javascript
+function delay(duration) {
+ var start = Date.now();
+ while(Date.now() - start < duration) {}
+}
+setTimeout(function() { // 添加到延迟队列
+ console.log(1);
+}, 0);
+Promise.resolve().then(function() { // 添加到微队列
+ console.log(2);
+});
+delay(1000); // 死循环1s
+console.log(3); // 当前任务中执行
+// 1s 后输出 3 2 1
+```
+
+
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/02-\346\265\217\350\247\210\345\231\250\346\270\262\346\237\223\345\216\237\347\220\206.md" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/02-\346\265\217\350\247\210\345\231\250\346\270\262\346\237\223\345\216\237\347\220\206.md"
new file mode 100644
index 000000000..fe6725d8e
--- /dev/null
+++ "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/02-\346\265\217\350\247\210\345\231\250\346\270\262\346\237\223\345\216\237\347\220\206.md"
@@ -0,0 +1,78 @@
+# 浏览器渲染原理
+
+## 1. 渲染过程
+
+
+
+### 1.1 【解析 HTML】 为 DOM 和 CSSOM
+
+首先解析 HTML,解析过程中遇到 CSS 解析 CSS,遇到 JS 执行 JS。为提高解析效率,浏览器在开始解析前,会启动一个预解析线程,率先下载 HTML 中的外部 CSS 文件和 JS 文件。
+
+若主线程解析到 link 位置时 CSS 文件还未下载解析完成则会跳过。因为下载和解析 CSS 是在预解析线程中进行的,所以 **CSS 不会阻塞渲染主线程对 HTML 的解析**。
+
+主线程解析到 script 位置时会停止解析 HTML,等待 JS 文件下载结束,并将全局代码解析执行完成后,才继续解析 HTML。这是因为 JS 代码的执行过程可能会修改当前的 DOM 树,所以 DOM 树的生成必须暂停,所以 **JS 会阻塞渲染主线程对 HTML 的解析**。
+
+解析 HTML 完成后,会得到 **DOM 树** 和 **CSSOM 树**,浏览器的默认样式、内部样式、外部样式、行内样式均会包含在 CSSOM 树中。
+
+### 1.2 【样式计算】得到带样式的 DOM
+
+主线程会遍历得到的 DOM 树,依次为树中的每个节点计算出最终样式,称之为 **Computed Style**。在此过程中,很多预设值会变成绝对值,比如 red 会变成 rgb(255,0,0); 相对单位会变成绝对单位,比如 em 会变成 px。
+
+样式计算完成后,会得到一棵带有样式的 DOM 树。
+
+> js 操作 stylesheet
+>
+> ```javascript
+> document.styleSheets
+> getComputedStyle(document.body)
+> ```
+
+### 1.3 【布局】生成 layout 布局树
+
+布局阶段会依次遍历 DOM 树的每一个节点,计算每个节点的几何信息,如节点的宽高、相对包含块的位置。
+
+大部分时候,DOM 树和布局树并非一一对应。比如 `display:none` 节点不会生成到布局树;比如使用了伪元素选择器,虽然 DOM 树中不存在这些伪元素节点,但它们拥有几何信息,所以会生成到布局树中;还有匿名行盒、匿名块盒等等都会导致 DOM 树和布局树无法一一对应。
+
+
+
+### 1.4 【分层】
+
+主线程会使用一套复杂的策略对整个布局树进行分层。分层会影响后续的布局树变化的处理,当某层变动只改某层能提升性能,但层次过多也会消耗性能。滚动条、堆叠上下文、transform、opacity 等样式都会或多或少的影响分层结果,可以通过 `will-change` 属性更大程度的影响分层结果,如在css中添加 `will-change: transform` 属性告诉浏览器将来 transform 可能变化,由浏览器决定是否分层。
+
+### 1.5 【绘制】生成绘制指令集传递给合成线程
+
+主线程会为每个层单独生成绘制指令集,完成后主线程将每个图层的绘制信息提交给合成线程,剩余工作将由合成线程完成。
+
+### 1.6 【分块】合成线程分块
+
+合成线程首先将每个图层划分为更多的小区域,它会从线程池中拿取多个线程来完成分块工作。
+
+### 1.7 【光栅化】GPU光栅化
+
+合成线程会将块信息交给 GPU 进程,GPU 进程会开启多个线程极速完成光栅化,得到一块一块的位图,默认会优先处理靠近视口区域的块。
+
+### 1.8 【draw】合成线程根据位图生成指引并由GPU绘制到屏幕
+
+合成线程拿到每个层、每个块的位图后,生成一个个"指引(quad)"信息,用于标识出每个位图在屏幕的绘制位置,以及旋转、缩放等变形的处理。
+
+由于 `transform` 变形发生在合成线程,与渲染主线程无关,所以效率高。
+
+最后合成线程会把 quad 提交给 GPU 进程,由 GPU 进程产生系统调用,提交给 GPU 硬件,完成最终的屏幕成像。
+
+
+
+## 2. transform 高效的原因
+
+如前面说述,transform 既不影响布局也不影响绘制指令,只影响渲染流程最后的绘制阶段。由于 draw 阶段在合成线程中,所以 transform 的变化几乎不会影响忙碌的渲染主线程。
+
+
+
+## 3. reflow(重排) & repaint(重绘)
+
+`reflow`:当进行了影响布局树的操作后,需要重新计算 layout 布局树。浏览器会合并布局属性的修改操作,当 JS 代码全部完成后再异步统一计算。但为了让 JS 获取布局属性时取到最新的布局信息,在获取属性时会立即 reflow。
+
+`repaint`:当修改了可见样式后需要重新计算绘制指令。
+
+由于元素的布局信息也属于可见样式,所以 **reflow 一定会引起 repaint**,要尽量减少 reflow。
+
+
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/03-\345\261\236\346\200\247\346\217\217\350\277\260\347\254\246.md" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/03-\345\261\236\346\200\247\346\217\217\350\277\260\347\254\246.md"
new file mode 100755
index 000000000..19db7be31
--- /dev/null
+++ "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/03-\345\261\236\346\200\247\346\217\217\350\277\260\347\254\246.md"
@@ -0,0 +1,62 @@
+# 属性描述符
+
+## 1. 属性描述符的获取与设置
+
+```javascript
+var obj = { a: 1, b: 2 };
+
+// 获取属性描述符
+Object.getOwnPropertyDescriptor(obj, 'a');
+// { value: 1, writable: true, enumerable: true, configurable: true }
+
+// 设置属性描述符
+Object.defineProperty(obj, 'a', {
+ // value: 3, // Cannot both specify accessors and a value or writable attribute
+ // writable: false, // 不可重写
+ enumerable: false, // 不可遍历
+ configurable: false, // 属性描述符不可再修改
+ get: function() { // getter
+ return 4;
+ },
+ set: function() { // setter
+ throw new Error('属性只读');
+ },
+});
+```
+
+## 2. 案例:属性描述符的应用
+
+```javascript
+class Demo {
+ constructor (g) {
+ g = { ...g };
+ Object.freeze(g); //【1】clone后冻结,避免改变原对象
+ Object.defineProperty(this, 'data', {
+ get: function() {
+ return g;
+ },
+ set: function() {
+ throw new Error('data 属性只读');
+ },
+ configurable: false, // 属性描述符不可再修改
+ });
+
+ this.testForFreeze = 1;
+ // Object.freeze(this); //【2】冻结,但也会影响现有的属性方法
+ Object.seal(this); //【3】密封,不能给对象添加/删除属性和方法,不能修改现有属性和方法的配置
+ }
+}
+
+var g = new Demo({
+ price: 1,
+});
+
+g.data.price = 2;
+g.testForFreeze = 2; // Object.freeze 后不会生效,但 Object.seal 不影响
+g.testForSeal = 2; // Object.freeze 和 Object.seal 后都不会生效
+
+Object.freeze(Demo.prototype); //【4】冻结原型链
+Demo.prototype.testForPrototype = 1;
+console.log(g.testForPrototype); // undefined
+```
+
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/04-CSS\345\214\205\345\220\253\345\235\227.md" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/04-CSS\345\214\205\345\220\253\345\235\227.md"
new file mode 100644
index 000000000..330dde7dc
--- /dev/null
+++ "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/04-CSS\345\214\205\345\220\253\345\235\227.md"
@@ -0,0 +1,132 @@
+# CSS包含块
+
+元素的尺寸和位置,会受它的包含块影响。对于一些属性,例如 width, height, padding, margin,当绝对定位元素(position: absolute/fixed)的偏移值为百分比值时,由元素的包含块计算得来。
+
+包含块分两种:
+
++ **初始包含块(initial containing block)**,即根元素(HTML元素)所在的包含块,浏览器中等于视口 viewport 大小,定位基点在画布原点(视口左上角)。
+
++ **非根元素包含块**,判定方式分以下规则:
+
+1. 元素 `position: relative/static`,包含块为最近的**块容器** (block container) 的**内容区域**(content area)
+
+2. 元素 `position: fixed`,包含块为视口
+
+3. 元素 `position: absolute`,包含块为最近的 `position` 的值非 `static` (即值为 `fixed`/`absolute`/`relative`/`sticky`) 的祖先元素的内边距区域
+
+案例:
+
+```html
+
+
+
+```
+
+`div.item2` 的包含块为 `div.container` 而非 `div.item`。
+
+此外,对于非根元素,包含块还有一种规则:元素 `position: absolute/fixed`,包含块也可能为满足以下条件的最近父级元素的内边距区域:
+
+- `transform` 或 `perspective` 值不为 `none`
+- `will-change: transform/perspective;`
+- `filter` 值不为 `none` 或 `will-change: filter;`(仅 Firefox)
+- `contain: paint;`
+
+案例:
+
+```html
+
+
+
+```
+
+此时,`div.item2` 的包含块为 `div.item`。
+
+
+
+CSS 规范中所举的例子如下:
+
+```html
+
+
+ Illustration of containing blocks
+
+
+
+
This is text in the first paragraph...
+
+ This is text
+
+ in the
+ second
+ paragraph.
+
+
+
+
+
+```
+
+在没有添加任何 CSS 代码的情况下,元素对应的包含块为:
+
+| 元素 | 包含块 | 参照规则 | 说明 |
+| ------- | --------------------------- | -------- | ------------------ |
+| html | initial C.B. (UA-dependent) | 0 | |
+| body | html | 1 | |
+| div1 | body | 1 | |
+| p1 | div1 | 1 | |
+| p2 | div1 | 1 | |
+| em1 | p2 | 1 | |
+| strong1 | **p2** | 1 | 最近块容器的内容区 |
+
+接下来添加如下 CSS:
+
+```css
+#div1 {
+ position: absolute;
+ left: 50px;
+}
+```
+
+变化如下:
+
+| 元素 | 包含块 | 参照规则 | 说明 |
+| ---- | --------------------------- | -------- | -------------------------------- |
+| div1 | initial C.B. (UA-dependent) | 3 | 最近的非static祖先元素内边距区域 |
+
+继续修改 CSS:
+
+```css
+#div1 {
+ position: absolute;
+ left: 50px;
+}
+#em1 {
+ position: absolute;
+ left: 100px;
+}
+```
+
+变化如下:
+
+| 元素 | 包含块 | 参照规则 | 说明 |
+| ------- | --------------------------- | -------- | -------------------------------- |
+| div1 | initial C.B. (UA-dependent) | | |
+| em1 | div1 | 3 | 最近的非static祖先元素内边距区域 |
+| strong1 | em1 | 1 | 最近块容器的内容区 |
+
+其他参考案例:*https://developer.mozilla.org/zh-CN/docs/Web/CSS/Containing_block*
+
+
+
+
+
+
+
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/05-\350\264\255\347\211\251\350\275\246\345\212\250\347\224\273.html" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/05-\350\264\255\347\211\251\350\275\246\345\212\250\347\224\273.html"
new file mode 100755
index 000000000..53a7eee38
--- /dev/null
+++ "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/05-\350\264\255\347\211\251\350\275\246\345\212\250\347\224\273.html"
@@ -0,0 +1,162 @@
+
+
+
+
+
+ 购物车动画
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/06-vue\344\274\230\345\214\226.md" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/06-vue\344\274\230\345\214\226.md"
new file mode 100755
index 000000000..ed7a9059f
--- /dev/null
+++ "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/06-vue\344\274\230\345\214\226.md"
@@ -0,0 +1,154 @@
+# vue优化
+
+## 1. 使用key
+
+为循环生成的列表指定稳定且唯一的key,减少删除、新增、改动元素
+
+
+
+## 2. 使用冻结的对象
+
+使用 chrome 性能工具分析,若在 Main 渲染主线程中黄色的js响应化执行时间过长,可以使用冻结避免对象响应化。
+
+```javascript
+var obj = { a: 1, b: 2 }
+Object.freeze(obj);
+obj.a = 3;
+console.log(obj.a); // 1
+Object.isFrozen(obj); // true
+
+// 在vue中使用
+
+export default {
+ data() {
+ frozenData: []
+ },
+ methods: {
+ setData() {
+ var obj = {};
+ ...
+ this.frozenData = Object.freeze(obj); // 避免了 proxySetter
+ }
+ }
+}
+```
+
+
+
+## 3. 使用函数式组件
+
+[函数式组件](https://v2.cn.vuejs.org/v2/guide/render-function.html#%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BB%84%E4%BB%B6),主要减少内存占用,不会调用 `new VueComponent`,不会出现在组件树中
+
+添加 `functional: true` 配置,用于纯渲染组件,无data,只有props
+
+
+
+## 4. 使用计算属性和变量本地化
+
+缓存在模板中多次使用的数据,可以使用计算属性,因为会自动缓存,对于会多次引用的变量可以保存起来,减少 `this.xxx` 的使用,减少依赖收集次数。因为响应式对象每次使用 `this.xxx` 都会触发 `getter`,然后执行依赖收集的相关代码
+
+
+
+## 5. 非实时绑定的表单项
+
+在没有必要使用 `v-model` (oninput)时使用 `v-model.lazy` (onchange) 或使用单向 value 代替
+
+
+
+## 6. 保持对象引用稳定
+
+尽量避免上层组件的数据变动,vue的判定变化源码:
+
+```javascript
+function hasChanged(x, y) {
+ if (x === y) {
+ return x === 0 && 1 / x !== 1 / y; // +0 === -0 为 true,但 1/+0=Infinity, 1/-0=-Infinity,所以 1/+!==1/-0
+ } else {
+ return x === x || y === y; // 不能直接返回 true,因为 NaN === NaN 为 false,x === x 可以排除 NaN
+ }
+}
+```
+
+也要注意细分组件避免多余的渲染
+
+
+
+## 7. v-show 替代 v-if
+
+对于内部包含大量dom节点的元素效果明显
+
+
+
+## 8. 使用延迟装载(defer)
+
+对于重组件,初始化时分批绘制,在重组件上使用 `v-if="defer(n)"` 表示在第n帧后绘制。
+
+defer函数记录当前执行 `requestAnimationFrame` 的次数
+
+
+
+## 9. 子组件分割
+
+对于耗费性能的部分可以分割为子组件,在子组件内部未发生变化时,不会触发耗费性能的逻辑执行。
+
+```vue
+
+
+
+
+```
+
+
+
+## 10. 第三方插件按需引入
+
+
+
+## 11. 路由懒加载
+
+```javascript
+const router = new VueRouter({
+ routes: [
+ { path: '/home', component: () => import('@/components/Home') },
+ { path: '/login', component: require('@/components/Home').default }
+ ]
+});
+```
+
+
+
+## 12. 使用 keep-alive
+
+在路由来回跳转时,可以通过内置组件 ` ` 来把组件缓存起来,在组件切换的时候不进行卸载,提升性能
+
+- 也可以用 `include/exclude` 来 缓存/不缓存 指定组件
+- 可通过两个生命周期 `activated/deactivated` 来获取当前组件状态
+
+
+
+## 10. 长列表优化
+
+根据索引,只渲染可视区域的dom元素
+
+
+
+## 11. 打包体积优化
+
+
+
+
+
+
+
+
+
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/01-event_loop.jpg" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/01-event_loop.jpg"
new file mode 100644
index 000000000..a01027c6f
Binary files /dev/null and "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/01-event_loop.jpg" differ
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/02.jpg" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/02.jpg"
new file mode 100644
index 000000000..d7a98e857
Binary files /dev/null and "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/02.jpg" differ
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/03.jpg" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/03.jpg"
new file mode 100644
index 000000000..1b0e95dd4
Binary files /dev/null and "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/03.jpg" differ
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/04.jpg" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/04.jpg"
new file mode 100644
index 000000000..8178427d7
Binary files /dev/null and "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/04.jpg" differ
diff --git "a/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/img.pptx" "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/img.pptx"
new file mode 100755
index 000000000..a740cba95
Binary files /dev/null and "b/01-JS\350\257\255\350\250\200\345\237\272\347\241\200/2023\345\274\272\345\214\226/img/img.pptx" differ
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/README.md"
new file mode 100644
index 000000000..ba0d15187
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/README.md"
@@ -0,0 +1,28 @@
+# 01-start 创建 csxiaoyao-cli
+
+1. 创建 /bin 文件夹
+2. 修改 package.json,添加命令及文件
+
+```
+"bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+},
+```
+
+3. 编写csxiaoyao.js代码文件
+```
+#!/user/bin/env node
+```
+
+4. 添加软链接
+```
+$ sudo npm link
+# 取消
+$ npm unlink
+$ npm link --force
+```
+
+5. process.argv 接收命令行参数
+
+
+
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/bin/csxiaoyao.js"
new file mode 100755
index 000000000..03c6a958e
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/bin/csxiaoyao.js"
@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+console.log('hello world');
+
+/**
+ * [ process.argv ] return Array
+ * 返回参数1: node.js可执行文件的绝对路径
+ * 返回参数2: 正在执行的javascript文件路径
+ * 返回参数3开始: 通过命令行传递的参数
+ */
+process.argv.forEach(v => {
+ console.log(v);
+});
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/package.json"
new file mode 100644
index 000000000..f9758bc02
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/01-csxiaoyao-cli/package.json"
@@ -0,0 +1,14 @@
+{
+ "name": "csxiaoyao-cli",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+ },
+ "author": "",
+ "license": "ISC"
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/README.md"
new file mode 100644
index 000000000..eee78ab71
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/README.md"
@@ -0,0 +1,43 @@
+# 02-commander
+
+1. 安装commander
+```
+$ npm install commander -S
+```
+
+2. 编写代码查看版本号
+```
+const { program } = require('commander');
+program
+ .version('0.0.1')
+ .parse(process.argv)
+```
+查看版本号
+```
+$ csxiaoyao -h
+Usage: csxiaoyao [options]
+
+Options:
+ -V, --version output the version number
+ -h, --help display help for command
+
+$csxiaoyao -V
+0.0.1
+```
+
+3. 修改帮助文档、配置options参数
+```
+.usage(' [csxiaoyao options]')
+.option('命令', '说明', '默认值')
+```
+
+4. 获取输入参数
+
+5. 创建命令
+```
+.command('add', 'add a template')
+.command('init', 'init a template')
+.command('create [options] ', 'create a new project powered by xxx')
+```
+
+
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/bin/csxiaoyao.js"
new file mode 100755
index 000000000..457f3d22e
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/bin/csxiaoyao.js"
@@ -0,0 +1,22 @@
+#!/usr/bin/env node
+
+/**
+ * 原生方式
+ */
+// process.argv.forEach(v => {
+// console.log(v);
+// });
+
+const { program } = require('commander');
+program
+ .version('0.0.1')
+ .usage(' [csxiaoyao options]')
+ .option('-cr, --classroom ', 'current classroom name') // '命令', '说明', '默认值'
+ .command('add', 'add a template')
+ .command('init', 'init a template')
+ .command('create [options] ', 'create a new project powered by xxx')
+ .parse(process.argv)
+
+// 获取输入参数
+console.log(program.opts().classroom);
+
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/package.json"
new file mode 100644
index 000000000..094b20c77
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/02-commander/package.json"
@@ -0,0 +1,17 @@
+{
+ "name": "commander-study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+ },
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "^11.0.0"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/README.md"
new file mode 100644
index 000000000..1802c9bc6
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/README.md"
@@ -0,0 +1,6 @@
+# 03-inquirer
+
+1. 安装
+```
+$ npm install inquirer
+```
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/bin/csxiaoyao.js"
new file mode 100755
index 000000000..143a14982
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/bin/csxiaoyao.js"
@@ -0,0 +1,77 @@
+#!/usr/bin/env node
+
+// const inquirer = require('inquirer');
+import inquirer from 'inquirer';
+
+// 定义基本的问答结构
+// 1. 定义问题列表
+const promptList = [
+ // 输入
+ {
+ type: 'input',
+ message: '请输入6位数字ID',
+ name: 'id', // key
+ default: '123456',
+ validate: (val) => {
+ if (val.match(/^\d{6}$/ig)) {
+ return true;
+ }
+ return '请输入6位数字的ID~~~';
+ }
+ },
+ // 是/否选择
+ {
+ type: 'confirm',
+ message: '是否使用监听模式',
+ name: 'watch',
+ prefix: '🌹', // 前缀
+ suffix: '🇨🇳', // 后缀
+ default: false,
+ },
+ // 级联
+ {
+ type: 'confirm',
+ message: '是否使用批量监听模式',
+ name: 'more-watch',
+ when: (answers) => { // when
+ if (answers.watch) {
+ return true;
+ } else {
+ return false; // answers中不包含此字段
+ }
+ }
+ },
+ // 单选
+ {
+ type: 'list',
+ message: '请选择一种单页面前端技术',
+ name: 'technology',
+ // default: 'react',
+ choices: ['vue','react','angular'],
+ },
+ // 多选
+ {
+ type: 'checkbox',
+ message: '爱好',
+ name: 'hobby',
+ choices: ['唱歌', '跳舞', '绘画'],
+ pageSize: 2, // 分页
+ },
+ // 密码
+ {
+ type: 'password',
+ message: '请输入密码',
+ name: 'pwd',
+ },
+ // 使用编辑器
+ {
+ type: 'editor',
+ message: '请输入备注文本',
+ name: 'editor-content',
+ }
+];
+
+// 2. 获取问题回答答案
+inquirer.prompt(promptList).then(answers => {
+ console.log(answers);
+});
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/package.json"
new file mode 100644
index 000000000..fea5dbbc0
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/03-inquirer/package.json"
@@ -0,0 +1,19 @@
+{
+ "name": "inquirer-study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "^11.0.0",
+ "inquirer": "^9.2.10"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/README.md"
new file mode 100644
index 000000000..e1dc37712
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/README.md"
@@ -0,0 +1,6 @@
+# 04-ora
+
+一般用于下载拉取模板,安装,注意node版本
+```
+$ npm install ora
+```
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/bin/csxiaoyao.js"
new file mode 100755
index 000000000..82faf6182
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/bin/csxiaoyao.js"
@@ -0,0 +1,15 @@
+#!/usr/bin/env node
+
+import ora from 'ora';
+
+const spinner = ora('开始下载,加载中').start();
+spinner.color = 'red';
+
+setTimeout(() => {
+ spinner.stop(); // 停止加载
+ spinner.succeed('下载成功!');
+ // spinner.fail('下载失败');
+ // spinner.warn('下载遇到问题');
+ // spinner.info('你有一个消息');
+
+}, 2000);
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/package.json"
new file mode 100644
index 000000000..be050089f
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/04-ora\345\212\240\350\275\275\345\267\245\345\205\267/package.json"
@@ -0,0 +1,18 @@
+{
+ "name": "ora-study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "ora": "^7.0.1"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/README.md"
new file mode 100644
index 000000000..542efee91
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/README.md"
@@ -0,0 +1,6 @@
+# 05-chalk 颜色处理
+
+
+```
+$ npm install chalk
+```
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/bin/csxiaoyao.js"
new file mode 100755
index 000000000..6c2169f40
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/bin/csxiaoyao.js"
@@ -0,0 +1,33 @@
+#!/usr/bin/env node
+
+import chalk from 'chalk';
+
+// const log = {
+// error(str) {
+// chalk.bold.red(str)
+// }
+// // your own themes
+// }
+const log = console.log;
+
+// 文本颜色
+log(chalk.bold.red('csxiaoyao.com'));
+log(chalk.yellow('csxiaoyao.com'));
+log(chalk.green('csxiaoyao.com'));
+log(chalk.white('csxiaoyao.com'));
+log(chalk.grey('csxiaoyao.com'));
+log(chalk.hex('#DEADED').underline('Hello, world!'));
+log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!'));
+
+// 背景色
+log(chalk.bgRed('csxiaoyao.com'));
+log(chalk.bgBlue('csxiaoyao.com'));
+log(chalk.rgb(15, 100, 204).inverse('Hello!'))
+
+// 模板字符串
+log(`
+CPU: ${chalk.red('90%')}
+RAM: ${chalk.green('40%')}
+DISK: ${chalk.yellow('70%')}
+`);
+
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/package.json"
new file mode 100644
index 000000000..f4f41fdfe
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/05-chalk\351\242\234\350\211\262\345\244\204\347\220\206/package.json"
@@ -0,0 +1,18 @@
+{
+ "name": "chalk-study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "chalk": "^5.3.0"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/README.md"
new file mode 100644
index 000000000..eb4f84fc9
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/README.md"
@@ -0,0 +1,6 @@
+# 06-download-git-repo
+
+
+```
+$ npm install download-git-repo
+```
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/bin/csxiaoyao.js"
new file mode 100755
index 000000000..1ba08667e
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/bin/csxiaoyao.js"
@@ -0,0 +1,18 @@
+#!/usr/bin/env node
+
+import download from 'download-git-repo';
+
+// download(仓库地址, 本地存放地址, 选项配置, 回调函数)
+// github作者名/仓库名
+download('vuejs/awesome-vue', 'project/awesome-vue', {
+ // clone: true,
+ // proxy: '',
+ // headers: {},
+ // filter
+}, (err) => {
+ if (err) {
+ console.log(err);
+ } else {
+ console.log('success');
+ }
+});
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/package.json"
new file mode 100644
index 000000000..0cdc5dbb0
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/06-download-git-repo/package.json"
@@ -0,0 +1,18 @@
+{
+ "name": "study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "download-git-repo": "^3.0.2"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/README.md"
new file mode 100644
index 000000000..59ba08a68
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/README.md"
@@ -0,0 +1,21 @@
+# 07-创建脚手架命令
+
+1. 创建命令可执行文件并绑定在 package.json
+```
+"csxiaoyao": "./bin/csxiaoyao.js",
+"csxiaoyao-add": "./bin/csxiaoyao-add.js",
+"csxiaoyao-list": "./bin/csxiaoyao-list.js",
+"csxiaoyao-delete": "./bin/csxiaoyao-delete.js",
+"csxiaoyao-init": "./bin/csxiaoyao-init.js"
+```
+
+2. 链接
+```
+$ npm link
+```
+
+3. 使用命令
+```
+$ csxiaoyao add
+$ csxiaoyao-add
+```
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-add.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-add.js"
new file mode 100755
index 000000000..ac9c13309
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-add.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao add');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-delete.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-delete.js"
new file mode 100755
index 000000000..483f4f698
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-delete.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao delete');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-init.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-init.js"
new file mode 100755
index 000000000..709a4b61f
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-init.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao init');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-list.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-list.js"
new file mode 100755
index 000000000..91ae1503a
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao-list.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao list');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao.js"
new file mode 100755
index 000000000..78c5bea69
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/bin/csxiaoyao.js"
@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+
+import { program } from 'commander';
+
+program
+ .version('1.0.0')
+ .usage(' [csxiaoyao options]')
+ .command('add', 'add a template')
+ .command('delete', 'delete a template')
+ .command('list', 'list all templates')
+ .command('init', 'generate a new project from template')
+ .parse(process.argv)
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/package.json"
new file mode 100644
index 000000000..acc682f12
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/07-\345\210\233\345\273\272\350\204\232\346\211\213\346\236\266\345\221\275\344\273\244/package.json"
@@ -0,0 +1,23 @@
+{
+ "name": "study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js",
+ "csxiaoyao-add": "./bin/csxiaoyao-add.js",
+ "csxiaoyao-list": "./bin/csxiaoyao-list.js",
+ "csxiaoyao-delete": "./bin/csxiaoyao-delete.js",
+ "csxiaoyao-init": "./bin/csxiaoyao-init.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "^11.0.0",
+ "download-git-repo": "^3.0.2"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/README.md"
new file mode 100644
index 000000000..a12c6a52c
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/README.md"
@@ -0,0 +1,7 @@
+# 命令开发
+
+1. 创建 csxiaoyao-template.json 存储模板json
+
+2. 编写 ./bin/csxiaoyao-add.js 逻辑
+3. 编写 ./bin/csxiaoyao-delete.js 逻辑
+4. 编写 ./bin/csxiaoyao-list.js 逻辑
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-add.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-add.js"
new file mode 100755
index 000000000..479d69d54
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-add.js"
@@ -0,0 +1,62 @@
+#!/usr/bin/env node
+// 引入问答交互模块
+import inquirer from 'inquirer';
+import fs from 'fs';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+const questions = [
+ {
+ type: 'input',
+ name: 'tpl-name',
+ message: '请输入模版名称',
+ // 必须输入且不能重复
+ validate: (val) => {
+ if (val === '') {
+ return '模板名称不能为空';
+ } else if (csxiaoyaoTpls.filter(v => (v.name === val)).length > 0) {
+ return '当前模板已经存在';
+ } else {
+ return true;
+ }
+ }
+ },
+ {
+ type: 'input',
+ name: 'tpl-url',
+ message: '请输入模版地址',
+ // 必须输入
+ validate: (val) => {
+ if (val === '') {
+ return '模板地址不能为空';
+ } else {
+ return true;
+ }
+ }
+ }
+];
+
+inquirer
+ .prompt(questions).then(answers => {
+ console.log(answers);
+ // 获取问答内容
+ let tplName = answers['tpl-name'];
+ let tplUrl = answers['tpl-url'];
+
+ // 更新到 csxiaoyao-template.json 模板文件中
+ csxiaoyaoTpls.push({
+ name: tplName,
+ url: tplUrl,
+ });
+
+ // 更新文件内容
+ fs.writeFileSync(tpath, JSON.stringify(csxiaoyaoTpls));
+
+ })
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-delete.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-delete.js"
new file mode 100755
index 000000000..f8e055bde
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-delete.js"
@@ -0,0 +1,40 @@
+#!/usr/bin/env node
+
+import inquirer from 'inquirer';
+import fs from 'fs';
+import chalk from 'chalk';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+const questions = [
+ {
+ type: 'input',
+ name: 'tpl-name',
+ message: '请输入要删除的模版名称',
+ validate: (val) => {
+ if (val === '') {
+ return '模板名称不能为空';
+ } else if (csxiaoyaoTpls.filter(v => (v.name === val)).length === 0) {
+ return '当前要删除的模板不存在';
+ } else {
+ return true;
+ }
+ }
+ },
+];
+
+inquirer
+ .prompt(questions).then(answers => {
+ let tplName = answers['tpl-name'];
+ // 更新文件内容
+ fs.writeFileSync(tpath, JSON.stringify(csxiaoyaoTpls.filter(v => v.name !== tplName)));
+
+ console.log(chalk.green('删除成功'));
+ })
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-init.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-init.js"
new file mode 100755
index 000000000..709a4b61f
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-init.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao init');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-list.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-list.js"
new file mode 100755
index 000000000..ad18ba17a
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao-list.js"
@@ -0,0 +1,15 @@
+#!/usr/bin/env node
+import chalk from 'chalk';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+csxiaoyaoTpls.forEach(v => {
+ console.log(`模板名称: ${chalk.green(v.name)}, 模板地址: ${chalk.yellow(v.url)}`);
+});
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao.js"
new file mode 100755
index 000000000..78c5bea69
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/bin/csxiaoyao.js"
@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+
+import { program } from 'commander';
+
+program
+ .version('1.0.0')
+ .usage(' [csxiaoyao options]')
+ .command('add', 'add a template')
+ .command('delete', 'delete a template')
+ .command('list', 'list all templates')
+ .command('init', 'generate a new project from template')
+ .parse(process.argv)
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/csxiaoyao-template.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/csxiaoyao-template.json"
new file mode 100644
index 000000000..092f433e7
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/csxiaoyao-template.json"
@@ -0,0 +1 @@
+[{"name":"测试","url":"csxiaoyao/test"}]
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/package.json"
new file mode 100644
index 000000000..4899e589f
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/08-add&delete&list\345\221\275\344\273\244/package.json"
@@ -0,0 +1,24 @@
+{
+ "name": "study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js",
+ "csxiaoyao-add": "./bin/csxiaoyao-add.js",
+ "csxiaoyao-list": "./bin/csxiaoyao-list.js",
+ "csxiaoyao-delete": "./bin/csxiaoyao-delete.js",
+ "csxiaoyao-init": "./bin/csxiaoyao-init.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "^11.0.0",
+ "download-git-repo": "^3.0.2",
+ "inquirer": "^9.2.10"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/README.md"
new file mode 100644
index 000000000..8f37f9dae
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/README.md"
@@ -0,0 +1,2 @@
+# init命令开发
+
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-add.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-add.js"
new file mode 100755
index 000000000..ac9c13309
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-add.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao add');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-delete.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-delete.js"
new file mode 100755
index 000000000..483f4f698
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-delete.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao delete');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-init.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-init.js"
new file mode 100755
index 000000000..2870c0ce6
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-init.js"
@@ -0,0 +1,69 @@
+#!/usr/bin/env node
+
+import { program } from 'commander';
+import download from 'download-git-repo';
+import ora from 'ora';
+import fs from 'fs';
+import chalk from 'chalk';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+// 定义 csxiaoyao init [project-name]
+program
+ .usage(' [project-name]')
+ .parse(process.argv)
+
+// 参数校验,如直接使用 csxiaoyao init 则会提示 help;
+if (program.args.length < 1) {
+ program.help();
+}
+
+// 获取用户输入参数
+let tName = program.args[0];
+let pName = program.args[1];
+
+if (csxiaoyaoTpls.filter(v => tName === v.name).length === 0) {
+
+ console.log(chalk.red('模板名称不存在,请使用 csxiaoyao list 命令查看可输入的模板'));
+
+} else if (!pName) {
+
+ console.log(chalk.red('项目名称不能为空'));
+
+} else if (!pName) {
+
+ console.log(chalk.red('项目名称不能为空'));
+
+} else {
+
+ // 获取模板地址
+ let url = csxiaoyaoTpls.filter(v => tName === v.name)[0].url;
+
+ // 开始创建项目
+ console.log(chalk.yellow('开始创建项目'));
+
+ // 出现加载图标
+ const spinner = ora('下载拉取中...');
+ spinner.start();
+
+ // 传入参数,进行下载
+ download(url, pName, err => {
+ if (err) {
+ spinner.fail();
+ console.log(chalk.red('创建项目失败' + err));
+ return;
+ }
+ // 成功加载
+ spinner.succeed();
+ console.log(chalk.green('创建目录成功'));
+ console.log('\n to start');
+ console.log(`cd ${pName}`);
+ });
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-list.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-list.js"
new file mode 100755
index 000000000..91ae1503a
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao-list.js"
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+console.log('csxiaoyao list');
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao.js"
new file mode 100755
index 000000000..78c5bea69
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/bin/csxiaoyao.js"
@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+
+import { program } from 'commander';
+
+program
+ .version('1.0.0')
+ .usage(' [csxiaoyao options]')
+ .command('add', 'add a template')
+ .command('delete', 'delete a template')
+ .command('list', 'list all templates')
+ .command('init', 'generate a new project from template')
+ .parse(process.argv)
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/csxiaoyao-template.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/csxiaoyao-template.json"
new file mode 100644
index 000000000..7b3ad556e
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/csxiaoyao-template.json"
@@ -0,0 +1 @@
+[{"name":"vuejs","url":"vuejs/awesome-vue"}]
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/package.json"
new file mode 100644
index 000000000..4899e589f
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/09-init\345\221\275\344\273\244/package.json"
@@ -0,0 +1,24 @@
+{
+ "name": "study",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js",
+ "csxiaoyao-add": "./bin/csxiaoyao-add.js",
+ "csxiaoyao-list": "./bin/csxiaoyao-list.js",
+ "csxiaoyao-delete": "./bin/csxiaoyao-delete.js",
+ "csxiaoyao-init": "./bin/csxiaoyao-init.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "^11.0.0",
+ "download-git-repo": "^3.0.2",
+ "inquirer": "^9.2.10"
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/.npmignore" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/.npmignore"
new file mode 100644
index 000000000..30bc16279
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/.npmignore"
@@ -0,0 +1 @@
+/node_modules
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/README.md" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/README.md"
new file mode 100644
index 000000000..5c9a62af8
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/README.md"
@@ -0,0 +1,22 @@
+# npm 发布
+
+## 1. 创建npm账号
+
+https://npmjs.com
+
+账号: csxiaoyao
+
+## 2. 创建npm忽略文件 `.npmignore`
+
+## 3. 发布 csxiaoyao-cli
+```
+$ npm login
+$ npm publish
+```
+
+## 4. 本地安装
+```
+$ npm unlink
+$ npm install csxiaoyao-cli --global
+$ csxiaoyao
+```
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-add.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-add.js"
new file mode 100755
index 000000000..479d69d54
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-add.js"
@@ -0,0 +1,62 @@
+#!/usr/bin/env node
+// 引入问答交互模块
+import inquirer from 'inquirer';
+import fs from 'fs';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+const questions = [
+ {
+ type: 'input',
+ name: 'tpl-name',
+ message: '请输入模版名称',
+ // 必须输入且不能重复
+ validate: (val) => {
+ if (val === '') {
+ return '模板名称不能为空';
+ } else if (csxiaoyaoTpls.filter(v => (v.name === val)).length > 0) {
+ return '当前模板已经存在';
+ } else {
+ return true;
+ }
+ }
+ },
+ {
+ type: 'input',
+ name: 'tpl-url',
+ message: '请输入模版地址',
+ // 必须输入
+ validate: (val) => {
+ if (val === '') {
+ return '模板地址不能为空';
+ } else {
+ return true;
+ }
+ }
+ }
+];
+
+inquirer
+ .prompt(questions).then(answers => {
+ console.log(answers);
+ // 获取问答内容
+ let tplName = answers['tpl-name'];
+ let tplUrl = answers['tpl-url'];
+
+ // 更新到 csxiaoyao-template.json 模板文件中
+ csxiaoyaoTpls.push({
+ name: tplName,
+ url: tplUrl,
+ });
+
+ // 更新文件内容
+ fs.writeFileSync(tpath, JSON.stringify(csxiaoyaoTpls));
+
+ })
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-delete.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-delete.js"
new file mode 100755
index 000000000..f8e055bde
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-delete.js"
@@ -0,0 +1,40 @@
+#!/usr/bin/env node
+
+import inquirer from 'inquirer';
+import fs from 'fs';
+import chalk from 'chalk';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+const questions = [
+ {
+ type: 'input',
+ name: 'tpl-name',
+ message: '请输入要删除的模版名称',
+ validate: (val) => {
+ if (val === '') {
+ return '模板名称不能为空';
+ } else if (csxiaoyaoTpls.filter(v => (v.name === val)).length === 0) {
+ return '当前要删除的模板不存在';
+ } else {
+ return true;
+ }
+ }
+ },
+];
+
+inquirer
+ .prompt(questions).then(answers => {
+ let tplName = answers['tpl-name'];
+ // 更新文件内容
+ fs.writeFileSync(tpath, JSON.stringify(csxiaoyaoTpls.filter(v => v.name !== tplName)));
+
+ console.log(chalk.green('删除成功'));
+ })
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-init.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-init.js"
new file mode 100755
index 000000000..2870c0ce6
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-init.js"
@@ -0,0 +1,69 @@
+#!/usr/bin/env node
+
+import { program } from 'commander';
+import download from 'download-git-repo';
+import ora from 'ora';
+import fs from 'fs';
+import chalk from 'chalk';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+// 定义 csxiaoyao init [project-name]
+program
+ .usage(' [project-name]')
+ .parse(process.argv)
+
+// 参数校验,如直接使用 csxiaoyao init 则会提示 help;
+if (program.args.length < 1) {
+ program.help();
+}
+
+// 获取用户输入参数
+let tName = program.args[0];
+let pName = program.args[1];
+
+if (csxiaoyaoTpls.filter(v => tName === v.name).length === 0) {
+
+ console.log(chalk.red('模板名称不存在,请使用 csxiaoyao list 命令查看可输入的模板'));
+
+} else if (!pName) {
+
+ console.log(chalk.red('项目名称不能为空'));
+
+} else if (!pName) {
+
+ console.log(chalk.red('项目名称不能为空'));
+
+} else {
+
+ // 获取模板地址
+ let url = csxiaoyaoTpls.filter(v => tName === v.name)[0].url;
+
+ // 开始创建项目
+ console.log(chalk.yellow('开始创建项目'));
+
+ // 出现加载图标
+ const spinner = ora('下载拉取中...');
+ spinner.start();
+
+ // 传入参数,进行下载
+ download(url, pName, err => {
+ if (err) {
+ spinner.fail();
+ console.log(chalk.red('创建项目失败' + err));
+ return;
+ }
+ // 成功加载
+ spinner.succeed();
+ console.log(chalk.green('创建目录成功'));
+ console.log('\n to start');
+ console.log(`cd ${pName}`);
+ });
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-list.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-list.js"
new file mode 100755
index 000000000..ad18ba17a
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao-list.js"
@@ -0,0 +1,15 @@
+#!/usr/bin/env node
+import chalk from 'chalk';
+
+import { createRequire } from "module";
+import path, { dirname } from 'path';
+import { fileURLToPath } from 'url';
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename); // type=module时 __dirname 不可直接使用
+
+const require = createRequire(import.meta.url);
+const csxiaoyaoTpls = require(path.resolve(__dirname, '../csxiaoyao-template.json'));
+
+csxiaoyaoTpls.forEach(v => {
+ console.log(`模板名称: ${chalk.green(v.name)}, 模板地址: ${chalk.yellow(v.url)}`);
+});
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao.js" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao.js"
new file mode 100755
index 000000000..78c5bea69
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/bin/csxiaoyao.js"
@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+
+import { program } from 'commander';
+
+program
+ .version('1.0.0')
+ .usage(' [csxiaoyao options]')
+ .command('add', 'add a template')
+ .command('delete', 'delete a template')
+ .command('list', 'list all templates')
+ .command('init', 'generate a new project from template')
+ .parse(process.argv)
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/csxiaoyao-template.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/csxiaoyao-template.json"
new file mode 100644
index 000000000..7b3ad556e
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/csxiaoyao-template.json"
@@ -0,0 +1 @@
+[{"name":"vuejs","url":"vuejs/awesome-vue"}]
\ No newline at end of file
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/package-lock.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/package-lock.json"
new file mode 100644
index 000000000..9ed29876c
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/package-lock.json"
@@ -0,0 +1,1272 @@
+{
+ "name": "csxiaoyao-cli",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@ljharb/through": {
+ "version": "2.3.9",
+ "resolved": "https://mirrors.tencent.com/npm/@ljharb/through/-/through-2.3.9.tgz",
+ "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ=="
+ },
+ "@sindresorhus/is": {
+ "version": "0.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/@sindresorhus/is/-/is-0.7.0.tgz",
+ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "requires": {
+ "type-fest": "^0.21.3"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "archive-type": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/archive-type/-/archive-type-4.0.0.tgz",
+ "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=",
+ "requires": {
+ "file-type": "^4.2.0"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "4.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-type/-/file-type-4.4.0.tgz",
+ "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU="
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "bl": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/bl/-/bl-1.2.3.tgz",
+ "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://mirrors.tencent.com/npm/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
+ },
+ "cacheable-request": {
+ "version": "2.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/cacheable-request/-/cacheable-request-2.1.4.tgz",
+ "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=",
+ "requires": {
+ "clone-response": "1.0.2",
+ "get-stream": "3.0.0",
+ "http-cache-semantics": "3.8.1",
+ "keyv": "3.0.0",
+ "lowercase-keys": "1.0.0",
+ "normalize-url": "2.0.1",
+ "responselike": "1.0.2"
+ },
+ "dependencies": {
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+ }
+ }
+ },
+ "caw": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/caw/-/caw-2.0.1.tgz",
+ "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
+ "requires": {
+ "get-proxy": "^2.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "tunnel-agent": "^0.6.0",
+ "url-to-options": "^1.0.1"
+ }
+ },
+ "chalk": {
+ "version": "5.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w=="
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "2.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-spinners/-/cli-spinners-2.9.0.tgz",
+ "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g=="
+ },
+ "cli-width": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "commander": {
+ "version": "11.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-11.0.0.tgz",
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ=="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://mirrors.tencent.com/npm/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "requires": {
+ "safe-buffer": "5.2.1"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
+ },
+ "decompress": {
+ "version": "4.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/decompress/-/decompress-4.2.1.tgz",
+ "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
+ "requires": {
+ "decompress-tar": "^4.0.0",
+ "decompress-tarbz2": "^4.0.0",
+ "decompress-targz": "^4.0.0",
+ "decompress-unzip": "^4.0.1",
+ "graceful-fs": "^4.1.10",
+ "make-dir": "^1.0.0",
+ "pify": "^2.3.0",
+ "strip-dirs": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ }
+ }
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "decompress-tar": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/decompress-tar/-/decompress-tar-4.1.1.tgz",
+ "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
+ "requires": {
+ "file-type": "^5.2.0",
+ "is-stream": "^1.1.0",
+ "tar-stream": "^1.5.2"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-type/-/file-type-5.2.0.tgz",
+ "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY="
+ }
+ }
+ },
+ "decompress-tarbz2": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
+ "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
+ "requires": {
+ "decompress-tar": "^4.1.0",
+ "file-type": "^6.1.0",
+ "is-stream": "^1.1.0",
+ "seek-bzip": "^1.0.5",
+ "unbzip2-stream": "^1.0.9"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "6.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-type/-/file-type-6.2.0.tgz",
+ "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg=="
+ }
+ }
+ },
+ "decompress-targz": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/decompress-targz/-/decompress-targz-4.1.1.tgz",
+ "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
+ "requires": {
+ "decompress-tar": "^4.1.1",
+ "file-type": "^5.2.0",
+ "is-stream": "^1.1.0"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-type/-/file-type-5.2.0.tgz",
+ "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY="
+ }
+ }
+ },
+ "decompress-unzip": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
+ "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=",
+ "requires": {
+ "file-type": "^3.8.0",
+ "get-stream": "^2.2.0",
+ "pify": "^2.3.0",
+ "yauzl": "^2.4.2"
+ },
+ "dependencies": {
+ "file-type": {
+ "version": "3.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-type/-/file-type-3.9.0.tgz",
+ "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
+ },
+ "get-stream": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-2.3.1.tgz",
+ "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
+ "requires": {
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ }
+ }
+ },
+ "defaults": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "download": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/download/-/download-7.1.0.tgz",
+ "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==",
+ "requires": {
+ "archive-type": "^4.0.0",
+ "caw": "^2.0.1",
+ "content-disposition": "^0.5.2",
+ "decompress": "^4.2.0",
+ "ext-name": "^5.0.0",
+ "file-type": "^8.1.0",
+ "filenamify": "^2.0.0",
+ "get-stream": "^3.0.0",
+ "got": "^8.3.1",
+ "make-dir": "^1.2.0",
+ "p-event": "^2.1.0",
+ "pify": "^3.0.0"
+ }
+ },
+ "download-git-repo": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/download-git-repo/-/download-git-repo-3.0.2.tgz",
+ "integrity": "sha512-N8hWXD4hXqmEcNoR8TBYFntaOcYvEQ7Bz90mgm3bZRTuteGQqwT32VDMnTyD0KTEvb8BWrMc1tVmzuV9u/WrAg==",
+ "requires": {
+ "download": "^7.1.0",
+ "git-clone": "^0.1.0",
+ "rimraf": "^3.0.0"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "ext-list": {
+ "version": "2.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/ext-list/-/ext-list-2.2.2.tgz",
+ "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
+ "requires": {
+ "mime-db": "^1.28.0"
+ }
+ },
+ "ext-name": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ext-name/-/ext-name-5.0.0.tgz",
+ "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
+ "requires": {
+ "ext-list": "^2.0.0",
+ "sort-keys-length": "^1.0.0"
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figures": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/figures/-/figures-5.0.0.tgz",
+ "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
+ "requires": {
+ "escape-string-regexp": "^5.0.0",
+ "is-unicode-supported": "^1.2.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="
+ }
+ }
+ },
+ "file-type": {
+ "version": "8.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-type/-/file-type-8.1.0.tgz",
+ "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ=="
+ },
+ "filename-reserved-regex": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+ "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik="
+ },
+ "filenamify": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/filenamify/-/filenamify-2.1.0.tgz",
+ "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
+ "requires": {
+ "filename-reserved-regex": "^2.0.0",
+ "strip-outer": "^1.0.0",
+ "trim-repeated": "^1.0.0"
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "get-proxy": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-proxy/-/get-proxy-2.1.0.tgz",
+ "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
+ "requires": {
+ "npm-conf": "^1.1.0"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ },
+ "git-clone": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/git-clone/-/git-clone-0.1.0.tgz",
+ "integrity": "sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk="
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "got": {
+ "version": "8.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/got/-/got-8.3.2.tgz",
+ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
+ "requires": {
+ "@sindresorhus/is": "^0.7.0",
+ "cacheable-request": "^2.1.1",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "into-stream": "^3.1.0",
+ "is-retry-allowed": "^1.1.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "mimic-response": "^1.0.0",
+ "p-cancelable": "^0.4.0",
+ "p-timeout": "^2.0.1",
+ "pify": "^3.0.0",
+ "safe-buffer": "^5.1.1",
+ "timed-out": "^4.0.1",
+ "url-parse-lax": "^3.0.0",
+ "url-to-options": "^1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://mirrors.tencent.com/npm/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
+ },
+ "has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "requires": {
+ "has-symbol-support-x": "^1.4.1"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://mirrors.tencent.com/npm/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "inquirer": {
+ "version": "9.2.10",
+ "resolved": "https://mirrors.tencent.com/npm/inquirer/-/inquirer-9.2.10.tgz",
+ "integrity": "sha512-tVVNFIXU8qNHoULiazz612GFl+yqNfjMTbLuViNJE/d860Qxrd3NMrse8dm40VUQLOQeULvaQF8lpAhvysjeyA==",
+ "requires": {
+ "@ljharb/through": "^2.3.9",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^5.3.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^4.1.0",
+ "external-editor": "^3.1.0",
+ "figures": "^5.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "1.0.0",
+ "ora": "^5.4.1",
+ "run-async": "^3.0.0",
+ "rxjs": "^7.8.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "into-stream": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/into-stream/-/into-stream-3.1.0.tgz",
+ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
+ "requires": {
+ "from2": "^2.1.1",
+ "p-is-promise": "^1.1.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
+ },
+ "is-natural-number": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-natural-number/-/is-natural-number-4.0.1.tgz",
+ "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg="
+ },
+ "is-object": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-object/-/is-object-1.0.2.tgz",
+ "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA=="
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ },
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-unicode-supported": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
+ "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "requires": {
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+ },
+ "keyv": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/keyv/-/keyv-3.0.0.tgz",
+ "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://mirrors.tencent.com/npm/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
+ }
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://mirrors.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "mute-stream": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/mute-stream/-/mute-stream-1.0.0.tgz",
+ "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA=="
+ },
+ "normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "requires": {
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
+ }
+ },
+ "npm-conf": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/npm-conf/-/npm-conf-1.1.3.tgz",
+ "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+ "requires": {
+ "config-chain": "^1.1.11",
+ "pify": "^3.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "ora": {
+ "version": "5.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "requires": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
+ },
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "p-cancelable": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/p-cancelable/-/p-cancelable-0.4.1.tgz",
+ "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="
+ },
+ "p-event": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/p-event/-/p-event-2.3.1.tgz",
+ "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==",
+ "requires": {
+ "p-timeout": "^2.0.1"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "p-is-promise": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-is-promise/-/p-is-promise-1.1.0.tgz",
+ "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
+ },
+ "p-timeout": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/p-timeout/-/p-timeout-2.0.1.tgz",
+ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
+ "requires": {
+ "p-finally": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
+ },
+ "query-string": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-async": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/run-async/-/run-async-3.0.0.tgz",
+ "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q=="
+ },
+ "rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "seek-bzip": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/seek-bzip/-/seek-bzip-1.0.6.tgz",
+ "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
+ "requires": {
+ "commander": "^2.8.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ }
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
+ "requires": {
+ "is-plain-obj": "^1.0.0"
+ }
+ },
+ "sort-keys-length": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
+ "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
+ "requires": {
+ "sort-keys": "^1.0.0"
+ },
+ "dependencies": {
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "requires": {
+ "is-plain-obj": "^1.0.0"
+ }
+ }
+ }
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-dirs": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-dirs/-/strip-dirs-2.1.0.tgz",
+ "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
+ "requires": {
+ "is-natural-number": "^4.0.1"
+ }
+ },
+ "strip-outer": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-outer/-/strip-outer-1.0.1.tgz",
+ "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/tar-stream/-/tar-stream-1.6.2.tgz",
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+ "requires": {
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.2.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://mirrors.tencent.com/npm/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-buffer": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/to-buffer/-/to-buffer-1.1.1.tgz",
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg=="
+ },
+ "trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "tslib": {
+ "version": "2.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
+ },
+ "unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+}
diff --git "a/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/package.json" "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/package.json"
new file mode 100644
index 000000000..80ab07e9f
--- /dev/null
+++ "b/11-\346\236\204\345\273\272\345\267\245\345\205\267/05-\350\204\232\346\211\213\346\236\266/10-npm\345\217\221\345\270\203/package.json"
@@ -0,0 +1,24 @@
+{
+ "name": "csxiaoyao-cli",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "bin": {
+ "csxiaoyao": "./bin/csxiaoyao.js",
+ "csxiaoyao-add": "./bin/csxiaoyao-add.js",
+ "csxiaoyao-list": "./bin/csxiaoyao-list.js",
+ "csxiaoyao-delete": "./bin/csxiaoyao-delete.js",
+ "csxiaoyao-init": "./bin/csxiaoyao-init.js"
+ },
+ "type": "module",
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "^11.0.0",
+ "download-git-repo": "^3.0.2",
+ "inquirer": "^9.2.10"
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/Backdrop.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/Backdrop.js"
index abfaa7cb3..cbbd18ac2 100644
--- "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/Backdrop.js"
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/Backdrop.js"
@@ -1,3 +1,7 @@
+/**
+ * Portal 将子节点渲染到存在于父组件以外的 DOM 节点
+ * ReactDOM.createPortal(child, container)
+ */
import ReactDOM from "react-dom";
const backdropRoot = document.getElementById('backdrop-root');
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/App.js"
index f5691e361..a476e4819 100644
--- "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/App.js"
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/App.js"
@@ -1,3 +1,39 @@
+/*
+// useEffect 是 React 中的一个 Hook,用于在函数组件中处理副作用(如数据获取、订阅、手动更改 DOM 等)
+// 无依赖项: 如果不传递依赖项数组,副作用函数会在每次渲染后执行
+// 空依赖项数组: 如果传递一个空数组作为依赖项,副作用函数只会在组件首次渲染时执行一次
+// 带依赖项: 如果传递一个依赖项数组,副作用函数会在依赖项发生变化时执行,同时会先执行上一次渲染中的清除函数
+
+useEffect(() => {
+ // 副作用逻辑
+ return () => {
+ // 清除逻辑(可选)
+ };
+}, [依赖项]);
+
+// demo
+
+import React, { useEffect } from 'react';
+
+function MyComponent() {
+ useEffect(() => {
+ // 副作用逻辑
+ // 相当于类组件中的生命周期方法 componentDidMount / componentDidUpdate
+ console.log('组件渲染或更新了');
+
+ return () => {
+ // 清除逻辑(可选)
+ // 相当于类组件中的生命周期方法 componentWillUnmount
+ console.log('组件卸载了');
+ };
+ }); // 无依赖项,在每次渲染后执行
+ // }, []); // 空依赖数组,只在组件挂载和卸载时执行
+
+ return Hello, useEffect!
;
+}
+ */
+
+
// 组件中部分逻辑如果直接写在函数体中,会影响到组件的渲染,如 setState 触发渲染死循环
// 为了避免副作用,使用钩子函数 useEffect() 处理那些不能直接写在组件内部的代码
// 如获取数据、记录日志、检查登录、设置定时器等
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.eslintrc.cjs" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.eslintrc.cjs"
new file mode 100644
index 000000000..6617ed2a8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.eslintrc.cjs"
@@ -0,0 +1,26 @@
+/* eslint-env node */
+require('@rushstack/eslint-patch/modern-module-resolution')
+
+module.exports = {
+ root: true,
+ 'extends': [
+ 'plugin:vue/vue3-essential',
+ 'eslint:recommended',
+ '@vue/eslint-config-typescript',
+ '@vue/eslint-config-prettier/skip-formatting'
+ ],
+ overrides: [
+ {
+ files: [
+ 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}',
+ 'cypress/support/**/*.{js,ts,jsx,tsx}'
+ ],
+ 'extends': [
+ 'plugin:cypress/recommended'
+ ]
+ }
+ ],
+ parserOptions: {
+ ecmaVersion: 'latest'
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.gitignore" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.gitignore"
new file mode 100644
index 000000000..8ee54e8d3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.gitignore"
@@ -0,0 +1,30 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.tsbuildinfo
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.prettierrc.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.prettierrc.json"
new file mode 100644
index 000000000..66e23359c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.prettierrc.json"
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/prettierrc",
+ "semi": false,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "printWidth": 100,
+ "trailingComma": "none"
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.vscode/extensions.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.vscode/extensions.json"
new file mode 100644
index 000000000..009a53485
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/.vscode/extensions.json"
@@ -0,0 +1,8 @@
+{
+ "recommendations": [
+ "Vue.volar",
+ "Vue.vscode-typescript-vue-plugin",
+ "dbaeumer.vscode-eslint",
+ "esbenp.prettier-vscode"
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/README.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/README.md"
new file mode 100644
index 000000000..49b0a88e5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/README.md"
@@ -0,0 +1,68 @@
+# vue-project
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
+
+## Type Support for `.vue` Imports in TS
+
+TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
+
+If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
+
+1. Disable the built-in TypeScript Extension
+ 1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
+ 2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
+2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
+
+```sh
+npm install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+npm run dev
+```
+
+### Type-Check, Compile and Minify for Production
+
+```sh
+npm run build
+```
+
+### Run Unit Tests with [Vitest](https://vitest.dev/)
+
+```sh
+npm run test:unit
+```
+
+### Run End-to-End Tests with [Cypress](https://www.cypress.io/)
+
+```sh
+npm run test:e2e:dev
+```
+
+This runs the end-to-end tests against the Vite development server.
+It is much faster than the production build.
+
+But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments):
+
+```sh
+npm run build
+npm run test:e2e
+```
+
+### Lint with [ESLint](https://eslint.org/)
+
+```sh
+npm run lint
+```
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress.config.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress.config.ts"
new file mode 100644
index 000000000..0f66080fd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress.config.ts"
@@ -0,0 +1,8 @@
+import { defineConfig } from 'cypress'
+
+export default defineConfig({
+ e2e: {
+ specPattern: 'cypress/e2e/**/*.{cy,spec}.{js,jsx,ts,tsx}',
+ baseUrl: 'http://localhost:4173'
+ }
+})
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/e2e/example.cy.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/e2e/example.cy.ts"
new file mode 100644
index 000000000..7554c35d8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/e2e/example.cy.ts"
@@ -0,0 +1,8 @@
+// https://on.cypress.io/api
+
+describe('My First Test', () => {
+ it('visits the app root url', () => {
+ cy.visit('/')
+ cy.contains('h1', 'You did it!')
+ })
+})
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/e2e/tsconfig.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/e2e/tsconfig.json"
new file mode 100644
index 000000000..37748feb7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/e2e/tsconfig.json"
@@ -0,0 +1,10 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "include": ["./**/*", "../support/**/*"],
+ "compilerOptions": {
+ "isolatedModules": false,
+ "target": "es5",
+ "lib": ["es5", "dom"],
+ "types": ["cypress"]
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/fixtures/example.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/fixtures/example.json"
new file mode 100644
index 000000000..02e425437
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/fixtures/example.json"
@@ -0,0 +1,5 @@
+{
+ "name": "Using fixtures to represent data",
+ "email": "hello@cypress.io",
+ "body": "Fixtures are a great way to mock data for responses to routes"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/support/commands.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/support/commands.ts"
new file mode 100644
index 000000000..9b7bb8e25
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/support/commands.ts"
@@ -0,0 +1,39 @@
+///
+// ***********************************************
+// This example commands.ts shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
+//
+// declare global {
+// namespace Cypress {
+// interface Chainable {
+// login(email: string, password: string): Chainable
+// drag(subject: string, options?: Partial): Chainable
+// dismiss(subject: string, options?: Partial): Chainable
+// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable
+// }
+// }
+// }
+
+export {}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/support/e2e.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/support/e2e.ts"
new file mode 100644
index 000000000..d68db96df
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/cypress/support/e2e.ts"
@@ -0,0 +1,20 @@
+// ***********************************************************
+// This example support/index.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/env.d.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/env.d.ts"
new file mode 100644
index 000000000..11f02fe2a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/env.d.ts"
@@ -0,0 +1 @@
+///
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/index.html"
new file mode 100644
index 000000000..a88854489
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/index.html"
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/package-lock.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/package-lock.json"
new file mode 100644
index 000000000..23d1ad48e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/package-lock.json"
@@ -0,0 +1,13672 @@
+{
+ "name": "vue-project",
+ "version": "0.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "vue-project",
+ "version": "0.0.0",
+ "dependencies": {
+ "pinia": "^2.1.7",
+ "vue": "^3.3.11",
+ "vue-router": "^4.2.5"
+ },
+ "devDependencies": {
+ "@rushstack/eslint-patch": "^1.3.3",
+ "@tsconfig/node18": "^18.2.2",
+ "@types/jsdom": "^21.1.6",
+ "@types/node": "^18.19.3",
+ "@vitejs/plugin-vue": "^4.5.2",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "@vue/eslint-config-prettier": "^8.0.0",
+ "@vue/eslint-config-typescript": "^12.0.0",
+ "@vue/test-utils": "^2.4.3",
+ "@vue/tsconfig": "^0.5.0",
+ "cypress": "^13.6.1",
+ "eslint": "^8.49.0",
+ "eslint-plugin-cypress": "^2.15.1",
+ "eslint-plugin-vue": "^9.17.0",
+ "jsdom": "^23.0.1",
+ "npm-run-all2": "^6.1.1",
+ "prettier": "^3.0.3",
+ "start-server-and-test": "^2.0.3",
+ "typescript": "~5.3.0",
+ "vite": "^5.0.10",
+ "vitest": "^1.0.4",
+ "vue-tsc": "^1.8.25"
+ }
+ },
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://mirrors.tencent.com/npm/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/core/-/core-7.23.7.tgz",
+ "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.7",
+ "@babel/parser": "^7.23.6",
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.7",
+ "@babel/types": "^7.23.6",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz",
+ "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helpers/-/helpers-7.23.7.tgz",
+ "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.7",
+ "@babel/types": "^7.23.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/parser/-/parser-7.23.6.tgz",
+ "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.23.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.22.15",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/traverse/-/traverse-7.23.7.tgz",
+ "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.6",
+ "@babel/types": "^7.23.6",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/types/-/types-7.23.6.tgz",
+ "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/@cypress/request": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@cypress/request/-/request-3.0.1.tgz",
+ "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
+ "dev": true,
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "http-signature": "~1.3.6",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "performance-now": "^2.1.0",
+ "qs": "6.10.4",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "^4.1.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@cypress/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.1.0",
+ "lodash.once": "^4.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz",
+ "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.19.11.tgz",
+ "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz",
+ "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.19.11.tgz",
+ "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz",
+ "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz",
+ "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz",
+ "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz",
+ "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz",
+ "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz",
+ "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz",
+ "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz",
+ "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz",
+ "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz",
+ "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz",
+ "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz",
+ "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz",
+ "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz",
+ "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz",
+ "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz",
+ "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz",
+ "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz",
+ "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz",
+ "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.56.0",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint/js/-/js-8.56.0.tgz",
+ "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
+ "dev": true
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dev": true,
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.13",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+ "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+ "dev": true
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.20",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@one-ini/wasm": {
+ "version": "0.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@one-ini/wasm/-/wasm-0.1.1.tgz",
+ "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
+ "dev": true
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@pkgr/core": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@pkgr/core/-/core-0.1.0.tgz",
+ "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.3.tgz",
+ "integrity": "sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.3.tgz",
+ "integrity": "sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.3.tgz",
+ "integrity": "sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.3.tgz",
+ "integrity": "sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.3.tgz",
+ "integrity": "sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.3.tgz",
+ "integrity": "sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.3.tgz",
+ "integrity": "sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.3.tgz",
+ "integrity": "sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.3.tgz",
+ "integrity": "sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.3.tgz",
+ "integrity": "sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.3.tgz",
+ "integrity": "sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.3.tgz",
+ "integrity": "sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.3.tgz",
+ "integrity": "sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz",
+ "integrity": "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==",
+ "dev": true
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "dev": true,
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
+ "dev": true
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
+ "dev": true
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://mirrors.tencent.com/npm/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node18": {
+ "version": "18.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/@tsconfig/node18/-/node18-18.2.2.tgz",
+ "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==",
+ "dev": true
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
+ },
+ "node_modules/@types/jsdom": {
+ "version": "21.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/@types/jsdom/-/jsdom-21.1.6.tgz",
+ "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "parse5": "^7.0.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://mirrors.tencent.com/npm/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "18.19.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types/node/-/node-18.19.4.tgz",
+ "integrity": "sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true
+ },
+ "node_modules/@types/semver": {
+ "version": "7.5.6",
+ "resolved": "https://mirrors.tencent.com/npm/@types/semver/-/semver-7.5.6.tgz",
+ "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+ "dev": true
+ },
+ "node_modules/@types/sinonjs__fake-timers": {
+ "version": "8.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
+ "dev": true
+ },
+ "node_modules/@types/sizzle": {
+ "version": "2.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/@types/sizzle/-/sizzle-2.3.8.tgz",
+ "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==",
+ "dev": true
+ },
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "dev": true
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://mirrors.tencent.com/npm/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.17.0.tgz",
+ "integrity": "sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.17.0",
+ "@typescript-eslint/type-utils": "6.17.0",
+ "@typescript-eslint/utils": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/parser/-/parser-6.17.0.tgz",
+ "integrity": "sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.17.0",
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/typescript-estree": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/scope-manager/-/scope-manager-6.17.0.tgz",
+ "integrity": "sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/type-utils/-/type-utils-6.17.0.tgz",
+ "integrity": "sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "6.17.0",
+ "@typescript-eslint/utils": "6.17.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/types/-/types-6.17.0.tgz",
+ "integrity": "sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==",
+ "dev": true,
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/typescript-estree/-/typescript-estree-6.17.0.tgz",
+ "integrity": "sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/utils/-/utils-6.17.0.tgz",
+ "integrity": "sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.17.0",
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/typescript-estree": "6.17.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/visitor-keys/-/visitor-keys-6.17.0.tgz",
+ "integrity": "sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.17.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "4.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+ "dev": true,
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0 || ^5.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue-jsx": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
+ "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3",
+ "@vue/babel-plugin-jsx": "^1.1.5"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0 || ^5.0.0",
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@vitest/expect": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/expect/-/expect-1.1.3.tgz",
+ "integrity": "sha512-MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/spy": "1.1.3",
+ "@vitest/utils": "1.1.3",
+ "chai": "^4.3.10"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/runner/-/runner-1.1.3.tgz",
+ "integrity": "sha512-Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/utils": "1.1.3",
+ "p-limit": "^5.0.0",
+ "pathe": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner/node_modules/p-limit": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-5.0.0.tgz",
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@vitest/runner/node_modules/yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/snapshot/-/snapshot-1.1.3.tgz",
+ "integrity": "sha512-U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w==",
+ "dev": true,
+ "dependencies": {
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/spy/-/spy-1.1.3.tgz",
+ "integrity": "sha512-Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ==",
+ "dev": true,
+ "dependencies": {
+ "tinyspy": "^2.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/utils/-/utils-1.1.3.tgz",
+ "integrity": "sha512-Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg==",
+ "dev": true,
+ "dependencies": {
+ "diff-sequences": "^29.6.3",
+ "estree-walker": "^3.0.3",
+ "loupe": "^2.3.7",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@volar/language-core": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@volar/language-core/-/language-core-1.11.1.tgz",
+ "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==",
+ "dev": true,
+ "dependencies": {
+ "@volar/source-map": "1.11.1"
+ }
+ },
+ "node_modules/@volar/source-map": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@volar/source-map/-/source-map-1.11.1.tgz",
+ "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==",
+ "dev": true,
+ "dependencies": {
+ "muggle-string": "^0.3.1"
+ }
+ },
+ "node_modules/@volar/typescript": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@volar/typescript/-/typescript-1.11.1.tgz",
+ "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==",
+ "dev": true,
+ "dependencies": {
+ "@volar/language-core": "1.11.1",
+ "path-browserify": "^1.0.1"
+ }
+ },
+ "node_modules/@vue/babel-helper-vue-transform-on": {
+ "version": "1.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz",
+ "integrity": "sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==",
+ "dev": true
+ },
+ "node_modules/@vue/babel-plugin-jsx": {
+ "version": "1.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz",
+ "integrity": "sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.22.5",
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5",
+ "@vue/babel-helper-vue-transform-on": "^1.1.5",
+ "camelcase": "^6.3.0",
+ "html-tags": "^3.3.1",
+ "svg-tags": "^1.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-core/-/compiler-core-3.4.5.tgz",
+ "integrity": "sha512-Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ==",
+ "dependencies": {
+ "@babel/parser": "^7.23.6",
+ "@vue/shared": "3.4.5",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "node_modules/@vue/compiler-core/node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz",
+ "integrity": "sha512-J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ==",
+ "dependencies": {
+ "@vue/compiler-core": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-sfc/-/compiler-sfc-3.4.5.tgz",
+ "integrity": "sha512-jauvkDuSSUbP0ebhfNqljhShA90YEfX/0wZ+w40oZF43IjGyWYjqYaJbvMJwGOd+9+vODW6eSvnk28f0SGV7OQ==",
+ "dependencies": {
+ "@babel/parser": "^7.23.6",
+ "@vue/compiler-core": "3.4.5",
+ "@vue/compiler-dom": "3.4.5",
+ "@vue/compiler-ssr": "3.4.5",
+ "@vue/shared": "3.4.5",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.5",
+ "postcss": "^8.4.32",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "node_modules/@vue/compiler-sfc/node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-ssr/-/compiler-ssr-3.4.5.tgz",
+ "integrity": "sha512-DDdEcDzj2lWTMfUMMtEpLDhURai9LhM0zSZ219jCt7b2Vyl0/jy3keFgCPMitG0V1S1YG4Cmws3lWHWdxHQOpg==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
+ "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+ },
+ "node_modules/@vue/eslint-config-prettier": {
+ "version": "8.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz",
+ "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-plugin-prettier": "^5.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 8.0.0",
+ "prettier": ">= 3.0.0"
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript": {
+ "version": "12.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz",
+ "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "^6.7.0",
+ "@typescript-eslint/parser": "^6.7.0",
+ "vue-eslint-parser": "^9.3.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0",
+ "eslint-plugin-vue": "^9.0.0",
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/language-core": {
+ "version": "1.8.27",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/language-core/-/language-core-1.8.27.tgz",
+ "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==",
+ "dev": true,
+ "dependencies": {
+ "@volar/language-core": "~1.11.1",
+ "@volar/source-map": "~1.11.1",
+ "@vue/compiler-dom": "^3.3.0",
+ "@vue/shared": "^3.3.0",
+ "computeds": "^0.0.1",
+ "minimatch": "^9.0.3",
+ "muggle-string": "^0.3.1",
+ "path-browserify": "^1.0.1",
+ "vue-template-compiler": "^2.7.14"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/reactivity/-/reactivity-3.4.5.tgz",
+ "integrity": "sha512-BcWkKvjdvqJwb7BhhFkXPLDCecX4d4a6GATvCduJQDLv21PkPowAE5GKuIE5p6RC07/Lp9FMkkq4AYCTVF5KlQ==",
+ "dependencies": {
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/runtime-core/-/runtime-core-3.4.5.tgz",
+ "integrity": "sha512-wh9ELIOQKeWT9SaUPdLrsxRkZv14jp+SJm9aiQGWio+/MWNM3Lib0wE6CoKEqQ9+SCYyGjDBhTOTtO47kCgbkg==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/runtime-dom/-/runtime-dom-3.4.5.tgz",
+ "integrity": "sha512-n5ewvOjyG3IEpqGBahdPXODFSpVlSz3H4LF76Sx0XAqpIOqyJ5bIb2PrdYuH2ogBMAQPh+o5tnoH4nJpBr8U0Q==",
+ "dependencies": {
+ "@vue/runtime-core": "3.4.5",
+ "@vue/shared": "3.4.5",
+ "csstype": "^3.1.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/server-renderer/-/server-renderer-3.4.5.tgz",
+ "integrity": "sha512-jOFc/VE87yvifQpNju12VcqimH8pBLxdcT+t3xMeiED1K6DfH9SORyhFEoZlW5TG2Vwfn3Ul5KE+1aC99xnSBg==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.4.5",
+ "@vue/shared": "3.4.5"
+ },
+ "peerDependencies": {
+ "vue": "3.4.5"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/shared/-/shared-3.4.5.tgz",
+ "integrity": "sha512-6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg=="
+ },
+ "node_modules/@vue/test-utils": {
+ "version": "2.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/test-utils/-/test-utils-2.4.3.tgz",
+ "integrity": "sha512-F4K7mF+ad++VlTrxMJVRnenKSJmO6fkQt2wpRDiKDesQMkfpniGWsqEi/JevxGBo2qEkwwjvTUAoiGJLNx++CA==",
+ "dev": true,
+ "dependencies": {
+ "js-beautify": "^1.14.9",
+ "vue-component-type-helpers": "^1.8.21"
+ },
+ "peerDependencies": {
+ "@vue/server-renderer": "^3.0.1",
+ "vue": "^3.0.1"
+ },
+ "peerDependenciesMeta": {
+ "@vue/server-renderer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/tsconfig": {
+ "version": "0.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/tsconfig/-/tsconfig-0.5.1.tgz",
+ "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==",
+ "dev": true
+ },
+ "node_modules/abbrev": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://mirrors.tencent.com/npm/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-walk/-/acorn-walk-8.3.1.tgz",
+ "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/arch": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/arch/-/arch-2.2.0.tgz",
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://mirrors.tencent.com/npm/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.5",
+ "resolved": "https://mirrors.tencent.com/npm/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
+ "dev": true
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/aws4/-/aws4-1.12.0.tgz",
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
+ "dev": true
+ },
+ "node_modules/axios": {
+ "version": "1.6.5",
+ "resolved": "https://mirrors.tencent.com/npm/axios/-/axios-1.6.5.tgz",
+ "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.4",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/axios/node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/axios/node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "node_modules/blob-util": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/blob-util/-/blob-util-2.0.2.tgz",
+ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
+ "dev": true
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://mirrors.tencent.com/npm/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.22.2",
+ "resolved": "https://mirrors.tencent.com/npm/browserslist/-/browserslist-4.22.2.tgz",
+ "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001565",
+ "electron-to-chromium": "^1.4.601",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://mirrors.tencent.com/npm/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://mirrors.tencent.com/npm/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cachedir": {
+ "version": "2.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/cachedir/-/cachedir-2.4.0.tgz",
+ "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.1",
+ "set-function-length": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001574",
+ "resolved": "https://mirrors.tencent.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001574.tgz",
+ "integrity": "sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "node_modules/chai": {
+ "version": "4.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/chai/-/chai-4.4.0.tgz",
+ "integrity": "sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A==",
+ "dev": true,
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.3",
+ "deep-eql": "^4.1.3",
+ "get-func-name": "^2.0.2",
+ "loupe": "^2.3.6",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+ "dev": true,
+ "dependencies": {
+ "get-func-name": "^2.0.2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/check-more-types": {
+ "version": "2.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/check-more-types/-/check-more-types-2.24.0.tgz",
+ "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/cli-table3/-/cli-table3-0.6.3.tgz",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://mirrors.tencent.com/npm/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "dev": true
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/common-tags": {
+ "version": "1.8.2",
+ "resolved": "https://mirrors.tencent.com/npm/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/computeds": {
+ "version": "0.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/computeds/-/computeds-0.0.1.tgz",
+ "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "node_modules/config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://mirrors.tencent.com/npm/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "node_modules/config-chain/node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssstyle": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/cssstyle/-/cssstyle-4.0.1.tgz",
+ "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==",
+ "dev": true,
+ "dependencies": {
+ "rrweb-cssom": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/cypress": {
+ "version": "13.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/cypress/-/cypress-13.6.2.tgz",
+ "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@cypress/request": "^3.0.0",
+ "@cypress/xvfb": "^1.2.4",
+ "@types/node": "^18.17.5",
+ "@types/sinonjs__fake-timers": "8.1.1",
+ "@types/sizzle": "^2.3.2",
+ "arch": "^2.2.0",
+ "blob-util": "^2.0.2",
+ "bluebird": "^3.7.2",
+ "buffer": "^5.6.0",
+ "cachedir": "^2.3.0",
+ "chalk": "^4.1.0",
+ "check-more-types": "^2.24.0",
+ "cli-cursor": "^3.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
+ "common-tags": "^1.8.0",
+ "dayjs": "^1.10.4",
+ "debug": "^4.3.4",
+ "enquirer": "^2.3.6",
+ "eventemitter2": "6.4.7",
+ "execa": "4.1.0",
+ "executable": "^4.1.1",
+ "extract-zip": "2.0.1",
+ "figures": "^3.2.0",
+ "fs-extra": "^9.1.0",
+ "getos": "^3.2.1",
+ "is-ci": "^3.0.0",
+ "is-installed-globally": "~0.4.0",
+ "lazy-ass": "^1.6.0",
+ "listr2": "^3.8.3",
+ "lodash": "^4.17.21",
+ "log-symbols": "^4.0.0",
+ "minimist": "^1.2.8",
+ "ospath": "^1.2.2",
+ "pretty-bytes": "^5.6.0",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
+ "request-progress": "^3.0.0",
+ "semver": "^7.5.3",
+ "supports-color": "^8.1.1",
+ "tmp": "~0.2.1",
+ "untildify": "^4.0.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "cypress": "bin/cypress"
+ },
+ "engines": {
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/cypress/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/cypress/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/cypress/node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/cypress/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cypress/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cypress/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/cypress/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://mirrors.tencent.com/npm/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/data-urls": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.10",
+ "resolved": "https://mirrors.tencent.com/npm/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==",
+ "dev": true
+ },
+ "node_modules/de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true
+ },
+ "node_modules/deep-eql": {
+ "version": "4.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/deep-eql/-/deep-eql-4.1.3.tgz",
+ "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/define-data-property/-/define-data-property-1.1.1.tgz",
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "dev": true
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/editorconfig": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/editorconfig/-/editorconfig-1.0.4.tgz",
+ "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==",
+ "dev": true,
+ "dependencies": {
+ "@one-ini/wasm": "0.1.1",
+ "commander": "^10.0.0",
+ "minimatch": "9.0.1",
+ "semver": "^7.5.3"
+ },
+ "bin": {
+ "editorconfig": "bin/editorconfig"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/editorconfig/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/editorconfig/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/editorconfig/node_modules/minimatch": {
+ "version": "9.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-9.0.1.tgz",
+ "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/editorconfig/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/editorconfig/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.623",
+ "resolved": "https://mirrors.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz",
+ "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==",
+ "dev": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/esbuild/-/esbuild-0.19.11.tgz",
+ "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.19.11",
+ "@esbuild/android-arm": "0.19.11",
+ "@esbuild/android-arm64": "0.19.11",
+ "@esbuild/android-x64": "0.19.11",
+ "@esbuild/darwin-arm64": "0.19.11",
+ "@esbuild/darwin-x64": "0.19.11",
+ "@esbuild/freebsd-arm64": "0.19.11",
+ "@esbuild/freebsd-x64": "0.19.11",
+ "@esbuild/linux-arm": "0.19.11",
+ "@esbuild/linux-arm64": "0.19.11",
+ "@esbuild/linux-ia32": "0.19.11",
+ "@esbuild/linux-loong64": "0.19.11",
+ "@esbuild/linux-mips64el": "0.19.11",
+ "@esbuild/linux-ppc64": "0.19.11",
+ "@esbuild/linux-riscv64": "0.19.11",
+ "@esbuild/linux-s390x": "0.19.11",
+ "@esbuild/linux-x64": "0.19.11",
+ "@esbuild/netbsd-x64": "0.19.11",
+ "@esbuild/openbsd-x64": "0.19.11",
+ "@esbuild/sunos-x64": "0.19.11",
+ "@esbuild/win32-arm64": "0.19.11",
+ "@esbuild/win32-ia32": "0.19.11",
+ "@esbuild/win32-x64": "0.19.11"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.56.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint/-/eslint-8.56.0.tgz",
+ "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.56.0",
+ "@humanwhocodes/config-array": "^0.11.13",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-cypress": {
+ "version": "2.15.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz",
+ "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==",
+ "dev": true,
+ "dependencies": {
+ "globals": "^13.20.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 3.2.1"
+ }
+ },
+ "node_modules/eslint-plugin-cypress/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-cypress/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz",
+ "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.6"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-vue": {
+ "version": "9.19.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz",
+ "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "natural-compare": "^1.4.0",
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.13",
+ "semver": "^7.5.4",
+ "vue-eslint-parser": "^9.3.1",
+ "xml-name-validator": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/event-stream": {
+ "version": "3.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
+ "dev": true,
+ "dependencies": {
+ "duplexer": "~0.1.1",
+ "from": "~0",
+ "map-stream": "~0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3",
+ "stream-combiner": "~0.0.4",
+ "through": "~2.3.1"
+ }
+ },
+ "node_modules/eventemitter2": {
+ "version": "6.4.7",
+ "resolved": "https://mirrors.tencent.com/npm/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
+ "dev": true
+ },
+ "node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/executable": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/executable/-/executable-4.1.1.tgz",
+ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ]
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.16.0",
+ "resolved": "https://mirrors.tencent.com/npm/fastq/-/fastq-1.16.0.tgz",
+ "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.9",
+ "resolved": "https://mirrors.tencent.com/npm/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.4",
+ "resolved": "https://mirrors.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.4.tgz",
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/foreground-child/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/from": {
+ "version": "0.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+ "dev": true
+ },
+ "node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://mirrors.tencent.com/npm/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-func-name": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/getos": {
+ "version": "3.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/getos/-/getos-3.2.1.tgz",
+ "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
+ "dev": true,
+ "dependencies": {
+ "async": "^3.2.0"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://mirrors.tencent.com/npm/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://mirrors.tencent.com/npm/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "7.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "10.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-10.1.0.tgz",
+ "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-encoding": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/html-tags": {
+ "version": "3.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/http-signature": {
+ "version": "1.3.6",
+ "resolved": "https://mirrors.tencent.com/npm/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^2.0.2",
+ "sshpk": "^1.14.1"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^3.2.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "node_modules/jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://mirrors.tencent.com/npm/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/joi/-/joi-17.11.0.tgz",
+ "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==",
+ "dev": true,
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0",
+ "@hapi/topo": "^5.0.0",
+ "@sideway/address": "^4.1.3",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/js-beautify": {
+ "version": "1.14.11",
+ "resolved": "https://mirrors.tencent.com/npm/js-beautify/-/js-beautify-1.14.11.tgz",
+ "integrity": "sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==",
+ "dev": true,
+ "dependencies": {
+ "config-chain": "^1.1.13",
+ "editorconfig": "^1.0.3",
+ "glob": "^10.3.3",
+ "nopt": "^7.2.0"
+ },
+ "bin": {
+ "css-beautify": "js/bin/css-beautify.js",
+ "html-beautify": "js/bin/html-beautify.js",
+ "js-beautify": "js/bin/js-beautify.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "node_modules/jsdom": {
+ "version": "23.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsdom/-/jsdom-23.1.0.tgz",
+ "integrity": "sha512-wRscu8dBFxi7O65Cvi0jFRDv0Qa7XEHPix8Qg/vlXHLAMQsRWV1EDeQHBermzXf4Dt7JtFgBLbva3iTcBZDXEQ==",
+ "dev": true,
+ "dependencies": {
+ "cssstyle": "^4.0.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.4.3",
+ "form-data": "^4.0.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.2",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.7",
+ "parse5": "^7.1.2",
+ "rrweb-cssom": "^0.6.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.1.3",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^7.0.0",
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0",
+ "ws": "^8.16.0",
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "canvas": "^2.11.2"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jsdom/node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://mirrors.tencent.com/npm/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
+ "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
+ "dev": true
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsprim": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
+ "dev": true,
+ "engines": {
+ "node": "> 0.8"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
+ "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://mirrors.tencent.com/npm/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/listr2/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/listr2/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/listr2/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/listr2/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://mirrors.tencent.com/npm/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/log-symbols/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-symbols/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/log-update/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/loupe": {
+ "version": "2.3.7",
+ "resolved": "https://mirrors.tencent.com/npm/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "dev": true,
+ "dependencies": {
+ "get-func-name": "^2.0.1"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.5",
+ "resolved": "https://mirrors.tencent.com/npm/magic-string/-/magic-string-0.30.5.tgz",
+ "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+ "dev": true
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://mirrors.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://mirrors.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://mirrors.tencent.com/npm/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mlly": {
+ "version": "1.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/mlly/-/mlly-1.4.2.tgz",
+ "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.10.0",
+ "pathe": "^1.1.1",
+ "pkg-types": "^1.0.3",
+ "ufo": "^1.3.0"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/muggle-string": {
+ "version": "0.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/muggle-string/-/muggle-string-0.3.1.tgz",
+ "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://mirrors.tencent.com/npm/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://mirrors.tencent.com/npm/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+ "dev": true
+ },
+ "node_modules/nopt": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/nopt/-/nopt-7.2.0.tgz",
+ "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
+ "dev": true,
+ "dependencies": {
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/npm-run-all2": {
+ "version": "6.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/npm-run-all2/-/npm-run-all2-6.1.1.tgz",
+ "integrity": "sha512-lWLbkPZ5BSdXtN8lR+0rc8caKoPdymycpZksyDEC9MOBvfdwTXZ0uVhb7bMcGeXv2/BKtfQuo6Zn3zfc8rxNXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "cross-spawn": "^7.0.3",
+ "memorystream": "^0.3.1",
+ "minimatch": "^9.0.0",
+ "pidtree": "^0.6.0",
+ "read-pkg": "^8.0.0",
+ "shell-quote": "^1.7.3"
+ },
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "npm-run-all2": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0",
+ "npm": ">= 8"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/nwsapi": {
+ "version": "2.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/nwsapi/-/nwsapi-2.2.7.tgz",
+ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
+ "dev": true
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dev": true,
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ospath": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/ospath/-/ospath-1.2.2.tgz",
+ "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
+ "dev": true
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "7.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/parse-json/-/parse-json-7.1.1.tgz",
+ "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parse-json/node_modules/type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-scurry": {
+ "version": "1.10.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-scurry/-/path-scurry-1.10.1.tgz",
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-10.1.0.tgz",
+ "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/pathe/-/pathe-1.1.1.tgz",
+ "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
+ "dev": true
+ },
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "dev": true,
+ "dependencies": {
+ "through": "~2.3"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true,
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinia": {
+ "version": "2.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/pinia/-/pinia-2.1.7.tgz",
+ "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.0",
+ "vue-demi": ">=0.14.5"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.4.0",
+ "typescript": ">=4.4.4",
+ "vue": "^2.6.14 || ^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/vue-demi": {
+ "version": "0.14.6",
+ "resolved": "https://mirrors.tencent.com/npm/vue-demi/-/vue-demi-0.14.6.tgz",
+ "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/pkg-types/-/pkg-types-1.0.3.tgz",
+ "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+ "dev": true,
+ "dependencies": {
+ "jsonc-parser": "^3.2.0",
+ "mlly": "^1.2.0",
+ "pathe": "^1.1.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.33",
+ "resolved": "https://mirrors.tencent.com/npm/postcss/-/postcss-8.4.33.tgz",
+ "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.15",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
+ "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/prettier/-/prettier-3.1.1.tgz",
+ "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/pretty-bytes": {
+ "version": "5.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
+ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://mirrors.tencent.com/npm/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=",
+ "dev": true
+ },
+ "node_modules/ps-tree": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
+ "dev": true,
+ "dependencies": {
+ "event-stream": "=3.3.4"
+ },
+ "bin": {
+ "ps-tree": "bin/ps-tree.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.10.4",
+ "resolved": "https://mirrors.tencent.com/npm/qs/-/qs-6.10.4.tgz",
+ "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
+ "dev": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "node_modules/read-pkg": {
+ "version": "8.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/read-pkg/-/read-pkg-8.1.0.tgz",
+ "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.1",
+ "normalize-package-data": "^6.0.0",
+ "parse-json": "^7.0.0",
+ "type-fest": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "4.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-4.9.0.tgz",
+ "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/request-progress": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/request-progress/-/request-progress-3.0.0.tgz",
+ "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
+ "dev": true,
+ "dependencies": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/rollup/-/rollup-4.9.3.tgz",
+ "integrity": "sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.9.3",
+ "@rollup/rollup-android-arm64": "4.9.3",
+ "@rollup/rollup-darwin-arm64": "4.9.3",
+ "@rollup/rollup-darwin-x64": "4.9.3",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.9.3",
+ "@rollup/rollup-linux-arm64-gnu": "4.9.3",
+ "@rollup/rollup-linux-arm64-musl": "4.9.3",
+ "@rollup/rollup-linux-riscv64-gnu": "4.9.3",
+ "@rollup/rollup-linux-x64-gnu": "4.9.3",
+ "@rollup/rollup-linux-x64-musl": "4.9.3",
+ "@rollup/rollup-win32-arm64-msvc": "4.9.3",
+ "@rollup/rollup-win32-ia32-msvc": "4.9.3",
+ "@rollup/rollup-win32-x64-msvc": "4.9.3",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rrweb-cssom": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
+ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
+ "dev": true
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
+ "dev": true,
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=v12.22.7"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/set-function-length/-/set-function-length-1.1.1.tgz",
+ "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.1",
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.16",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
+ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
+ "dev": true
+ },
+ "node_modules/split": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/split/-/split-0.3.3.tgz",
+ "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
+ "dev": true,
+ "dependencies": {
+ "through": "2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://mirrors.tencent.com/npm/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dev": true,
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=",
+ "dev": true
+ },
+ "node_modules/start-server-and-test": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/start-server-and-test/-/start-server-and-test-2.0.3.tgz",
+ "integrity": "sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==",
+ "dev": true,
+ "dependencies": {
+ "arg": "^5.0.2",
+ "bluebird": "3.7.2",
+ "check-more-types": "2.24.0",
+ "debug": "4.3.4",
+ "execa": "5.1.1",
+ "lazy-ass": "1.6.0",
+ "ps-tree": "1.2.0",
+ "wait-on": "7.2.0"
+ },
+ "bin": {
+ "server-test": "src/bin/start.js",
+ "start-server-and-test": "src/bin/start.js",
+ "start-test": "src/bin/start.js"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/start-server-and-test/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/start-server-and-test/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/start-server-and-test/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/std-env": {
+ "version": "3.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/std-env/-/std-env-3.7.0.tgz",
+ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
+ "dev": true
+ },
+ "node_modules/stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "dev": true,
+ "dependencies": {
+ "duplexer": "~0.1.1"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-literal/-/strip-literal-1.3.0.tgz",
+ "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
+ },
+ "node_modules/synckit": {
+ "version": "0.8.8",
+ "resolved": "https://mirrors.tencent.com/npm/synckit/-/synckit-0.8.8.tgz",
+ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
+ "dev": true,
+ "dependencies": {
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "node_modules/throttleit": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/throttleit/-/throttleit-1.0.1.tgz",
+ "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "node_modules/tinybench": {
+ "version": "2.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/tinybench/-/tinybench-2.5.1.tgz",
+ "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==",
+ "dev": true
+ },
+ "node_modules/tinypool": {
+ "version": "0.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/tinypool/-/tinypool-0.8.1.tgz",
+ "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tinyspy": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/tinyspy/-/tinyspy-2.2.0.tgz",
+ "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/tmp/-/tmp-0.2.1.tgz",
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "dev": true,
+ "dependencies": {
+ "rimraf": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.17.0"
+ }
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "4.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dev": true,
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/tr46/-/tr46-5.0.0.tgz",
+ "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
+ "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.13.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://mirrors.tencent.com/npm/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "devOptional": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/ufo/-/ufo-1.3.2.tgz",
+ "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==",
+ "dev": true
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://mirrors.tencent.com/npm/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://mirrors.tencent.com/npm/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://mirrors.tencent.com/npm/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/vite/-/vite-5.0.11.tgz",
+ "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.19.3",
+ "postcss": "^8.4.32",
+ "rollup": "^4.2.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-node": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/vite-node/-/vite-node-1.1.3.tgz",
+ "integrity": "sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==",
+ "dev": true,
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.3.4",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "vite": "^5.0.0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/vitest": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/vitest/-/vitest-1.1.3.tgz",
+ "integrity": "sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/expect": "1.1.3",
+ "@vitest/runner": "1.1.3",
+ "@vitest/snapshot": "1.1.3",
+ "@vitest/spy": "1.1.3",
+ "@vitest/utils": "1.1.3",
+ "acorn-walk": "^8.3.1",
+ "cac": "^6.7.14",
+ "chai": "^4.3.10",
+ "debug": "^4.3.4",
+ "execa": "^8.0.1",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "std-env": "^3.5.0",
+ "strip-literal": "^1.3.0",
+ "tinybench": "^2.5.1",
+ "tinypool": "^0.8.1",
+ "vite": "^5.0.0",
+ "vite-node": "1.1.3",
+ "why-is-node-running": "^2.2.2"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "^1.0.0",
+ "@vitest/ui": "^1.0.0",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vitest/node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/vitest/node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/vitest/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/npm-run-path": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/npm-run-path/-/npm-run-path-5.2.0.tgz",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/vitest/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/vue/-/vue-3.4.5.tgz",
+ "integrity": "sha512-VH6nHFhLPjgu2oh5vEBXoNZxsGHuZNr3qf4PHClwJWw6IDqw6B3x+4J+ABdoZ0aJuT8Zi0zf3GpGlLQCrGWHrw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.5",
+ "@vue/compiler-sfc": "3.4.5",
+ "@vue/runtime-dom": "3.4.5",
+ "@vue/server-renderer": "3.4.5",
+ "@vue/shared": "3.4.5"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-component-type-helpers": {
+ "version": "1.8.27",
+ "resolved": "https://mirrors.tencent.com/npm/vue-component-type-helpers/-/vue-component-type-helpers-1.8.27.tgz",
+ "integrity": "sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==",
+ "dev": true
+ },
+ "node_modules/vue-eslint-parser": {
+ "version": "9.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz",
+ "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
+ "esquery": "^1.4.0",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.6"
+ },
+ "engines": {
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
+ "node_modules/vue-eslint-parser/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-eslint-parser/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-eslint-parser/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/vue-router": {
+ "version": "4.2.5",
+ "resolved": "https://mirrors.tencent.com/npm/vue-router/-/vue-router-4.2.5.tgz",
+ "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
+ "node_modules/vue-template-compiler": {
+ "version": "2.7.16",
+ "resolved": "https://mirrors.tencent.com/npm/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
+ "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
+ "dev": true,
+ "dependencies": {
+ "de-indent": "^1.0.2",
+ "he": "^1.2.0"
+ }
+ },
+ "node_modules/vue-tsc": {
+ "version": "1.8.27",
+ "resolved": "https://mirrors.tencent.com/npm/vue-tsc/-/vue-tsc-1.8.27.tgz",
+ "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==",
+ "dev": true,
+ "dependencies": {
+ "@volar/typescript": "~1.11.1",
+ "@vue/language-core": "1.8.27",
+ "semver": "^7.5.4"
+ },
+ "bin": {
+ "vue-tsc": "bin/vue-tsc.js"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/vue-tsc/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-tsc/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-tsc/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/w3c-xmlserializer": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
+ "dev": true,
+ "dependencies": {
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/wait-on": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/wait-on/-/wait-on-7.2.0.tgz",
+ "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
+ "dev": true,
+ "dependencies": {
+ "axios": "^1.6.1",
+ "joi": "^17.11.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.8",
+ "rxjs": "^7.8.1"
+ },
+ "bin": {
+ "wait-on": "bin/wait-on"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "dev": true,
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "14.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-url/-/whatwg-url-14.0.0.tgz",
+ "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "^5.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/why-is-node-running": {
+ "version": "2.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
+ "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
+ "dev": true,
+ "dependencies": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/ws": {
+ "version": "8.16.0",
+ "resolved": "https://mirrors.tencent.com/npm/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://mirrors.tencent.com/npm/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true
+ },
+ "@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/core/-/core-7.23.7.tgz",
+ "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.7",
+ "@babel/parser": "^7.23.6",
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.7",
+ "@babel/types": "^7.23.6",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz",
+ "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.20",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true
+ },
+ "@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.23.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
+ "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.23.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.15"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "dev": true
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "dev": true
+ },
+ "@babel/helpers": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/helpers/-/helpers-7.23.7.tgz",
+ "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.23.7",
+ "@babel/types": "^7.23.6"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/parser/-/parser-7.23.6.tgz",
+ "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ=="
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.23.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
+ "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.23.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-typescript": "^7.23.3"
+ }
+ },
+ "@babel/template": {
+ "version": "7.22.15",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.23.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/traverse/-/traverse-7.23.7.tgz",
+ "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.6",
+ "@babel/types": "^7.23.6",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.23.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel/types/-/types-7.23.6.tgz",
+ "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@cypress/request": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@cypress/request/-/request-3.0.1.tgz",
+ "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "http-signature": "~1.3.6",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "performance-now": "^2.1.0",
+ "qs": "6.10.4",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "^4.1.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^8.3.2"
+ }
+ },
+ "@cypress/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "lodash.once": "^4.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "@esbuild/aix-ppc64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz",
+ "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.19.11.tgz",
+ "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz",
+ "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.19.11.tgz",
+ "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz",
+ "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz",
+ "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz",
+ "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz",
+ "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz",
+ "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz",
+ "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz",
+ "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz",
+ "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz",
+ "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz",
+ "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz",
+ "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz",
+ "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz",
+ "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz",
+ "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz",
+ "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz",
+ "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz",
+ "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz",
+ "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz",
+ "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==",
+ "dev": true,
+ "optional": true
+ },
+ "@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+ "dev": true
+ },
+ "@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ }
+ }
+ },
+ "@eslint/js": {
+ "version": "8.56.0",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint/js/-/js-8.56.0.tgz",
+ "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
+ "dev": true
+ },
+ "@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
+ "dev": true
+ },
+ "@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dev": true,
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.13",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+ "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^2.0.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+ "dev": true
+ },
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
+ "requires": {
+ "@sinclair/typebox": "^0.27.8"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "dev": true
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.20",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@one-ini/wasm": {
+ "version": "0.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@one-ini/wasm/-/wasm-0.1.1.tgz",
+ "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
+ "dev": true
+ },
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true
+ },
+ "@pkgr/core": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@pkgr/core/-/core-0.1.0.tgz",
+ "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==",
+ "dev": true
+ },
+ "@rollup/rollup-android-arm-eabi": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.3.tgz",
+ "integrity": "sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-android-arm64": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.3.tgz",
+ "integrity": "sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-arm64": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.3.tgz",
+ "integrity": "sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-x64": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.3.tgz",
+ "integrity": "sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.3.tgz",
+ "integrity": "sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.3.tgz",
+ "integrity": "sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-musl": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.3.tgz",
+ "integrity": "sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.3.tgz",
+ "integrity": "sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-gnu": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.3.tgz",
+ "integrity": "sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-musl": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.3.tgz",
+ "integrity": "sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.3.tgz",
+ "integrity": "sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.3.tgz",
+ "integrity": "sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-msvc": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.3.tgz",
+ "integrity": "sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rushstack/eslint-patch": {
+ "version": "1.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz",
+ "integrity": "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==",
+ "dev": true
+ },
+ "@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "dev": true,
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
+ "dev": true
+ },
+ "@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
+ "dev": true
+ },
+ "@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://mirrors.tencent.com/npm/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "@tsconfig/node18": {
+ "version": "18.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/@tsconfig/node18/-/node18-18.2.2.tgz",
+ "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==",
+ "dev": true
+ },
+ "@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
+ },
+ "@types/jsdom": {
+ "version": "21.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/@types/jsdom/-/jsdom-21.1.6.tgz",
+ "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "parse5": "^7.0.0"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://mirrors.tencent.com/npm/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "18.19.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types/node/-/node-18.19.4.tgz",
+ "integrity": "sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==",
+ "dev": true,
+ "requires": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true
+ },
+ "@types/semver": {
+ "version": "7.5.6",
+ "resolved": "https://mirrors.tencent.com/npm/@types/semver/-/semver-7.5.6.tgz",
+ "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+ "dev": true
+ },
+ "@types/sinonjs__fake-timers": {
+ "version": "8.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
+ "dev": true
+ },
+ "@types/sizzle": {
+ "version": "2.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/@types/sizzle/-/sizzle-2.3.8.tgz",
+ "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==",
+ "dev": true
+ },
+ "@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "dev": true
+ },
+ "@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://mirrors.tencent.com/npm/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.17.0.tgz",
+ "integrity": "sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.17.0",
+ "@typescript-eslint/type-utils": "6.17.0",
+ "@typescript-eslint/utils": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/parser/-/parser-6.17.0.tgz",
+ "integrity": "sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "6.17.0",
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/typescript-estree": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/scope-manager/-/scope-manager-6.17.0.tgz",
+ "integrity": "sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/type-utils/-/type-utils-6.17.0.tgz",
+ "integrity": "sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "6.17.0",
+ "@typescript-eslint/utils": "6.17.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/types/-/types-6.17.0.tgz",
+ "integrity": "sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/typescript-estree/-/typescript-estree-6.17.0.tgz",
+ "integrity": "sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/visitor-keys": "6.17.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/utils/-/utils-6.17.0.tgz",
+ "integrity": "sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.17.0",
+ "@typescript-eslint/types": "6.17.0",
+ "@typescript-eslint/typescript-estree": "6.17.0",
+ "semver": "^7.5.4"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "6.17.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint/visitor-keys/-/visitor-keys-6.17.0.tgz",
+ "integrity": "sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "6.17.0",
+ "eslint-visitor-keys": "^3.4.1"
+ }
+ },
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "@vitejs/plugin-vue": {
+ "version": "4.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+ "dev": true,
+ "requires": {}
+ },
+ "@vitejs/plugin-vue-jsx": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
+ "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3",
+ "@vue/babel-plugin-jsx": "^1.1.5"
+ }
+ },
+ "@vitest/expect": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/expect/-/expect-1.1.3.tgz",
+ "integrity": "sha512-MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg==",
+ "dev": true,
+ "requires": {
+ "@vitest/spy": "1.1.3",
+ "@vitest/utils": "1.1.3",
+ "chai": "^4.3.10"
+ }
+ },
+ "@vitest/runner": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/runner/-/runner-1.1.3.tgz",
+ "integrity": "sha512-Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g==",
+ "dev": true,
+ "requires": {
+ "@vitest/utils": "1.1.3",
+ "p-limit": "^5.0.0",
+ "pathe": "^1.1.1"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-5.0.0.tgz",
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^1.0.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true
+ }
+ }
+ },
+ "@vitest/snapshot": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/snapshot/-/snapshot-1.1.3.tgz",
+ "integrity": "sha512-U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w==",
+ "dev": true,
+ "requires": {
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "pretty-format": "^29.7.0"
+ }
+ },
+ "@vitest/spy": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/spy/-/spy-1.1.3.tgz",
+ "integrity": "sha512-Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ==",
+ "dev": true,
+ "requires": {
+ "tinyspy": "^2.2.0"
+ }
+ },
+ "@vitest/utils": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vitest/utils/-/utils-1.1.3.tgz",
+ "integrity": "sha512-Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg==",
+ "dev": true,
+ "requires": {
+ "diff-sequences": "^29.6.3",
+ "estree-walker": "^3.0.3",
+ "loupe": "^2.3.7",
+ "pretty-format": "^29.7.0"
+ }
+ },
+ "@volar/language-core": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@volar/language-core/-/language-core-1.11.1.tgz",
+ "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==",
+ "dev": true,
+ "requires": {
+ "@volar/source-map": "1.11.1"
+ }
+ },
+ "@volar/source-map": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@volar/source-map/-/source-map-1.11.1.tgz",
+ "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==",
+ "dev": true,
+ "requires": {
+ "muggle-string": "^0.3.1"
+ }
+ },
+ "@volar/typescript": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@volar/typescript/-/typescript-1.11.1.tgz",
+ "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==",
+ "dev": true,
+ "requires": {
+ "@volar/language-core": "1.11.1",
+ "path-browserify": "^1.0.1"
+ }
+ },
+ "@vue/babel-helper-vue-transform-on": {
+ "version": "1.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz",
+ "integrity": "sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==",
+ "dev": true
+ },
+ "@vue/babel-plugin-jsx": {
+ "version": "1.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz",
+ "integrity": "sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.22.5",
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5",
+ "@vue/babel-helper-vue-transform-on": "^1.1.5",
+ "camelcase": "^6.3.0",
+ "html-tags": "^3.3.1",
+ "svg-tags": "^1.0.0"
+ }
+ },
+ "@vue/compiler-core": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-core/-/compiler-core-3.4.5.tgz",
+ "integrity": "sha512-Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ==",
+ "requires": {
+ "@babel/parser": "^7.23.6",
+ "@vue/shared": "3.4.5",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.0.2"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ }
+ }
+ },
+ "@vue/compiler-dom": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz",
+ "integrity": "sha512-J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ==",
+ "requires": {
+ "@vue/compiler-core": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-sfc/-/compiler-sfc-3.4.5.tgz",
+ "integrity": "sha512-jauvkDuSSUbP0ebhfNqljhShA90YEfX/0wZ+w40oZF43IjGyWYjqYaJbvMJwGOd+9+vODW6eSvnk28f0SGV7OQ==",
+ "requires": {
+ "@babel/parser": "^7.23.6",
+ "@vue/compiler-core": "3.4.5",
+ "@vue/compiler-dom": "3.4.5",
+ "@vue/compiler-ssr": "3.4.5",
+ "@vue/shared": "3.4.5",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.5",
+ "postcss": "^8.4.32",
+ "source-map-js": "^1.0.2"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ }
+ }
+ },
+ "@vue/compiler-ssr": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/compiler-ssr/-/compiler-ssr-3.4.5.tgz",
+ "integrity": "sha512-DDdEcDzj2lWTMfUMMtEpLDhURai9LhM0zSZ219jCt7b2Vyl0/jy3keFgCPMitG0V1S1YG4Cmws3lWHWdxHQOpg==",
+ "requires": {
+ "@vue/compiler-dom": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "@vue/devtools-api": {
+ "version": "6.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
+ "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+ },
+ "@vue/eslint-config-prettier": {
+ "version": "8.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz",
+ "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==",
+ "dev": true,
+ "requires": {
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-plugin-prettier": "^5.0.0"
+ }
+ },
+ "@vue/eslint-config-typescript": {
+ "version": "12.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz",
+ "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/eslint-plugin": "^6.7.0",
+ "@typescript-eslint/parser": "^6.7.0",
+ "vue-eslint-parser": "^9.3.1"
+ }
+ },
+ "@vue/language-core": {
+ "version": "1.8.27",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/language-core/-/language-core-1.8.27.tgz",
+ "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==",
+ "dev": true,
+ "requires": {
+ "@volar/language-core": "~1.11.1",
+ "@volar/source-map": "~1.11.1",
+ "@vue/compiler-dom": "^3.3.0",
+ "@vue/shared": "^3.3.0",
+ "computeds": "^0.0.1",
+ "minimatch": "^9.0.3",
+ "muggle-string": "^0.3.1",
+ "path-browserify": "^1.0.1",
+ "vue-template-compiler": "^2.7.14"
+ }
+ },
+ "@vue/reactivity": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/reactivity/-/reactivity-3.4.5.tgz",
+ "integrity": "sha512-BcWkKvjdvqJwb7BhhFkXPLDCecX4d4a6GATvCduJQDLv21PkPowAE5GKuIE5p6RC07/Lp9FMkkq4AYCTVF5KlQ==",
+ "requires": {
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "@vue/runtime-core": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/runtime-core/-/runtime-core-3.4.5.tgz",
+ "integrity": "sha512-wh9ELIOQKeWT9SaUPdLrsxRkZv14jp+SJm9aiQGWio+/MWNM3Lib0wE6CoKEqQ9+SCYyGjDBhTOTtO47kCgbkg==",
+ "requires": {
+ "@vue/reactivity": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/runtime-dom/-/runtime-dom-3.4.5.tgz",
+ "integrity": "sha512-n5ewvOjyG3IEpqGBahdPXODFSpVlSz3H4LF76Sx0XAqpIOqyJ5bIb2PrdYuH2ogBMAQPh+o5tnoH4nJpBr8U0Q==",
+ "requires": {
+ "@vue/runtime-core": "3.4.5",
+ "@vue/shared": "3.4.5",
+ "csstype": "^3.1.3"
+ }
+ },
+ "@vue/server-renderer": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/server-renderer/-/server-renderer-3.4.5.tgz",
+ "integrity": "sha512-jOFc/VE87yvifQpNju12VcqimH8pBLxdcT+t3xMeiED1K6DfH9SORyhFEoZlW5TG2Vwfn3Ul5KE+1aC99xnSBg==",
+ "requires": {
+ "@vue/compiler-ssr": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/shared/-/shared-3.4.5.tgz",
+ "integrity": "sha512-6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg=="
+ },
+ "@vue/test-utils": {
+ "version": "2.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/test-utils/-/test-utils-2.4.3.tgz",
+ "integrity": "sha512-F4K7mF+ad++VlTrxMJVRnenKSJmO6fkQt2wpRDiKDesQMkfpniGWsqEi/JevxGBo2qEkwwjvTUAoiGJLNx++CA==",
+ "dev": true,
+ "requires": {
+ "js-beautify": "^1.14.9",
+ "vue-component-type-helpers": "^1.8.21"
+ }
+ },
+ "@vue/tsconfig": {
+ "version": "0.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@vue/tsconfig/-/tsconfig-0.5.1.tgz",
+ "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "8.11.3",
+ "resolved": "https://mirrors.tencent.com/npm/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "acorn-walk": {
+ "version": "8.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-walk/-/acorn-walk-8.3.1.tgz",
+ "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
+ "dev": true
+ },
+ "agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4"
+ }
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.21.3"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "arch": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/arch/-/arch-2.2.0.tgz",
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+ "dev": true
+ },
+ "arg": {
+ "version": "5.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.6",
+ "resolved": "https://mirrors.tencent.com/npm/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "async": {
+ "version": "3.2.5",
+ "resolved": "https://mirrors.tencent.com/npm/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/aws4/-/aws4-1.12.0.tgz",
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
+ "dev": true
+ },
+ "axios": {
+ "version": "1.6.5",
+ "resolved": "https://mirrors.tencent.com/npm/axios/-/axios-1.6.5.tgz",
+ "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "^1.15.4",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "blob-util": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/blob-util/-/blob-util-2.0.2.tgz",
+ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://mirrors.tencent.com/npm/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.22.2",
+ "resolved": "https://mirrors.tencent.com/npm/browserslist/-/browserslist-4.22.2.tgz",
+ "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001565",
+ "electron-to-chromium": "^1.4.601",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://mirrors.tencent.com/npm/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true
+ },
+ "cac": {
+ "version": "6.7.14",
+ "resolved": "https://mirrors.tencent.com/npm/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "dev": true
+ },
+ "cachedir": {
+ "version": "2.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/cachedir/-/cachedir-2.4.0.tgz",
+ "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
+ "dev": true
+ },
+ "call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.1",
+ "set-function-length": "^1.1.1"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001574",
+ "resolved": "https://mirrors.tencent.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001574.tgz",
+ "integrity": "sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "chai": {
+ "version": "4.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/chai/-/chai-4.4.0.tgz",
+ "integrity": "sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.3",
+ "deep-eql": "^4.1.3",
+ "get-func-name": "^2.0.2",
+ "loupe": "^2.3.6",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.8"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "check-error": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+ "dev": true,
+ "requires": {
+ "get-func-name": "^2.0.2"
+ }
+ },
+ "check-more-types": {
+ "version": "2.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/check-more-types/-/check-more-types-2.24.0.tgz",
+ "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-table3": {
+ "version": "0.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/cli-table3/-/cli-table3-0.6.3.tgz",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
+ "dev": true,
+ "requires": {
+ "@colors/colors": "1.5.0",
+ "string-width": "^4.2.0"
+ }
+ },
+ "cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "colorette": {
+ "version": "2.0.20",
+ "resolved": "https://mirrors.tencent.com/npm/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true
+ },
+ "common-tags": {
+ "version": "1.8.2",
+ "resolved": "https://mirrors.tencent.com/npm/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+ "dev": true
+ },
+ "computeds": {
+ "version": "0.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/computeds/-/computeds-0.0.1.tgz",
+ "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://mirrors.tencent.com/npm/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ },
+ "dependencies": {
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ }
+ }
+ },
+ "convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
+ "cssstyle": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/cssstyle/-/cssstyle-4.0.1.tgz",
+ "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==",
+ "dev": true,
+ "requires": {
+ "rrweb-cssom": "^0.6.0"
+ }
+ },
+ "csstype": {
+ "version": "3.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "cypress": {
+ "version": "13.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/cypress/-/cypress-13.6.2.tgz",
+ "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==",
+ "dev": true,
+ "requires": {
+ "@cypress/request": "^3.0.0",
+ "@cypress/xvfb": "^1.2.4",
+ "@types/node": "^18.17.5",
+ "@types/sinonjs__fake-timers": "8.1.1",
+ "@types/sizzle": "^2.3.2",
+ "arch": "^2.2.0",
+ "blob-util": "^2.0.2",
+ "bluebird": "^3.7.2",
+ "buffer": "^5.6.0",
+ "cachedir": "^2.3.0",
+ "chalk": "^4.1.0",
+ "check-more-types": "^2.24.0",
+ "cli-cursor": "^3.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
+ "common-tags": "^1.8.0",
+ "dayjs": "^1.10.4",
+ "debug": "^4.3.4",
+ "enquirer": "^2.3.6",
+ "eventemitter2": "6.4.7",
+ "execa": "4.1.0",
+ "executable": "^4.1.1",
+ "extract-zip": "2.0.1",
+ "figures": "^3.2.0",
+ "fs-extra": "^9.1.0",
+ "getos": "^3.2.1",
+ "is-ci": "^3.0.0",
+ "is-installed-globally": "~0.4.0",
+ "lazy-ass": "^1.6.0",
+ "listr2": "^3.8.3",
+ "lodash": "^4.17.21",
+ "log-symbols": "^4.0.0",
+ "minimist": "^1.2.8",
+ "ospath": "^1.2.2",
+ "pretty-bytes": "^5.6.0",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
+ "request-progress": "^3.0.0",
+ "semver": "^7.5.3",
+ "supports-color": "^8.1.1",
+ "tmp": "~0.2.1",
+ "untildify": "^4.0.0",
+ "yauzl": "^2.10.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://mirrors.tencent.com/npm/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "data-urls": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
+ "dev": true,
+ "requires": {
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
+ }
+ },
+ "dayjs": {
+ "version": "1.11.10",
+ "resolved": "https://mirrors.tencent.com/npm/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==",
+ "dev": true
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "4.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/deep-eql/-/deep-eql-4.1.3.tgz",
+ "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "define-data-property": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/define-data-property/-/define-data-property-1.1.1.tgz",
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "dev": true
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "editorconfig": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/editorconfig/-/editorconfig-1.0.4.tgz",
+ "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==",
+ "dev": true,
+ "requires": {
+ "@one-ini/wasm": "0.1.1",
+ "commander": "^10.0.0",
+ "minimatch": "9.0.1",
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "10.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-9.0.1.tgz",
+ "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "electron-to-chromium": {
+ "version": "1.4.623",
+ "resolved": "https://mirrors.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz",
+ "integrity": "sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "entities": {
+ "version": "4.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "esbuild": {
+ "version": "0.19.11",
+ "resolved": "https://mirrors.tencent.com/npm/esbuild/-/esbuild-0.19.11.tgz",
+ "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==",
+ "dev": true,
+ "requires": {
+ "@esbuild/aix-ppc64": "0.19.11",
+ "@esbuild/android-arm": "0.19.11",
+ "@esbuild/android-arm64": "0.19.11",
+ "@esbuild/android-x64": "0.19.11",
+ "@esbuild/darwin-arm64": "0.19.11",
+ "@esbuild/darwin-x64": "0.19.11",
+ "@esbuild/freebsd-arm64": "0.19.11",
+ "@esbuild/freebsd-x64": "0.19.11",
+ "@esbuild/linux-arm": "0.19.11",
+ "@esbuild/linux-arm64": "0.19.11",
+ "@esbuild/linux-ia32": "0.19.11",
+ "@esbuild/linux-loong64": "0.19.11",
+ "@esbuild/linux-mips64el": "0.19.11",
+ "@esbuild/linux-ppc64": "0.19.11",
+ "@esbuild/linux-riscv64": "0.19.11",
+ "@esbuild/linux-s390x": "0.19.11",
+ "@esbuild/linux-x64": "0.19.11",
+ "@esbuild/netbsd-x64": "0.19.11",
+ "@esbuild/openbsd-x64": "0.19.11",
+ "@esbuild/sunos-x64": "0.19.11",
+ "@esbuild/win32-arm64": "0.19.11",
+ "@esbuild/win32-ia32": "0.19.11",
+ "@esbuild/win32-x64": "0.19.11"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "8.56.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint/-/eslint-8.56.0.tgz",
+ "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.56.0",
+ "@humanwhocodes/config-array": "^0.11.13",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-plugin-cypress": {
+ "version": "2.15.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz",
+ "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==",
+ "dev": true,
+ "requires": {
+ "globals": "^13.20.0"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz",
+ "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.6"
+ }
+ },
+ "eslint-plugin-vue": {
+ "version": "9.19.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz",
+ "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "natural-compare": "^1.4.0",
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.13",
+ "semver": "^7.5.4",
+ "vue-eslint-parser": "^9.3.1",
+ "xml-name-validator": "^4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ }
+ },
+ "esquery": {
+ "version": "1.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ },
+ "estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "event-stream": {
+ "version": "3.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
+ "dev": true,
+ "requires": {
+ "duplexer": "~0.1.1",
+ "from": "~0",
+ "map-stream": "~0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3",
+ "stream-combiner": "~0.0.4",
+ "through": "~2.3.1"
+ }
+ },
+ "eventemitter2": {
+ "version": "6.4.7",
+ "resolved": "https://mirrors.tencent.com/npm/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
+ "dev": true
+ },
+ "execa": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "executable": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/executable/-/executable-4.1.1.tgz",
+ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "dev": true,
+ "requires": {
+ "pify": "^2.2.0"
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "requires": {
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.16.0",
+ "resolved": "https://mirrors.tencent.com/npm/fastq/-/fastq-1.16.0.tgz",
+ "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.9",
+ "resolved": "https://mirrors.tencent.com/npm/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.15.4",
+ "resolved": "https://mirrors.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.4.tgz",
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+ "dev": true
+ },
+ "foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "dependencies": {
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://mirrors.tencent.com/npm/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "getos": {
+ "version": "3.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/getos/-/getos-3.2.1.tgz",
+ "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
+ "dev": true,
+ "requires": {
+ "async": "^3.2.0"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "10.3.10",
+ "resolved": "https://mirrors.tencent.com/npm/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "requires": {
+ "ini": "2.0.0"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://mirrors.tencent.com/npm/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-property-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.2"
+ }
+ },
+ "has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "hasown": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "7.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^10.0.1"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-10.1.0.tgz",
+ "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+ "dev": true
+ }
+ }
+ },
+ "html-encoding-sniffer": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
+ "dev": true,
+ "requires": {
+ "whatwg-encoding": "^3.1.1"
+ }
+ },
+ "html-tags": {
+ "version": "3.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
+ "dev": true
+ },
+ "http-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "http-signature": {
+ "version": "1.3.6",
+ "resolved": "https://mirrors.tencent.com/npm/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^2.0.2",
+ "sshpk": "^1.14.1"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ }
+ },
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^3.2.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "requires": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true
+ },
+ "is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://mirrors.tencent.com/npm/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
+ "requires": {
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "joi": {
+ "version": "17.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/joi/-/joi-17.11.0.tgz",
+ "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==",
+ "dev": true,
+ "requires": {
+ "@hapi/hoek": "^9.0.0",
+ "@hapi/topo": "^5.0.0",
+ "@sideway/address": "^4.1.3",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "js-beautify": {
+ "version": "1.14.11",
+ "resolved": "https://mirrors.tencent.com/npm/js-beautify/-/js-beautify-1.14.11.tgz",
+ "integrity": "sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==",
+ "dev": true,
+ "requires": {
+ "config-chain": "^1.1.13",
+ "editorconfig": "^1.0.3",
+ "glob": "^10.3.3",
+ "nopt": "^7.2.0"
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jsdom": {
+ "version": "23.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsdom/-/jsdom-23.1.0.tgz",
+ "integrity": "sha512-wRscu8dBFxi7O65Cvi0jFRDv0Qa7XEHPix8Qg/vlXHLAMQsRWV1EDeQHBermzXf4Dt7JtFgBLbva3iTcBZDXEQ==",
+ "dev": true,
+ "requires": {
+ "cssstyle": "^4.0.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.4.3",
+ "form-data": "^4.0.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.2",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.7",
+ "parse5": "^7.1.2",
+ "rrweb-cssom": "^0.6.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.1.3",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^7.0.0",
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0",
+ "ws": "^8.16.0",
+ "xml-name-validator": "^5.0.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true
+ }
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://mirrors.tencent.com/npm/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
+ "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true
+ },
+ "jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsprim": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ }
+ },
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lines-and-columns": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
+ "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true
+ },
+ "listr2": {
+ "version": "3.14.0",
+ "resolved": "https://mirrors.tencent.com/npm/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "requires": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://mirrors.tencent.com/npm/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "log-update": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "loupe": {
+ "version": "2.3.7",
+ "resolved": "https://mirrors.tencent.com/npm/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "dev": true,
+ "requires": {
+ "get-func-name": "^2.0.1"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "magic-string": {
+ "version": "0.30.5",
+ "resolved": "https://mirrors.tencent.com/npm/magic-string/-/magic-string-0.30.5.tgz",
+ "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ }
+ },
+ "map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+ "dev": true
+ },
+ "memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+ "dev": true
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://mirrors.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://mirrors.tencent.com/npm/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://mirrors.tencent.com/npm/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
+ "minipass": {
+ "version": "7.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true
+ },
+ "mlly": {
+ "version": "1.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/mlly/-/mlly-1.4.2.tgz",
+ "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.10.0",
+ "pathe": "^1.1.1",
+ "pkg-types": "^1.0.3",
+ "ufo": "^1.3.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "muggle-string": {
+ "version": "0.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/muggle-string/-/muggle-string-0.3.1.tgz",
+ "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://mirrors.tencent.com/npm/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://mirrors.tencent.com/npm/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+ "dev": true
+ },
+ "nopt": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/nopt/-/nopt-7.2.0.tgz",
+ "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
+ "dev": true,
+ "requires": {
+ "abbrev": "^2.0.0"
+ }
+ },
+ "normalize-package-data": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "npm-run-all2": {
+ "version": "6.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/npm-run-all2/-/npm-run-all2-6.1.1.tgz",
+ "integrity": "sha512-lWLbkPZ5BSdXtN8lR+0rc8caKoPdymycpZksyDEC9MOBvfdwTXZ0uVhb7bMcGeXv2/BKtfQuo6Zn3zfc8rxNXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.2.1",
+ "cross-spawn": "^7.0.3",
+ "memorystream": "^0.3.1",
+ "minimatch": "^9.0.0",
+ "pidtree": "^0.6.0",
+ "read-pkg": "^8.0.0",
+ "shell-quote": "^1.7.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ }
+ }
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "nwsapi": {
+ "version": "2.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/nwsapi/-/nwsapi-2.2.7.tgz",
+ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dev": true,
+ "requires": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ }
+ },
+ "ospath": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/ospath/-/ospath-1.2.2.tgz",
+ "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "7.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/parse-json/-/parse-json-7.1.1.tgz",
+ "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true
+ }
+ }
+ },
+ "parse5": {
+ "version": "7.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "requires": {
+ "entities": "^4.4.0"
+ }
+ },
+ "path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-scurry": {
+ "version": "1.10.1",
+ "resolved": "https://mirrors.tencent.com/npm/path-scurry/-/path-scurry-1.10.1.tgz",
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-10.1.0.tgz",
+ "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+ "dev": true
+ }
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "pathe": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/pathe/-/pathe-1.1.1.tgz",
+ "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
+ "dev": true
+ },
+ "pathval": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true
+ },
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "dev": true,
+ "requires": {
+ "through": "~2.3"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinia": {
+ "version": "2.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/pinia/-/pinia-2.1.7.tgz",
+ "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+ "requires": {
+ "@vue/devtools-api": "^6.5.0",
+ "vue-demi": ">=0.14.5"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.14.6",
+ "resolved": "https://mirrors.tencent.com/npm/vue-demi/-/vue-demi-0.14.6.tgz",
+ "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+ "requires": {}
+ }
+ }
+ },
+ "pkg-types": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/pkg-types/-/pkg-types-1.0.3.tgz",
+ "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+ "dev": true,
+ "requires": {
+ "jsonc-parser": "^3.2.0",
+ "mlly": "^1.2.0",
+ "pathe": "^1.1.0"
+ }
+ },
+ "postcss": {
+ "version": "8.4.33",
+ "resolved": "https://mirrors.tencent.com/npm/postcss/-/postcss-8.4.33.tgz",
+ "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
+ "requires": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.15",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
+ "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/prettier/-/prettier-3.1.1.tgz",
+ "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "pretty-bytes": {
+ "version": "5.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
+ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true
+ }
+ }
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://mirrors.tencent.com/npm/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true
+ },
+ "proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=",
+ "dev": true
+ },
+ "ps-tree": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
+ "dev": true,
+ "requires": {
+ "event-stream": "=3.3.4"
+ }
+ },
+ "psl": {
+ "version": "1.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.10.4",
+ "resolved": "https://mirrors.tencent.com/npm/qs/-/qs-6.10.4.tgz",
+ "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "8.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/read-pkg/-/read-pkg-8.1.0.tgz",
+ "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.1",
+ "normalize-package-data": "^6.0.0",
+ "parse-json": "^7.0.0",
+ "type-fest": "^4.2.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "4.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-4.9.0.tgz",
+ "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==",
+ "dev": true
+ }
+ }
+ },
+ "request-progress": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/request-progress/-/request-progress-3.0.0.tgz",
+ "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
+ "dev": true,
+ "requires": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "rollup": {
+ "version": "4.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/rollup/-/rollup-4.9.3.tgz",
+ "integrity": "sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==",
+ "dev": true,
+ "requires": {
+ "@rollup/rollup-android-arm-eabi": "4.9.3",
+ "@rollup/rollup-android-arm64": "4.9.3",
+ "@rollup/rollup-darwin-arm64": "4.9.3",
+ "@rollup/rollup-darwin-x64": "4.9.3",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.9.3",
+ "@rollup/rollup-linux-arm64-gnu": "4.9.3",
+ "@rollup/rollup-linux-arm64-musl": "4.9.3",
+ "@rollup/rollup-linux-riscv64-gnu": "4.9.3",
+ "@rollup/rollup-linux-x64-gnu": "4.9.3",
+ "@rollup/rollup-linux-x64-musl": "4.9.3",
+ "@rollup/rollup-win32-arm64-msvc": "4.9.3",
+ "@rollup/rollup-win32-ia32-msvc": "4.9.3",
+ "@rollup/rollup-win32-x64-msvc": "4.9.3",
+ "@types/estree": "1.0.5",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "rrweb-cssom": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
+ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
+ "dev": true
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "saxes": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
+ "dev": true,
+ "requires": {
+ "xmlchars": "^2.2.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ },
+ "set-function-length": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/set-function-length/-/set-function-length-1.1.1.tgz",
+ "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.1",
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ }
+ }
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.16",
+ "resolved": "https://mirrors.tencent.com/npm/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
+ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
+ "dev": true
+ },
+ "split": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/split/-/split-0.3.3.tgz",
+ "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
+ "sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://mirrors.tencent.com/npm/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "stackback": {
+ "version": "0.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha1-Gsig2Ug4SNFpXkGLbQMaPDzmjjs=",
+ "dev": true
+ },
+ "start-server-and-test": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/start-server-and-test/-/start-server-and-test-2.0.3.tgz",
+ "integrity": "sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==",
+ "dev": true,
+ "requires": {
+ "arg": "^5.0.2",
+ "bluebird": "3.7.2",
+ "check-more-types": "2.24.0",
+ "debug": "4.3.4",
+ "execa": "5.1.1",
+ "lazy-ass": "1.6.0",
+ "ps-tree": "1.2.0",
+ "wait-on": "7.2.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true
+ }
+ }
+ },
+ "std-env": {
+ "version": "3.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/std-env/-/std-env-3.7.0.tgz",
+ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
+ "dev": true
+ },
+ "stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "dev": true,
+ "requires": {
+ "duplexer": "~0.1.1"
+ }
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "strip-literal": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-literal/-/strip-literal-1.3.0.tgz",
+ "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.10.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
+ },
+ "synckit": {
+ "version": "0.8.8",
+ "resolved": "https://mirrors.tencent.com/npm/synckit/-/synckit-0.8.8.tgz",
+ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
+ "dev": true,
+ "requires": {
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "throttleit": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/throttleit/-/throttleit-1.0.1.tgz",
+ "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "tinybench": {
+ "version": "2.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/tinybench/-/tinybench-2.5.1.tgz",
+ "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==",
+ "dev": true
+ },
+ "tinypool": {
+ "version": "0.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/tinypool/-/tinypool-0.8.1.tgz",
+ "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==",
+ "dev": true
+ },
+ "tinyspy": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/tinyspy/-/tinyspy-2.2.0.tgz",
+ "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/tmp/-/tmp-0.2.1.tgz",
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "dev": true,
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "tough-cookie": {
+ "version": "4.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "dependencies": {
+ "universalify": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true
+ }
+ }
+ },
+ "tr46": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/tr46/-/tr46-5.0.0.tgz",
+ "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.3.1"
+ }
+ },
+ "ts-api-utils": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
+ "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
+ "dev": true,
+ "requires": {}
+ },
+ "tslib": {
+ "version": "2.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://mirrors.tencent.com/npm/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "5.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "devOptional": true
+ },
+ "ufo": {
+ "version": "1.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/ufo/-/ufo-1.3.2.tgz",
+ "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==",
+ "dev": true
+ },
+ "undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://mirrors.tencent.com/npm/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "universalify": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true
+ },
+ "untildify": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true
+ },
+ "update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://mirrors.tencent.com/npm/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "dev": true,
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://mirrors.tencent.com/npm/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "vite": {
+ "version": "5.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/vite/-/vite-5.0.11.tgz",
+ "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.19.3",
+ "fsevents": "~2.3.3",
+ "postcss": "^8.4.32",
+ "rollup": "^4.2.0"
+ }
+ },
+ "vite-node": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/vite-node/-/vite-node-1.1.3.tgz",
+ "integrity": "sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==",
+ "dev": true,
+ "requires": {
+ "cac": "^6.7.14",
+ "debug": "^4.3.4",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "vite": "^5.0.0"
+ }
+ },
+ "vitest": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/vitest/-/vitest-1.1.3.tgz",
+ "integrity": "sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==",
+ "dev": true,
+ "requires": {
+ "@vitest/expect": "1.1.3",
+ "@vitest/runner": "1.1.3",
+ "@vitest/snapshot": "1.1.3",
+ "@vitest/spy": "1.1.3",
+ "@vitest/utils": "1.1.3",
+ "acorn-walk": "^8.3.1",
+ "cac": "^6.7.14",
+ "chai": "^4.3.10",
+ "debug": "^4.3.4",
+ "execa": "^8.0.1",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "std-env": "^3.5.0",
+ "strip-literal": "^1.3.0",
+ "tinybench": "^2.5.1",
+ "tinypool": "^0.8.1",
+ "vite": "^5.0.0",
+ "vite-node": "1.1.3",
+ "why-is-node-running": "^2.2.2"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "8.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true
+ },
+ "human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/npm-run-path/-/npm-run-path-5.2.0.tgz",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
+ "dev": true,
+ "requires": {
+ "path-key": "^4.0.0"
+ }
+ },
+ "onetime": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^4.0.0"
+ }
+ },
+ "path-key": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true
+ }
+ }
+ },
+ "vue": {
+ "version": "3.4.5",
+ "resolved": "https://mirrors.tencent.com/npm/vue/-/vue-3.4.5.tgz",
+ "integrity": "sha512-VH6nHFhLPjgu2oh5vEBXoNZxsGHuZNr3qf4PHClwJWw6IDqw6B3x+4J+ABdoZ0aJuT8Zi0zf3GpGlLQCrGWHrw==",
+ "requires": {
+ "@vue/compiler-dom": "3.4.5",
+ "@vue/compiler-sfc": "3.4.5",
+ "@vue/runtime-dom": "3.4.5",
+ "@vue/server-renderer": "3.4.5",
+ "@vue/shared": "3.4.5"
+ }
+ },
+ "vue-component-type-helpers": {
+ "version": "1.8.27",
+ "resolved": "https://mirrors.tencent.com/npm/vue-component-type-helpers/-/vue-component-type-helpers-1.8.27.tgz",
+ "integrity": "sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==",
+ "dev": true
+ },
+ "vue-eslint-parser": {
+ "version": "9.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz",
+ "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
+ "esquery": "^1.4.0",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.6"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "vue-router": {
+ "version": "4.2.5",
+ "resolved": "https://mirrors.tencent.com/npm/vue-router/-/vue-router-4.2.5.tgz",
+ "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+ "requires": {
+ "@vue/devtools-api": "^6.5.0"
+ }
+ },
+ "vue-template-compiler": {
+ "version": "2.7.16",
+ "resolved": "https://mirrors.tencent.com/npm/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
+ "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
+ "dev": true,
+ "requires": {
+ "de-indent": "^1.0.2",
+ "he": "^1.2.0"
+ }
+ },
+ "vue-tsc": {
+ "version": "1.8.27",
+ "resolved": "https://mirrors.tencent.com/npm/vue-tsc/-/vue-tsc-1.8.27.tgz",
+ "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==",
+ "dev": true,
+ "requires": {
+ "@volar/typescript": "~1.11.1",
+ "@vue/language-core": "1.8.27",
+ "semver": "^7.5.4"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "w3c-xmlserializer": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
+ "dev": true,
+ "requires": {
+ "xml-name-validator": "^5.0.0"
+ },
+ "dependencies": {
+ "xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true
+ }
+ }
+ },
+ "wait-on": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/wait-on/-/wait-on-7.2.0.tgz",
+ "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
+ "dev": true,
+ "requires": {
+ "axios": "^1.6.1",
+ "joi": "^17.11.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.8",
+ "rxjs": "^7.8.1"
+ }
+ },
+ "webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true
+ },
+ "whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "0.6.3"
+ }
+ },
+ "whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "14.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-url/-/whatwg-url-14.0.0.tgz",
+ "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==",
+ "dev": true,
+ "requires": {
+ "tr46": "^5.0.0",
+ "webidl-conversions": "^7.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "why-is-node-running": {
+ "version": "2.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
+ "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
+ "dev": true,
+ "requires": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "8.16.0",
+ "resolved": "https://mirrors.tencent.com/npm/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true
+ },
+ "xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://mirrors.tencent.com/npm/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/package.json"
new file mode 100644
index 000000000..1000b2c4b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/package.json"
@@ -0,0 +1,47 @@
+{
+ "name": "vue-project",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "run-p type-check \"build-only {@}\" --",
+ "preview": "vite preview",
+ "test:unit": "vitest",
+ "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'",
+ "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'",
+ "build-only": "vite build",
+ "type-check": "vue-tsc --build --force",
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
+ "format": "prettier --write src/"
+ },
+ "dependencies": {
+ "pinia": "^2.1.7",
+ "vue": "^3.3.11",
+ "vue-router": "^4.2.5"
+ },
+ "devDependencies": {
+ "@rushstack/eslint-patch": "^1.3.3",
+ "@tsconfig/node18": "^18.2.2",
+ "@types/jsdom": "^21.1.6",
+ "@types/node": "^18.19.3",
+ "@vitejs/plugin-vue": "^4.5.2",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "@vue/eslint-config-prettier": "^8.0.0",
+ "@vue/eslint-config-typescript": "^12.0.0",
+ "@vue/test-utils": "^2.4.3",
+ "@vue/tsconfig": "^0.5.0",
+ "cypress": "^13.6.1",
+ "eslint": "^8.49.0",
+ "eslint-plugin-cypress": "^2.15.1",
+ "eslint-plugin-vue": "^9.17.0",
+ "jsdom": "^23.0.1",
+ "npm-run-all2": "^6.1.1",
+ "prettier": "^3.0.3",
+ "start-server-and-test": "^2.0.3",
+ "typescript": "~5.3.0",
+ "vite": "^5.0.10",
+ "vitest": "^1.0.4",
+ "vue-tsc": "^1.8.25"
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/public/favicon.ico" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/public/favicon.ico"
new file mode 100644
index 000000000..df36fcfb7
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/public/favicon.ico" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/App.vue"
new file mode 100644
index 000000000..7905b0516
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/App.vue"
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+ Home
+ About
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/base.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/base.css"
new file mode 100644
index 000000000..8816868a4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/base.css"
@@ -0,0 +1,86 @@
+/* color palette from */
+:root {
+ --vt-c-white: #ffffff;
+ --vt-c-white-soft: #f8f8f8;
+ --vt-c-white-mute: #f2f2f2;
+
+ --vt-c-black: #181818;
+ --vt-c-black-soft: #222222;
+ --vt-c-black-mute: #282828;
+
+ --vt-c-indigo: #2c3e50;
+
+ --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
+ --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
+ --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
+ --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
+
+ --vt-c-text-light-1: var(--vt-c-indigo);
+ --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
+ --vt-c-text-dark-1: var(--vt-c-white);
+ --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
+}
+
+/* semantic color variables for this project */
+:root {
+ --color-background: var(--vt-c-white);
+ --color-background-soft: var(--vt-c-white-soft);
+ --color-background-mute: var(--vt-c-white-mute);
+
+ --color-border: var(--vt-c-divider-light-2);
+ --color-border-hover: var(--vt-c-divider-light-1);
+
+ --color-heading: var(--vt-c-text-light-1);
+ --color-text: var(--vt-c-text-light-1);
+
+ --section-gap: 160px;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --color-background: var(--vt-c-black);
+ --color-background-soft: var(--vt-c-black-soft);
+ --color-background-mute: var(--vt-c-black-mute);
+
+ --color-border: var(--vt-c-divider-dark-2);
+ --color-border-hover: var(--vt-c-divider-dark-1);
+
+ --color-heading: var(--vt-c-text-dark-1);
+ --color-text: var(--vt-c-text-dark-2);
+ }
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+ margin: 0;
+ font-weight: normal;
+}
+
+body {
+ min-height: 100vh;
+ color: var(--color-text);
+ background: var(--color-background);
+ transition:
+ color 0.5s,
+ background-color 0.5s;
+ line-height: 1.6;
+ font-family:
+ Inter,
+ -apple-system,
+ BlinkMacSystemFont,
+ 'Segoe UI',
+ Roboto,
+ Oxygen,
+ Ubuntu,
+ Cantarell,
+ 'Fira Sans',
+ 'Droid Sans',
+ 'Helvetica Neue',
+ sans-serif;
+ font-size: 15px;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/logo.svg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/logo.svg"
new file mode 100644
index 000000000..756566035
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/logo.svg"
@@ -0,0 +1 @@
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/main.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/main.css"
new file mode 100644
index 000000000..36fb845b5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/assets/main.css"
@@ -0,0 +1,35 @@
+@import './base.css';
+
+#app {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ font-weight: normal;
+}
+
+a,
+.green {
+ text-decoration: none;
+ color: hsla(160, 100%, 37%, 1);
+ transition: 0.4s;
+ padding: 3px;
+}
+
+@media (hover: hover) {
+ a:hover {
+ background-color: hsla(160, 100%, 37%, 0.2);
+ }
+}
+
+@media (min-width: 1024px) {
+ body {
+ display: flex;
+ place-items: center;
+ }
+
+ #app {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ padding: 0 2rem;
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/HelloWorld.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/HelloWorld.vue"
new file mode 100644
index 000000000..38d821ef8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/HelloWorld.vue"
@@ -0,0 +1,41 @@
+
+
+
+
+
{{ msg }}
+
+ You’ve successfully created a project with
+ Vite +
+ Vue 3 . What's next?
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/TheWelcome.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/TheWelcome.vue"
new file mode 100644
index 000000000..49d8f7354
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/TheWelcome.vue"
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+ Documentation
+
+ Vue’s
+ official documentation
+ provides you with all information you need to get started.
+
+
+
+
+
+
+ Tooling
+
+ This project is served and bundled with
+ Vite . The
+ recommended IDE setup is
+ VSCode +
+ Volar . If
+ you need to test your components and web pages, check out
+ Cypress and
+ Cypress Component Testing .
+
+
+
+ More instructions are available in README.md.
+
+
+
+
+
+
+ Ecosystem
+
+ Get official tools and libraries for your project:
+ Pinia ,
+ Vue Router ,
+ Vue Test Utils , and
+ Vue Dev Tools . If
+ you need more resources, we suggest paying
+ Awesome Vue
+ a visit.
+
+
+
+
+
+
+ Community
+
+ Got stuck? Ask your question on
+ Vue Land , our official
+ Discord server, or
+ StackOverflow . You should also subscribe to
+ our mailing list and follow
+ the official
+ @vuejs
+ twitter account for latest news in the Vue world.
+
+
+
+
+
+
+ Support Vue
+
+ As an independent project, Vue relies on community backing for its sustainability. You can help
+ us by
+ becoming a sponsor .
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/WelcomeItem.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/WelcomeItem.vue"
new file mode 100644
index 000000000..6d7086aea
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/WelcomeItem.vue"
@@ -0,0 +1,87 @@
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/__tests__/HelloWorld.spec.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/__tests__/HelloWorld.spec.ts"
new file mode 100644
index 000000000..253320200
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/__tests__/HelloWorld.spec.ts"
@@ -0,0 +1,11 @@
+import { describe, it, expect } from 'vitest'
+
+import { mount } from '@vue/test-utils'
+import HelloWorld from '../HelloWorld.vue'
+
+describe('HelloWorld', () => {
+ it('renders properly', () => {
+ const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } })
+ expect(wrapper.text()).toContain('Hello Vitest')
+ })
+})
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconCommunity.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconCommunity.vue"
new file mode 100644
index 000000000..2dc8b0552
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconCommunity.vue"
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconDocumentation.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconDocumentation.vue"
new file mode 100644
index 000000000..6d4791cfb
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconDocumentation.vue"
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconEcosystem.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconEcosystem.vue"
new file mode 100644
index 000000000..c3a4f078c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconEcosystem.vue"
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconSupport.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconSupport.vue"
new file mode 100644
index 000000000..7452834d3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconSupport.vue"
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconTooling.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconTooling.vue"
new file mode 100644
index 000000000..660598d7c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/components/icons/IconTooling.vue"
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/main.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/main.ts"
new file mode 100644
index 000000000..5dcad83c3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/main.ts"
@@ -0,0 +1,14 @@
+import './assets/main.css'
+
+import { createApp } from 'vue'
+import { createPinia } from 'pinia'
+
+import App from './App.vue'
+import router from './router'
+
+const app = createApp(App)
+
+app.use(createPinia())
+app.use(router)
+
+app.mount('#app')
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/router/index.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/router/index.ts"
new file mode 100644
index 000000000..a49ae507f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/router/index.ts"
@@ -0,0 +1,23 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import HomeView from '../views/HomeView.vue'
+
+const router = createRouter({
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes: [
+ {
+ path: '/',
+ name: 'home',
+ component: HomeView
+ },
+ {
+ path: '/about',
+ name: 'about',
+ // route level code-splitting
+ // this generates a separate chunk (About.[hash].js) for this route
+ // which is lazy-loaded when the route is visited.
+ component: () => import('../views/AboutView.vue')
+ }
+ ]
+})
+
+export default router
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/stores/counter.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/stores/counter.ts"
new file mode 100644
index 000000000..b6757ba57
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/stores/counter.ts"
@@ -0,0 +1,12 @@
+import { ref, computed } from 'vue'
+import { defineStore } from 'pinia'
+
+export const useCounterStore = defineStore('counter', () => {
+ const count = ref(0)
+ const doubleCount = computed(() => count.value * 2)
+ function increment() {
+ count.value++
+ }
+
+ return { count, doubleCount, increment }
+})
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/views/AboutView.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/views/AboutView.vue"
new file mode 100644
index 000000000..756ad2a17
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/views/AboutView.vue"
@@ -0,0 +1,15 @@
+
+
+
This is an about page
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/views/HomeView.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/views/HomeView.vue"
new file mode 100644
index 000000000..d5c0217e4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/src/views/HomeView.vue"
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.app.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.app.json"
new file mode 100644
index 000000000..491e09395
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.app.json"
@@ -0,0 +1,13 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
+ "exclude": ["src/**/__tests__/*"],
+ "compilerOptions": {
+ "composite": true,
+ "noEmit": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.json"
new file mode 100644
index 000000000..5304731b8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.json"
@@ -0,0 +1,17 @@
+{
+ "files": [],
+ "references": [
+ {
+ "path": "./tsconfig.node.json"
+ },
+ {
+ "path": "./tsconfig.app.json"
+ },
+ {
+ "path": "./tsconfig.vitest.json"
+ }
+ ],
+ "compilerOptions": {
+ "module": "NodeNext"
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.node.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.node.json"
new file mode 100644
index 000000000..46cf2e142
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.node.json"
@@ -0,0 +1,17 @@
+{
+ "extends": "@tsconfig/node18/tsconfig.json",
+ "include": [
+ "vite.config.*",
+ "vitest.config.*",
+ "cypress.config.*",
+ "nightwatch.conf.*",
+ "playwright.config.*"
+ ],
+ "compilerOptions": {
+ "composite": true,
+ "noEmit": true,
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "types": ["node"]
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.vitest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.vitest.json"
new file mode 100644
index 000000000..d080d611e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/tsconfig.vitest.json"
@@ -0,0 +1,9 @@
+{
+ "extends": "./tsconfig.app.json",
+ "exclude": [],
+ "compilerOptions": {
+ "composite": true,
+ "lib": [],
+ "types": ["node", "jsdom"]
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/vite.config.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/vite.config.ts"
new file mode 100644
index 000000000..36c618756
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/vite.config.ts"
@@ -0,0 +1,18 @@
+import { fileURLToPath, URL } from 'node:url'
+
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import vueJsx from '@vitejs/plugin-vue-jsx'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ vue(),
+ vueJsx(),
+ ],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url))
+ }
+ }
+})
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/vitest.config.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/vitest.config.ts"
new file mode 100644
index 000000000..10067d578
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/07-vue3/vue-project/vitest.config.ts"
@@ -0,0 +1,14 @@
+import { fileURLToPath } from 'node:url'
+import { mergeConfig, defineConfig, configDefaults } from 'vitest/config'
+import viteConfig from './vite.config'
+
+export default mergeConfig(
+ viteConfig,
+ defineConfig({
+ test: {
+ environment: 'jsdom',
+ exclude: [...configDefaults.exclude, 'e2e/*'],
+ root: fileURLToPath(new URL('./', import.meta.url))
+ }
+ })
+)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/README.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/README.md"
new file mode 100644
index 000000000..02430b920
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/README.md"
@@ -0,0 +1,63 @@
+
+# uni-app study
+
+
+新建 common 目录并优先存放资源,因为 static 目录下的内容无论是否使用都会被打包
+
+
+
+引入全局 css
+在 App.vue 中
+```
+
+```
+
+## 1.
+
+配置微信开发者工具,注意设置安全配置,开放端口
+
+eval5
+binding.js
+
+
+css处理刘海屏底部安全区
+
+```css
+.float {
+ padding-bottom: env(safe-area-inset-bottom);
+}
+```
+
+
+vue样式穿透
+```
+:deep() {
+ .uni-icons {
+ color: #eee;
+ }
+}
+```
+
+
+
+跳转切换底部tab,navigator 标签需要添加属性 open-type="reLaunch"
+
+
+
+css
+
+width: fit-content;
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/.gitignore" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/.gitignore"
new file mode 100644
index 000000000..988442b2a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/.gitignore"
@@ -0,0 +1,2 @@
+**/unpackage/
+**/node_modules/
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/README2.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/README2.md"
new file mode 100644
index 000000000..f7450bcd1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/README2.md"
@@ -0,0 +1,322 @@
+# uniapp最新Vue3组合式API版本零基础入门到项目实战
+
+
+
+## 微信扫码体验“咸虾米壁纸”最终项目
+
+
+
+
+
+
+
+
+
+
+
+## 课程目录+随堂笔记
+
+### 一、开发环境及项目创建
+
+##### 1.1.uniappVue版本知识点概述
+
+##### 1.2.使用HBuilder编辑器创建vue3新项目
+
+##### 1.3.配置外部浏览器及各种小程序模拟器
+
+##### 1.4.创建页面及vue页面内基本组成部分
+
+### 二、常用的内置组件
+
+##### 2.1.view和text常用视图容器组件
+
+##### 2.2.scroll-view可滚动视图区域组件
+
+##### 2.3.swiper滑块视图容器的用法
+
+##### 2.4.image媒体组件属性配合swiper轮播
+
+##### 2.5.navigator路由与页面跳转
+
+##### 2.6.常用的表单组件button和input
+
+### 三、vue3组合式API快速上手
+
+##### 3.1.vue3的模板语法插值表达式用法
+
+##### 3.2.使用ref定义响应式数据变量
+
+##### 3.3.v-bind指令配合图片轮播案例
+
+##### 3.4.class类和style内联样式的绑定
+
+##### 3.5.原生事件监听及组件内置事件处理
+
+##### 3.6.创建自定义模板快速创建uniapp的vue3页面结构
+
+##### 3.7.v-if条件渲染及v-show的选择对比
+
+##### 3.8.v-for列表渲染的用法
+
+##### 3.9.【购物车案例】for循环为什么使用key
+
+##### 3.10.【小鸡案例】表单focus和blur事件用法
+
+##### 3.11.v-model双向绑定的实现原理
+
+##### 3.12.【热梗案例】知识点阶段性综合汇总
+
+##### 3.13.computed计算属性用法及方法对比
+
+##### 3.14.【计价案例】计算属性配合循环遍历统计总价
+
+拓展阅读:[各种类型的for循环遍历](https://blog.csdn.net/qq_18798149/article/details/135089225)
+
+##### 3.15.watch和watchEffect监听的使用
+
+拓展阅读:[vue3中computed计算属性和watch监听的异同点](https://blog.csdn.net/qq_18798149/article/details/135302780)
+
+### 四、深入vue组件及生命周期
+
+##### 4.1.uniapp创建组件和vue官方文档的差异对比
+
+##### 4.2.在组件中通过Props进行数据传递
+
+##### 4.3.Prop校验与prop默认值用法及循环遍历数组对象
+
+##### 4.4.插槽Slots及具名插槽实现组件高度定制化
+
+##### 4.5.组件中emit的声明触发事件
+
+##### 4.6.vue3组合式API中的组件的生命周期函数(钩子函数)
+
+拓展阅读:[uniappVue3版本中组件生命周期和页面生命周期的详细介绍](https://blog.csdn.net/qq_18798149/article/details/135405378)
+
+##### 4.7.使用defineExpose暴漏子组件的属性及方法
+
+##### 4.8.页面生命周期onLoad和onReady在vue3组合式api中的使用
+
+##### 4.9.onShow和onHide钩子的对比和执行顺序
+
+##### 4.10.onUnload页面卸载和onPageScroll监听页面滚动
+
+### 五、uniapp全局文件配置和API调用
+
+##### 5.1.响应式单位rpx及搭配使用UI产品工具
+
+##### 5.2.@import导入css样式及scss变量用法与static目录
+
+##### 5.3.pages.json页面路由globalStyle的属性
+
+##### 5.4.pages设置页面路径及窗口表现
+
+##### 5.5.tabBar设置底部菜单选项及iconfont图标
+
+##### 5.6.manifest.json配置和注册微信小程序appid
+
+##### 5.7.安装插件unplugin-auto-import自动导入vue和uniapp模块
+
+使用说明:[开发uniapp使用Vue3组合式API版本,如何实现从vue模块中自动导入](https://blog.csdn.net/qq_18798149/article/details/134321097)
+
+##### 5.8.uni-api交互反馈showToast的用法
+
+##### 5.9.showLoading加载和showModal模态框示例
+
+##### 5.10.showActionSheet从底部向上弹出操作菜单
+
+##### 5.11.动态设置页面导航条的样式
+
+##### 5.12.setTabBar设置TabBar和下拉刷新API
+
+##### 5.13.页面和路由API-navigateTo及页面栈getCurrentPages
+
+##### 5.14.StorageSync数据缓存API
+
+##### 5.15.uni.request发送网络请求
+
+免费测试api接口:https://jsonplaceholder.typicode.com/
+
+随机猫咪API接口:https://api.thecatapi.com/v1/images/search?limit=1
+
+咸虾米API接口:https://api.qingnian8.com/
+
+NBA球员榜:https://tiyu.baidu.com/api/match/playerranking/match/NBA/tabId/60
+
+##### 5.16.request各种不同类型的参数详解
+
+### 六、阶段性综合小实例-萌宠集
+
+##### 6.1.页面布局
+
+##### 6.2.调用萌宠API接口渲染到页面中
+
+##### 6.3.使用API接口通过传输头传递access-key
+
+##### 6.4.previewImage图片预览和lazy-load懒加载
+
+##### 6.5.对回调结果严格处理then_catch_finally用法
+
+##### 6.6.完成下拉刷新和触底加载更多
+
+##### 6.7.底部安全区域css环境变量
+
+`env(safe-area-inset-bottom)`
+
+##### 6.8.使用uni-ui扩展组件
+
+##### 6.9.分段器组件实现点击切换萌宠类型
+
+### 七、咸虾米壁纸项目实战
+
+##### 7.1.咸虾米壁纸项目概述
+
+##### 7.2.项目初始化公共目录和设计稿尺寸测量工具
+
+##### 7.3.banner海报swiper轮播器
+
+##### 7.4.使用swiper的纵向轮播做公告区域
+
+##### 7.5.每日推荐滑动scroll-view布局
+
+##### 7.6.组件具名插槽定义公共标题模块
+
+##### 7.7.细节拉满磨砂背景定位布局做专题组件
+
+##### 7.8.同一组件Props传递不同属性值展示不同效果
+
+##### 7.9.设置项目底部tab页面切换标签
+
+##### 7.10.个人中心页面布局
+
+##### 7.11.ifdef条件编译实现多终端匹配和客服消息
+
+##### 7.12.设置页面全局渐变线性渐变背景色
+
+##### 7.13.定义scss颜色变量deep()修改子组件css样式
+
+##### 7.14.创建分类列表完成各页面的跳转
+
+##### 7.15.全屏页面absolute定位布局和fit-content内容宽度
+
+##### 7.16.遮罩层状态转换及日期格式化
+
+##### 7.17.uni-popup弹窗层制作弹出信息内容效果
+
+##### 7.18.评分弹出框uni-rate组件的属性方法
+
+##### 7.19.自定义头部导航栏布局
+
+##### 7.20.获取系统信息getSystemInfo状态栏和胶囊按钮
+
+##### 7.21.抽离公共方法用条件编译对抖音小程序适配
+
+##### 7.22.完善页面布局实现各个页面的串联
+
+### 八、封装网络请求对接各个页面的真实接口
+
+##### 8.1.调用网络接口在首页展示真实数据并渲染
+
+##### 8.2.使用Promise封装request网络请求
+
+##### 8.3.对封装的request请求进行传参
+
+##### 8.4.给专题组件通过defineProps声明变量传值渲染
+
+##### 8.5.使用ChatGPT AI辅助工具写JS工具方法并完成分类页面渲染
+
+##### 8.6.调试分类列表接口将数据渲染到页面中
+
+##### 8.7.从onLoad获取参数作为接口的参数获取对应的数据
+
+##### 8.8.触底加载更多阻止无效的网络请求
+
+##### 8.9.骨架屏和触底加载load-more样式的展现
+
+##### 8.10.分类列表存入Storage在预览页面读取缓存展示
+
+##### 8.11.通过swiper的事件实现真正的壁纸预览及切换
+
+##### 8.12.(选学但重要)巧妙解决首次加载额外的图片网络消耗
+
+##### 8.13.展示每张壁纸的专属信息
+
+##### 8.14.对接评分接口对壁纸进行滑动提交打分
+
+##### 8.15.通过本地缓存修改已评分过的状态
+
+##### 8.16.saveImageToPhotosAlbum保存壁纸到相册
+
+实现源码:[开发微信小程序,将图片下载到相册的方法](https://blog.csdn.net/qq_18798149/article/details/135871140)
+
+##### 8.17.openSetting调用客户端授权信息及各种异常处理
+
+##### 8.18.try{}catch处理同步请求下载记录异常处理
+
+##### 8.19.onShareAppMessage分享好友和分享微信朋友圈
+
+##### 8.20.对分享页面传参进行特殊处理
+
+##### 8.21.处理popup底部弹窗空缺安全区域及其他页面优化
+
+修改路径:uni_modules\uni-popup\components\uni-popup\uni-popup.vue
+
+在349行左右的位置,注释掉:
+
+```javascript
+// paddingBottom: this.safeAreaInsets + 'px',
+```
+
+### 九、其他功能页面实现
+
+##### 9.1.获取个人中心接口数据渲染到用户页面中
+
+##### 9.2.共用分类列表页面实现我的下载和评分页面
+
+##### 9.3.使用mp-html富文本插件渲染公告详情页面
+
+##### 9.4.搜索页面布局及结合数据缓存展示搜索历史
+
+##### 9.5.对接搜索接口预览搜索结果
+
+##### 9.6.banner中navigator组件跳转到其他小程序及bug解决
+
+### 十、多个常见平台的打包上线
+
+##### 10.1.打包发行微信小程序的上线全流程
+
+注册地址:https://mp.weixin.qq.com/
+
+##### 10.2.打包抖音小程序条件编译抖音专属代码
+
+开发平台地址:https://developer.open-douyin.com/
+
+##### 10.3.打包H5并发布上线到unicloud的前端网页托管
+
+拓展阅读:[uniCloud服务空间前端网页托管绑定自定义配置网站域名](https://blog.csdn.net/qq_18798149/article/details/129860824)
+
+##### 10.4.打包安卓APP并安装运行
+
+##### 10.5.【完结撒花】项目总结和知识拓展
+
+## 学习交流群
+
+咸虾米QQ群:247369155
+
+
+
+
+
+
+
+## 项目预览图
+
+
+
+-----------------------------------
+
+
+
+---------------------------------------
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/App.vue"
new file mode 100644
index 000000000..3a1d5a5fd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/css/style.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/css/style.css"
new file mode 100644
index 000000000..24fa7dc6d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/css/style.css"
@@ -0,0 +1,5 @@
+view{
+ font-size: 40rpx;
+ box-sizing: border-box;
+ background: pink;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/scss/aaa.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/scss/aaa.scss"
new file mode 100644
index 000000000..e69de29bb
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/scss/self.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/scss/self.scss"
new file mode 100644
index 000000000..9ab615cf9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/common/scss/self.scss"
@@ -0,0 +1,4 @@
+
+$custom-color-1:red;
+$custom-color-2:green;
+$custom-color-3:#35570f;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/UserInfo/UserInfo.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/UserInfo/UserInfo.vue"
new file mode 100644
index 000000000..5d7ef5409
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/UserInfo/UserInfo.vue"
@@ -0,0 +1,56 @@
+
+
+
+ {{obj.name}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/demo-child/demo-child.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/demo-child/demo-child.vue"
new file mode 100644
index 000000000..acfdecb51
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/demo-child/demo-child.vue"
@@ -0,0 +1,27 @@
+
+
+ 子组件count值:{{count}}
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/life-demo/life-demo.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/life-demo/life-demo.vue"
new file mode 100644
index 000000000..40fd28fe3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/life-demo/life-demo.vue"
@@ -0,0 +1,18 @@
+
+
+ 子组件
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-child/xxm-child.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-child/xxm-child.vue"
new file mode 100644
index 000000000..954711958
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-child/xxm-child.vue"
@@ -0,0 +1,26 @@
+
+
+ 子组件
+ 按钮
+
+ ----
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-header/xxm-header.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-header/xxm-header.vue"
new file mode 100644
index 000000000..4a5c32f0b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-header/xxm-header.vue"
@@ -0,0 +1,20 @@
+
+
+ 这是header组件
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-layout/xxm-layout.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-layout/xxm-layout.vue"
new file mode 100644
index 000000000..7ca584326
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/components/xxm-layout/xxm-layout.vue"
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/manifest.json"
new file mode 100644
index 000000000..d4ae1672f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/manifest.json"
@@ -0,0 +1,73 @@
+{
+ "name" : "uniappDemo2",
+ "appid" : "__UNI__C0A8B81",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages.json"
new file mode 100644
index 000000000..5aae7bbd7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages.json"
@@ -0,0 +1,73 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app"
+ }
+ },
+ {
+ "path" : "pages/demo1/demo1",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo1",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo2/demo2",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo2",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo3/demo3",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo3",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo4/demo4",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo4",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo5/demo5",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo5",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo6/demo6",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo6",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo7/demo7",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo7",
+ "enablePullDownRefresh" : false
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo1/demo1.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo1/demo1.vue"
new file mode 100644
index 000000000..2f8780103
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo1/demo1.vue"
@@ -0,0 +1,21 @@
+
+
+
+
+ 首页头部
+
+
+ 首页的内容
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo2/demo2.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo2/demo2.vue"
new file mode 100644
index 000000000..8ac6b9b0a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo2/demo2.vue"
@@ -0,0 +1,27 @@
+
+
+
+ demo2的头部
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo3/demo3.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo3/demo3.vue"
new file mode 100644
index 000000000..999ac05e0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo3/demo3.vue"
@@ -0,0 +1,29 @@
+
+
+
+ num:{{num}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo4/demo4.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo4/demo4.vue"
new file mode 100644
index 000000000..4bce0ad5b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo4/demo4.vue"
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo5/demo5.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo5/demo5.vue"
new file mode 100644
index 000000000..788873c49
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo5/demo5.vue"
@@ -0,0 +1,28 @@
+
+
+
+ ----
+ 点击修改子值
+ 跳转到demo6
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo6/demo6.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo6/demo6.vue"
new file mode 100644
index 000000000..3772153c1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo6/demo6.vue"
@@ -0,0 +1,89 @@
+
+
+ 姓名:{{name}} - {{age}}
+
+
+
+ 跳转demo5
+ ----
+ 计数:{{count}}
+ ----
+ demo4页面
+ {{item}}
+
+ ↑
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo7/demo7.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo7/demo7.vue"
new file mode 100644
index 000000000..bc772adad
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/demo7/demo7.vue"
@@ -0,0 +1,29 @@
+
+
+ 这是box
+
+ 欢迎使用
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/index/index.vue"
new file mode 100644
index 000000000..ae3b9c0c7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/pages/index/index.vue"
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/logo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/logo.png"
new file mode 100644
index 000000000..b5771e209
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/logo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic1.jpg"
new file mode 100644
index 000000000..a168ad5ed
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic2.jpg"
new file mode 100644
index 000000000..5fced7878
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic3.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic3.jpg"
new file mode 100644
index 000000000..d362c9d26
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/static/pic3.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/uni.scss"
new file mode 100644
index 000000000..49f5c47dd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo2/uni.scss"
@@ -0,0 +1,79 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
+
+@import "@/common/scss/self.scss";
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/.hbuilderx/launch.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/.hbuilderx/launch.json"
new file mode 100644
index 000000000..81f13f4f4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/.hbuilderx/launch.json"
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/App.vue"
new file mode 100644
index 000000000..88776de14
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/manifest.json"
new file mode 100644
index 000000000..ad6cd0f80
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/manifest.json"
@@ -0,0 +1,76 @@
+{
+ "name" : "uniappDemo3",
+ "appid" : "__UNI__E4FA250",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wx511abe7a13783591",
+ "setting" : {
+ "urlCheck" : false,
+ "minified" : true
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3",
+ "h5" : {
+ "title" : "咸虾米壁纸"
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/package-lock.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/package-lock.json"
new file mode 100644
index 000000000..62592f1e8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/package-lock.json"
@@ -0,0 +1,945 @@
+{
+ "name": "uniappDemo3",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "unplugin-auto-import": "^0.17.3"
+ }
+ },
+ "node_modules/@antfu/utils": {
+ "version": "0.7.7",
+ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz",
+ "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ },
+ "node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
+ "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+ },
+ "node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.5",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
+ "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/mlly": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz",
+ "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+ "dependencies": {
+ "acorn": "^8.10.0",
+ "pathe": "^1.1.1",
+ "pkg-types": "^1.0.3",
+ "ufo": "^1.3.0"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
+ "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
+ "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+ "dependencies": {
+ "jsonc-parser": "^3.2.0",
+ "mlly": "^1.2.0",
+ "pathe": "^1.1.0"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/scule": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.1.tgz",
+ "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ=="
+ },
+ "node_modules/strip-literal": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
+ "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
+ "dependencies": {
+ "acorn": "^8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz",
+ "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA=="
+ },
+ "node_modules/unimport": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.7.1.tgz",
+ "integrity": "sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.2",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "mlly": "^1.4.2",
+ "pathe": "^1.1.1",
+ "pkg-types": "^1.0.3",
+ "scule": "^1.1.1",
+ "strip-literal": "^1.3.0",
+ "unplugin": "^1.5.1"
+ }
+ },
+ "node_modules/unimport/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/unplugin": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz",
+ "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
+ "dependencies": {
+ "acorn": "^8.11.2",
+ "chokidar": "^3.5.3",
+ "webpack-sources": "^3.2.3",
+ "webpack-virtual-modules": "^0.6.1"
+ }
+ },
+ "node_modules/unplugin-auto-import": {
+ "version": "0.17.3",
+ "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.3.tgz",
+ "integrity": "sha512-0cn0wr8X579TtdZKUAps0dDVrYzttx38ImdxZjmCeNlMDJX8UuSjO83vFqgS4ClNDIGWAute+xl9j5vRSX+vsw==",
+ "dependencies": {
+ "@antfu/utils": "^0.7.7",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "minimatch": "^9.0.3",
+ "unimport": "^3.7.0",
+ "unplugin": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@nuxt/kit": "^3.2.2",
+ "@vueuse/core": "*"
+ },
+ "peerDependenciesMeta": {
+ "@nuxt/kit": {
+ "optional": true
+ },
+ "@vueuse/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack-virtual-modules": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz",
+ "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg=="
+ }
+ },
+ "dependencies": {
+ "@antfu/utils": {
+ "version": "0.7.7",
+ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz",
+ "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg=="
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ },
+ "acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fastq": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
+ "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+ },
+ "local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "requires": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ }
+ },
+ "magic-string": {
+ "version": "0.30.5",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
+ "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "mlly": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz",
+ "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+ "requires": {
+ "acorn": "^8.10.0",
+ "pathe": "^1.1.1",
+ "pkg-types": "^1.0.3",
+ "ufo": "^1.3.0"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "pathe": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
+ "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ },
+ "pkg-types": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
+ "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+ "requires": {
+ "jsonc-parser": "^3.2.0",
+ "mlly": "^1.2.0",
+ "pathe": "^1.1.0"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "scule": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.1.tgz",
+ "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ=="
+ },
+ "strip-literal": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
+ "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
+ "requires": {
+ "acorn": "^8.10.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "ufo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz",
+ "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA=="
+ },
+ "unimport": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.7.1.tgz",
+ "integrity": "sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==",
+ "requires": {
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.2",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "mlly": "^1.4.2",
+ "pathe": "^1.1.1",
+ "pkg-types": "^1.0.3",
+ "scule": "^1.1.1",
+ "strip-literal": "^1.3.0",
+ "unplugin": "^1.5.1"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ }
+ }
+ },
+ "unplugin": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz",
+ "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
+ "requires": {
+ "acorn": "^8.11.2",
+ "chokidar": "^3.5.3",
+ "webpack-sources": "^3.2.3",
+ "webpack-virtual-modules": "^0.6.1"
+ }
+ },
+ "unplugin-auto-import": {
+ "version": "0.17.3",
+ "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.3.tgz",
+ "integrity": "sha512-0cn0wr8X579TtdZKUAps0dDVrYzttx38ImdxZjmCeNlMDJX8UuSjO83vFqgS4ClNDIGWAute+xl9j5vRSX+vsw==",
+ "requires": {
+ "@antfu/utils": "^0.7.7",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "minimatch": "^9.0.3",
+ "unimport": "^3.7.0",
+ "unplugin": "^1.6.0"
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
+ },
+ "webpack-virtual-modules": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz",
+ "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg=="
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/package.json"
new file mode 100644
index 000000000..3687c5252
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/package.json"
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "unplugin-auto-import": "^0.17.3"
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages.json"
new file mode 100644
index 000000000..e6548609b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages.json"
@@ -0,0 +1,108 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app",
+ "enablePullDownRefresh":true
+ }
+ },
+ {
+ "path": "pages/user/user",
+ "style": {
+ "navigationBarTitleText": "个人中心"
+ }
+ },
+ {
+ "path" : "pages/classify/classify",
+ "style" :
+ {
+ "navigationBarBackgroundColor": "#F2E6DE",
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "分类",
+ "enablePullDownRefresh":true
+ }
+ },
+ {
+ "path" : "pages/demo/demo",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo2/demo2",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo2",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo3/demo3",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo3",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo4/demo4",
+ "style" :
+ {
+ "navigationBarTitleText" : "request网络请求",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo5/demo5",
+ "style" :
+ {
+ "navigationBarTitleText" : "request参数",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/requestDemo/requestDemo",
+ "style" :
+ {
+ "navigationBarTitleText" : "request综合案例",
+ "enablePullDownRefresh" : true
+ }
+ }
+
+
+ ],
+ "globalStyle": {
+ "navigationBarBackgroundColor": "#2B9939",
+ "navigationBarTextStyle": "white",
+ "navigationBarTitleText": "咸虾米",
+ "backgroundColor": "#ccc",
+ "backgroundTextStyle": "light",
+ "onReachBottomDistance":50
+ },
+ "tabBar": {
+ "color": "#999",
+ "selectedColor": "#2B9939",
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "text": "首页",
+ "iconPath": "static/images/tabBar/home.png",
+ "selectedIconPath": "static/images/tabBar/home-h.png"
+ },{
+ "pagePath": "pages/classify/classify",
+ "text": "分类",
+ "iconPath": "static/images/tabBar/classify.png",
+ "selectedIconPath": "static/images/tabBar/classify-h.png"
+ },{
+ "pagePath": "pages/user/user",
+ "text": "我的",
+ "iconPath": "static/images/tabBar/user.png",
+ "selectedIconPath": "static/images/tabBar/user-h.png"
+ }
+ ]
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/classify/classify.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/classify/classify.vue"
new file mode 100644
index 000000000..367c4e1fe
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/classify/classify.vue"
@@ -0,0 +1,53 @@
+
+
+ 分类页面
+ 删除
+ ---
+ 学历
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo/demo.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo/demo.vue"
new file mode 100644
index 000000000..f21ffebea
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo/demo.vue"
@@ -0,0 +1,30 @@
+
+
+ demo页面
+
+ 跳转到demo2
+ -----
+ 跳转到首页
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo2/demo2.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo2/demo2.vue"
new file mode 100644
index 000000000..a902deba5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo2/demo2.vue"
@@ -0,0 +1,20 @@
+
+
+ demo2页面
+ 返回首页
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo3/demo3.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo3/demo3.vue"
new file mode 100644
index 000000000..b25a9712b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo3/demo3.vue"
@@ -0,0 +1,33 @@
+
+
+ 删除一个
+ 删除所有缓存
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo4/demo4.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo4/demo4.vue"
new file mode 100644
index 000000000..8fdc2d27e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo4/demo4.vue"
@@ -0,0 +1,64 @@
+
+
+
+ {{item.title}}
+ {{item.body}}
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo5/demo5.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo5/demo5.vue"
new file mode 100644
index 000000000..711f731d1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/demo5/demo5.vue"
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/index/index.vue"
new file mode 100644
index 000000000..fd366f070
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/index/index.vue"
@@ -0,0 +1,77 @@
+
+
+ 用户
+ 显示
+ 隐藏
+ 停止
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/requestDemo/requestDemo.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/requestDemo/requestDemo.vue"
new file mode 100644
index 000000000..38ce6d083
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/requestDemo/requestDemo.vue"
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
+ {{item.content}}
+ —— {{item.author}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/user/user.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/user/user.vue"
new file mode 100644
index 000000000..b22f3a72d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/pages/user/user.vue"
@@ -0,0 +1,25 @@
+
+
+ 个人中心
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/classify-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/classify-h.png"
new file mode 100644
index 000000000..2858107ef
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/classify-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/classify.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/classify.png"
new file mode 100644
index 000000000..d32bc6c75
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/classify.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/home-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/home-h.png"
new file mode 100644
index 000000000..e86e1dd9c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/home-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/home.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/home.png"
new file mode 100644
index 000000000..591aa1a19
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/home.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/user-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/user-h.png"
new file mode 100644
index 000000000..fa8b717cf
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/user-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/user.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/user.png"
new file mode 100644
index 000000000..6d53fc02c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/tabBar/user.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/xxmLogo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/xxmLogo.png"
new file mode 100644
index 000000000..d822b165e
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/static/images/xxmLogo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni.scss"
new file mode 100644
index 000000000..a05adb4a7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni.scss"
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/changelog.md"
new file mode 100644
index 000000000..137553eed
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/changelog.md"
@@ -0,0 +1,38 @@
+## 2.0.8(2023-12-14)
+- 修复 项目未使用 ts 情况下,打包报错的bug
+## 2.0.7(2023-12-14)
+- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
+## 2.0.6(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.5(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.4(2023-12-06)
+- 优化 uni-app x 下示例项目图标排序
+## 2.0.3(2023-12-06)
+- 修复 nvue下引入组件报错的bug
+## 2.0.2(2023-12-05)
+-优化 size 属性支持单位
+## 2.0.1(2023-12-05)
+- 新增 uni-app x 支持定义图标
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
new file mode 100644
index 000000000..34037c9b6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
@@ -0,0 +1,91 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uni-icons.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
new file mode 100644
index 000000000..b9a37e9e3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
@@ -0,0 +1,110 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons.css"
new file mode 100644
index 000000000..0a6b6fea1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons.css"
@@ -0,0 +1,664 @@
+
+.uniui-cart-filled:before {
+ content: "\e6d0";
+}
+
+.uniui-gift-filled:before {
+ content: "\e6c4";
+}
+
+.uniui-color:before {
+ content: "\e6cf";
+}
+
+.uniui-wallet:before {
+ content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+ content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+ content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+ content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+ content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+ content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+ content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+ content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+ content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+ content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+ content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+ content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+ content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+ content: "\e6c3";
+}
+
+.uniui-fire-filled:before {
+ content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+ content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+ content: "\e6af";
+}
+
+.uniui-person-filled:before {
+ content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+ content: "\e698";
+}
+
+.uniui-arrowthinleft:before {
+ content: "\e6d2";
+}
+
+.uniui-arrowthinup:before {
+ content: "\e6d3";
+}
+
+.uniui-arrowthindown:before {
+ content: "\e6d4";
+}
+
+.uniui-back:before {
+ content: "\e6b9";
+}
+
+.uniui-forward:before {
+ content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+ content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+ content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+ content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+ content: "\e6be";
+}
+
+.uniui-arrowthinright:before {
+ content: "\e6d1";
+}
+
+.uniui-down:before {
+ content: "\e6b8";
+}
+
+.uniui-bottom:before {
+ content: "\e6b8";
+}
+
+.uniui-arrowright:before {
+ content: "\e6d5";
+}
+
+.uniui-right:before {
+ content: "\e6b5";
+}
+
+.uniui-up:before {
+ content: "\e6b6";
+}
+
+.uniui-top:before {
+ content: "\e6b6";
+}
+
+.uniui-left:before {
+ content: "\e6b7";
+}
+
+.uniui-arrowup:before {
+ content: "\e6d6";
+}
+
+.uniui-eye:before {
+ content: "\e651";
+}
+
+.uniui-eye-filled:before {
+ content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+ content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+ content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+ content: "\e649";
+}
+
+.uniui-reload:before {
+ content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+ content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+ content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+ content: "\e6ad";
+}
+
+.uniui-location:before {
+ content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+ content: "\e683";
+}
+
+.uniui-star:before {
+ content: "\e688";
+}
+
+.uniui-star-filled:before {
+ content: "\e68f";
+}
+
+.uniui-calendar:before {
+ content: "\e6a0";
+}
+
+.uniui-fire:before {
+ content: "\e6a1";
+}
+
+.uniui-medal:before {
+ content: "\e6a2";
+}
+
+.uniui-font:before {
+ content: "\e6a3";
+}
+
+.uniui-gift:before {
+ content: "\e6a4";
+}
+
+.uniui-link:before {
+ content: "\e6a5";
+}
+
+.uniui-notification:before {
+ content: "\e6a6";
+}
+
+.uniui-staff:before {
+ content: "\e6a7";
+}
+
+.uniui-vip:before {
+ content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+ content: "\e6a9";
+}
+
+.uniui-tune:before {
+ content: "\e6aa";
+}
+
+.uniui-auth:before {
+ content: "\e6ab";
+}
+
+.uniui-person:before {
+ content: "\e699";
+}
+
+.uniui-email-filled:before {
+ content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+ content: "\e69b";
+}
+
+.uniui-phone:before {
+ content: "\e69c";
+}
+
+.uniui-email:before {
+ content: "\e69e";
+}
+
+.uniui-personadd:before {
+ content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+ content: "\e692";
+}
+
+.uniui-contact:before {
+ content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+ content: "\e694";
+}
+
+.uniui-contact-filled:before {
+ content: "\e695";
+}
+
+.uniui-chatboxes:before {
+ content: "\e696";
+}
+
+.uniui-chatbubble:before {
+ content: "\e697";
+}
+
+.uniui-upload-filled:before {
+ content: "\e68e";
+}
+
+.uniui-upload:before {
+ content: "\e690";
+}
+
+.uniui-weixin:before {
+ content: "\e691";
+}
+
+.uniui-compose:before {
+ content: "\e67f";
+}
+
+.uniui-qq:before {
+ content: "\e680";
+}
+
+.uniui-download-filled:before {
+ content: "\e681";
+}
+
+.uniui-pyq:before {
+ content: "\e682";
+}
+
+.uniui-sound:before {
+ content: "\e684";
+}
+
+.uniui-trash-filled:before {
+ content: "\e685";
+}
+
+.uniui-sound-filled:before {
+ content: "\e686";
+}
+
+.uniui-trash:before {
+ content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+ content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+ content: "\e68a";
+}
+
+.uniui-weibo:before {
+ content: "\e68b";
+}
+
+.uniui-videocam:before {
+ content: "\e68c";
+}
+
+.uniui-download:before {
+ content: "\e68d";
+}
+
+.uniui-help:before {
+ content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+ content: "\e67a";
+}
+
+.uniui-plusempty:before {
+ content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+ content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+ content: "\e67d";
+}
+
+.uniui-micoff:before {
+ content: "\e67e";
+}
+
+.uniui-closeempty:before {
+ content: "\e66c";
+}
+
+.uniui-clear:before {
+ content: "\e66d";
+}
+
+.uniui-navigate:before {
+ content: "\e66e";
+}
+
+.uniui-minus:before {
+ content: "\e66f";
+}
+
+.uniui-image:before {
+ content: "\e670";
+}
+
+.uniui-mic:before {
+ content: "\e671";
+}
+
+.uniui-paperplane:before {
+ content: "\e672";
+}
+
+.uniui-close:before {
+ content: "\e673";
+}
+
+.uniui-help-filled:before {
+ content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+ content: "\e675";
+}
+
+.uniui-plus:before {
+ content: "\e676";
+}
+
+.uniui-mic-filled:before {
+ content: "\e677";
+}
+
+.uniui-image-filled:before {
+ content: "\e678";
+}
+
+.uniui-locked-filled:before {
+ content: "\e668";
+}
+
+.uniui-info:before {
+ content: "\e669";
+}
+
+.uniui-locked:before {
+ content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+ content: "\e658";
+}
+
+.uniui-chat-filled:before {
+ content: "\e659";
+}
+
+.uniui-camera:before {
+ content: "\e65a";
+}
+
+.uniui-circle:before {
+ content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+ content: "\e65c";
+}
+
+.uniui-chat:before {
+ content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+ content: "\e65e";
+}
+
+.uniui-flag:before {
+ content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+ content: "\e660";
+}
+
+.uniui-gear-filled:before {
+ content: "\e661";
+}
+
+.uniui-home:before {
+ content: "\e662";
+}
+
+.uniui-home-filled:before {
+ content: "\e663";
+}
+
+.uniui-gear:before {
+ content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+ content: "\e665";
+}
+
+.uniui-map-filled:before {
+ content: "\e666";
+}
+
+.uniui-map:before {
+ content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+ content: "\e656";
+}
+
+.uniui-refresh:before {
+ content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+ content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+ content: "\e646";
+}
+
+.uniui-cloud-download:before {
+ content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+ content: "\e648";
+}
+
+.uniui-redo:before {
+ content: "\e64a";
+}
+
+.uniui-images-filled:before {
+ content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+ content: "\e64c";
+}
+
+.uniui-more:before {
+ content: "\e64d";
+}
+
+.uniui-more-filled:before {
+ content: "\e64e";
+}
+
+.uniui-undo:before {
+ content: "\e64f";
+}
+
+.uniui-images:before {
+ content: "\e650";
+}
+
+.uniui-paperclip:before {
+ content: "\e652";
+}
+
+.uniui-settings:before {
+ content: "\e653";
+}
+
+.uniui-search:before {
+ content: "\e654";
+}
+
+.uniui-redo-filled:before {
+ content: "\e655";
+}
+
+.uniui-list:before {
+ content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+ content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+ content: "\e63c";
+}
+
+.uniui-hand-down:before {
+ content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+ content: "\e63e";
+}
+
+.uniui-hand-up:before {
+ content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+ content: "\e641";
+}
+
+.uniui-mail-open:before {
+ content: "\e643";
+}
+
+.uniui-heart:before {
+ content: "\e639";
+}
+
+.uniui-loop:before {
+ content: "\e633";
+}
+
+.uniui-pulldown:before {
+ content: "\e632";
+}
+
+.uniui-scan:before {
+ content: "\e62a";
+}
+
+.uniui-bars:before {
+ content: "\e627";
+}
+
+.uniui-checkbox:before {
+ content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+ content: "\e62c";
+}
+
+.uniui-shop:before {
+ content: "\e62f";
+}
+
+.uniui-headphones:before {
+ content: "\e630";
+}
+
+.uniui-cart:before {
+ content: "\e631";
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons.ttf"
new file mode 100644
index 000000000..14696d038
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
new file mode 100644
index 000000000..98e93aa0d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
@@ -0,0 +1,664 @@
+
+export type IconsData = {
+ id : string
+ name : string
+ font_family : string
+ css_prefix_text : string
+ description : string
+ glyphs : Array
+}
+
+export type IconsDataItem = {
+ font_class : string
+ unicode : string
+}
+
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+] as IconsDataItem[]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
new file mode 100644
index 000000000..1cd11e159
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
@@ -0,0 +1,649 @@
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/package.json"
new file mode 100644
index 000000000..665ece728
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-icons",
+ "displayName": "uni-icons 图标",
+ "version": "2.0.8",
+ "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "icon",
+ "图标"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.2.14"
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y",
+ "app-uvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "y",
+ "快手": "y",
+ "飞书": "y",
+ "京东": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/readme.md"
new file mode 100644
index 000000000..86234ba1c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-icons/readme.md"
@@ -0,0 +1,8 @@
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+用于展示 icons 图标 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/changelog.md"
new file mode 100644
index 000000000..8f03f1d57
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/changelog.md"
@@ -0,0 +1,19 @@
+## 1.3.3(2022-01-20)
+- 新增 showText属性 ,是否显示文本
+## 1.3.2(2022-01-19)
+- 修复 nvue 平台下不显示文本的bug
+## 1.3.1(2022-01-19)
+- 修复 微信小程序平台样式选择器报警告的问题
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+## 1.2.1(2021-08-24)
+- 新增 支持国际化
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.8(2021-05-12)
+- 新增 组件示例地址
+## 1.1.7(2021-03-30)
+- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug
+## 1.1.6(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json"
new file mode 100644
index 000000000..a4f14a545
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "Pull up to show more",
+ "uni-load-more.contentrefresh": "loading...",
+ "uni-load-more.contentnomore": "No more data"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json"
new file mode 100644
index 000000000..f15d51050
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉显示更多",
+ "uni-load-more.contentrefresh": "正在加载...",
+ "uni-load-more.contentnomore": "没有更多数据了"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json"
new file mode 100644
index 000000000..a255c6ded
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉顯示更多",
+ "uni-load-more.contentrefresh": "正在加載...",
+ "uni-load-more.contentnomore": "沒有更多數據了"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"
new file mode 100644
index 000000000..e5eff4d65
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ status === 'more' ? contentdownText : status === 'loading' ? contentrefreshText : contentnomoreText }}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/package.json"
new file mode 100644
index 000000000..2fa6f040a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/package.json"
@@ -0,0 +1,86 @@
+{
+ "id": "uni-load-more",
+ "displayName": "uni-load-more 加载更多",
+ "version": "1.3.3",
+ "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "加载更多",
+ "load-more"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/readme.md"
new file mode 100644
index 000000000..54dc1fad2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-load-more/readme.md"
@@ -0,0 +1,14 @@
+
+
+### LoadMore 加载更多
+> **组件名:uni-load-more**
+> 代码块: `uLoadMore`
+
+
+用于列表中,做滚动加载使用,展示 loading 的各种状态。
+
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/changelog.md"
new file mode 100644
index 000000000..b863bb0f5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/changelog.md"
@@ -0,0 +1,8 @@
+## 1.0.3(2022-01-21)
+- 优化 组件示例
+## 1.0.2(2021-11-22)
+- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题
+## 1.0.1(2021-11-22)
+- 修复 vue3中scss语法兼容问题
+## 1.0.0(2021-11-18)
+- init
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/index.scss"
new file mode 100644
index 000000000..1744a5f98
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/index.scss"
@@ -0,0 +1 @@
+@import './styles/index.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/package.json"
new file mode 100644
index 000000000..7cc0ccb73
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/package.json"
@@ -0,0 +1,82 @@
+{
+ "id": "uni-scss",
+ "displayName": "uni-scss 辅助样式",
+ "version": "1.0.3",
+ "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。",
+ "keywords": [
+ "uni-scss",
+ "uni-ui",
+ "辅助样式"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "category": [
+ "JS SDK",
+ "通用 SDK"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "n",
+ "联盟": "n"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/readme.md"
new file mode 100644
index 000000000..b7d1c25f3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/readme.md"
@@ -0,0 +1,4 @@
+`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/index.scss"
new file mode 100644
index 000000000..ffac4fecd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/index.scss"
@@ -0,0 +1,7 @@
+@import './setting/_variables.scss';
+@import './setting/_border.scss';
+@import './setting/_color.scss';
+@import './setting/_space.scss';
+@import './setting/_radius.scss';
+@import './setting/_text.scss';
+@import './setting/_styles.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_border.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_border.scss"
new file mode 100644
index 000000000..12a11c322
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_border.scss"
@@ -0,0 +1,3 @@
+.uni-border {
+ border: 1px $uni-border-1 solid;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_color.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_color.scss"
new file mode 100644
index 000000000..1ededd94d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_color.scss"
@@ -0,0 +1,66 @@
+
+// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
+// @mixin get-styles($k,$c) {
+// @if $k == size or $k == weight{
+// font-#{$k}:#{$c}
+// }@else{
+// #{$k}:#{$c}
+// }
+// }
+$uni-ui-color:(
+ // 主色
+ primary: $uni-primary,
+ primary-disable: $uni-primary-disable,
+ primary-light: $uni-primary-light,
+ // 辅助色
+ success: $uni-success,
+ success-disable: $uni-success-disable,
+ success-light: $uni-success-light,
+ warning: $uni-warning,
+ warning-disable: $uni-warning-disable,
+ warning-light: $uni-warning-light,
+ error: $uni-error,
+ error-disable: $uni-error-disable,
+ error-light: $uni-error-light,
+ info: $uni-info,
+ info-disable: $uni-info-disable,
+ info-light: $uni-info-light,
+ // 中性色
+ main-color: $uni-main-color,
+ base-color: $uni-base-color,
+ secondary-color: $uni-secondary-color,
+ extra-color: $uni-extra-color,
+ // 背景色
+ bg-color: $uni-bg-color,
+ // 边框颜色
+ border-1: $uni-border-1,
+ border-2: $uni-border-2,
+ border-3: $uni-border-3,
+ border-4: $uni-border-4,
+ // 黑色
+ black:$uni-black,
+ // 白色
+ white:$uni-white,
+ // 透明
+ transparent:$uni-transparent
+) !default;
+@each $key, $child in $uni-ui-color {
+ .uni-#{"" + $key} {
+ color: $child;
+ }
+ .uni-#{"" + $key}-bg {
+ background-color: $child;
+ }
+}
+.uni-shadow-sm {
+ box-shadow: $uni-shadow-sm;
+}
+.uni-shadow-base {
+ box-shadow: $uni-shadow-base;
+}
+.uni-shadow-lg {
+ box-shadow: $uni-shadow-lg;
+}
+.uni-mask {
+ background-color:$uni-mask;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_radius.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_radius.scss"
new file mode 100644
index 000000000..9a0428bb8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_radius.scss"
@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+ $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+ // Key exists within the $uni-radius variable
+ @if (map-has-key($uni-radius, $r) and $d){
+ @if $d == t {
+ border-top-left-radius:$radius-value;
+ border-top-right-radius:$radius-value;
+ }@else if $d == r {
+ border-top-right-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == b {
+ border-bottom-left-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == l {
+ border-top-left-radius:$radius-value;
+ border-bottom-left-radius:$radius-value;
+ }@else if $d == tl {
+ border-top-left-radius:$radius-value;
+ }@else if $d == tr {
+ border-top-right-radius:$radius-value;
+ }@else if $d == br {
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == bl {
+ border-bottom-left-radius:$radius-value;
+ }
+ }@else{
+ border-radius:$radius-value;
+ }
+}
+
+@each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $key} {
+ @include radius($key)
+ }
+ }@else{
+ .uni-radius {
+ @include radius($key)
+ }
+ }
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+ @each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $direction}-#{"" + $key} {
+ @include radius($key,$direction,false)
+ }
+ }@else{
+ .uni-radius-#{$direction} {
+ @include radius($key,$direction,false)
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_space.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_space.scss"
new file mode 100644
index 000000000..3c8952897
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_space.scss"
@@ -0,0 +1,56 @@
+
+@mixin fn($space,$direction,$size,$n) {
+ @if $n {
+ #{$space}-#{$direction}: #{$size*$uni-space-root}px
+ } @else {
+ #{$space}-#{$direction}: #{-$size*$uni-space-root}px
+ }
+}
+@mixin get-styles($direction,$i,$space,$n){
+ @if $direction == t {
+ @include fn($space, top,$i,$n);
+ }
+ @if $direction == r {
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == b {
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == l {
+ @include fn($space, left,$i,$n);
+ }
+ @if $direction == x {
+ @include fn($space, left,$i,$n);
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == y {
+ @include fn($space, top,$i,$n);
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == a {
+ @if $n {
+ #{$space}:#{$i*$uni-space-root}px;
+ } @else {
+ #{$space}:#{-$i*$uni-space-root}px;
+ }
+ }
+}
+
+@each $orientation in m,p {
+ $space: margin;
+ @if $orientation == m {
+ $space: margin;
+ } @else {
+ $space: padding;
+ }
+ @for $i from 0 through 16 {
+ @each $direction in t, r, b, l, x, y, a {
+ .uni-#{$orientation}#{$direction}-#{$i} {
+ @include get-styles($direction,$i,$space,true);
+ }
+ .uni-#{$orientation}#{$direction}-n#{$i} {
+ @include get-styles($direction,$i,$space,false);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_styles.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_styles.scss"
new file mode 100644
index 000000000..689afec66
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_styles.scss"
@@ -0,0 +1,167 @@
+/* #ifndef APP-NVUE */
+
+$-color-white:#fff;
+$-color-black:#000;
+@mixin base-style($color) {
+ color: #fff;
+ background-color: $color;
+ border-color: mix($-color-black, $color, 8%);
+ &:not([hover-class]):active {
+ background: mix($-color-black, $color, 10%);
+ border-color: mix($-color-black, $color, 20%);
+ color: $-color-white;
+ outline: none;
+ }
+}
+@mixin is-color($color) {
+ @include base-style($color);
+ &[loading] {
+ @include base-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &[loading],
+ &:not([hover-class]):active {
+ color: $-color-white;
+ border-color: mix(darken($color,10%), $-color-white);
+ background-color: mix($color, $-color-white);
+ }
+ }
+
+}
+@mixin base-plain-style($color) {
+ color:$color;
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 70%);
+ &:not([hover-class]):active {
+ background: mix($-color-white, $color, 80%);
+ color: $color;
+ outline: none;
+ border-color: mix($-color-white, $color, 50%);
+ }
+}
+@mixin is-plain($color){
+ &[plain] {
+ @include base-plain-style($color);
+ &[loading] {
+ @include base-plain-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &:active {
+ color: mix($-color-white, $color, 40%);
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 80%);
+ }
+ }
+ }
+}
+
+
+.uni-btn {
+ margin: 5px;
+ color: #393939;
+ border:1px solid #ccc;
+ font-size: 16px;
+ font-weight: 200;
+ background-color: #F9F9F9;
+ // TODO 暂时处理边框隐藏一边的问题
+ overflow: visible;
+ &::after{
+ border: none;
+ }
+
+ &:not([type]),&[type=default] {
+ color: #999;
+ &[loading] {
+ background: none;
+ &::before {
+ margin-right:5px;
+ }
+ }
+
+
+
+ &[disabled]{
+ color: mix($-color-white, #999, 60%);
+ &,
+ &[loading],
+ &:active {
+ color: mix($-color-white, #999, 60%);
+ background-color: mix($-color-white,$-color-black , 98%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+
+ &[plain] {
+ color: #999;
+ background: none;
+ border-color: $uni-border-1;
+ &:not([hover-class]):active {
+ background: none;
+ color: mix($-color-white, $-color-black, 80%);
+ border-color: mix($-color-white, $-color-black, 90%);
+ outline: none;
+ }
+ &[disabled]{
+ &,
+ &[loading],
+ &:active {
+ background: none;
+ color: mix($-color-white, #999, 60%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+ }
+ }
+
+ &:not([hover-class]):active {
+ color: mix($-color-white, $-color-black, 50%);
+ }
+
+ &[size=mini] {
+ font-size: 16px;
+ font-weight: 200;
+ border-radius: 8px;
+ }
+
+
+
+ &.uni-btn-small {
+ font-size: 14px;
+ }
+ &.uni-btn-mini {
+ font-size: 12px;
+ }
+
+ &.uni-btn-radius {
+ border-radius: 999px;
+ }
+ &[type=primary] {
+ @include is-color($uni-primary);
+ @include is-plain($uni-primary)
+ }
+ &[type=success] {
+ @include is-color($uni-success);
+ @include is-plain($uni-success)
+ }
+ &[type=error] {
+ @include is-color($uni-error);
+ @include is-plain($uni-error)
+ }
+ &[type=warning] {
+ @include is-color($uni-warning);
+ @include is-plain($uni-warning)
+ }
+ &[type=info] {
+ @include is-color($uni-info);
+ @include is-plain($uni-info)
+ }
+}
+/* #endif */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_text.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_text.scss"
new file mode 100644
index 000000000..a34d08f3f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_text.scss"
@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+ @if $k == size or $k == weight{
+ font-#{$k}:#{$c}
+ }@else{
+ #{$k}:#{$c}
+ }
+}
+
+@each $key, $child in $uni-headings {
+ /* #ifndef APP-NVUE */
+ .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ .container .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_variables.scss"
new file mode 100644
index 000000000..557d3d7c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/setting/_variables.scss"
@@ -0,0 +1,146 @@
+// @use "sass:math";
+@import '../tools/functions.scss';
+// 间距基础倍数
+$uni-space-root: 2 !default;
+// 边框半径默认值
+$uni-radius-root:5px !default;
+$uni-radius: () !default;
+// 边框半径断点
+$uni-radius: map-deep-merge(
+ (
+ 0: 0,
+ // TODO 当前版本暂时不支持 sm 属性
+ // 'sm': math.div($uni-radius-root, 2),
+ null: $uni-radius-root,
+ 'lg': $uni-radius-root * 2,
+ 'xl': $uni-radius-root * 6,
+ 'pill': 9999px,
+ 'circle': 50%
+ ),
+ $uni-radius
+);
+// 字体家族
+$body-font-family: 'Roboto', sans-serif !default;
+// 文本
+$heading-font-family: $body-font-family !default;
+$uni-headings: () !default;
+$letterSpacing: -0.01562em;
+$uni-headings: map-deep-merge(
+ (
+ 'h1': (
+ size: 32px,
+ weight: 300,
+ line-height: 50px,
+ // letter-spacing:-0.01562em
+ ),
+ 'h2': (
+ size: 28px,
+ weight: 300,
+ line-height: 40px,
+ // letter-spacing: -0.00833em
+ ),
+ 'h3': (
+ size: 24px,
+ weight: 400,
+ line-height: 32px,
+ // letter-spacing: normal
+ ),
+ 'h4': (
+ size: 20px,
+ weight: 400,
+ line-height: 30px,
+ // letter-spacing: 0.00735em
+ ),
+ 'h5': (
+ size: 16px,
+ weight: 400,
+ line-height: 24px,
+ // letter-spacing: normal
+ ),
+ 'h6': (
+ size: 14px,
+ weight: 500,
+ line-height: 18px,
+ // letter-spacing: 0.0125em
+ ),
+ 'subtitle': (
+ size: 12px,
+ weight: 400,
+ line-height: 20px,
+ // letter-spacing: 0.00937em
+ ),
+ 'body': (
+ font-size: 14px,
+ font-weight: 400,
+ line-height: 22px,
+ // letter-spacing: 0.03125em
+ ),
+ 'caption': (
+ 'size': 12px,
+ 'weight': 400,
+ 'line-height': 20px,
+ // 'letter-spacing': 0.03333em,
+ // 'text-transform': false
+ )
+ ),
+ $uni-headings
+);
+
+
+
+// 主色
+$uni-primary: #2979ff !default;
+$uni-primary-disable:lighten($uni-primary,20%) !default;
+$uni-primary-light: lighten($uni-primary,25%) !default;
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37 !default;
+$uni-success-disable:lighten($uni-success,20%) !default;
+$uni-success-light: lighten($uni-success,25%) !default;
+
+$uni-warning: #f3a73f !default;
+$uni-warning-disable:lighten($uni-warning,20%) !default;
+$uni-warning-light: lighten($uni-warning,25%) !default;
+
+$uni-error: #e43d33 !default;
+$uni-error-disable:lighten($uni-error,20%) !default;
+$uni-error-light: lighten($uni-error,25%) !default;
+
+$uni-info: #8f939c !default;
+$uni-info-disable:lighten($uni-info,20%) !default;
+$uni-info-light: lighten($uni-info,25%) !default;
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a !default; // 主要文字
+$uni-base-color: #6a6a6a !default; // 常规文字
+$uni-secondary-color: #909399 !default; // 次要文字
+$uni-extra-color: #c7c7c7 !default; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0 !default;
+$uni-border-2: #EDEDED !default;
+$uni-border-3: #DCDCDC !default;
+$uni-border-4: #B9B9B9 !default;
+
+// 常规色
+$uni-black: #000000 !default;
+$uni-white: #ffffff !default;
+$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
+
+// 背景色
+$uni-bg-color: #f7f7f7 !default;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px !default;
+$uni-spacing-base: 15px !default;
+$uni-spacing-lg: 30px !default;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/tools/functions.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/tools/functions.scss"
new file mode 100644
index 000000000..ac6f63e53
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/styles/tools/functions.scss"
@@ -0,0 +1,19 @@
+// 合并 map
+@function map-deep-merge($parent-map, $child-map){
+ $result: $parent-map;
+ @each $key, $child in $child-map {
+ $parent-has-key: map-has-key($result, $key);
+ $parent-value: map-get($result, $key);
+ $parent-type: type-of($parent-value);
+ $child-type: type-of($child);
+ $parent-is-map: $parent-type == map;
+ $child-is-map: $child-type == map;
+
+ @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
+ $result: map-merge($result, ( $key: $child ));
+ }@else {
+ $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
+ }
+ }
+ @return $result;
+};
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/theme.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/theme.scss"
new file mode 100644
index 000000000..80ee62f7d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/theme.scss"
@@ -0,0 +1,31 @@
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+// 主色
+$uni-primary: #2979ff;
+// 辅助色
+$uni-success: #4cd964;
+// 警告色
+$uni-warning: #f0ad4e;
+// 错误色
+$uni-error: #dd524d;
+// 描述色
+$uni-info: #909399;
+// 中性色
+$uni-main-color: #303133;
+$uni-base-color: #606266;
+$uni-secondary-color: #909399;
+$uni-extra-color: #C0C4CC;
+// 背景色
+$uni-bg-color: #f5f5f5;
+// 边框颜色
+$uni-border-1: #DCDFE6;
+$uni-border-2: #E4E7ED;
+$uni-border-3: #EBEEF5;
+$uni-border-4: #F2F6FC;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/variables.scss"
new file mode 100644
index 000000000..1c062d42b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-scss/variables.scss"
@@ -0,0 +1,62 @@
+@import './styles/setting/_variables.scss';
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+
+// 主色
+$uni-primary: #2979ff;
+$uni-primary-disable:mix(#fff,$uni-primary,50%);
+$uni-primary-light: mix(#fff,$uni-primary,80%);
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37;
+$uni-success-disable:mix(#fff,$uni-success,50%);
+$uni-success-light: mix(#fff,$uni-success,80%);
+
+$uni-warning: #f3a73f;
+$uni-warning-disable:mix(#fff,$uni-warning,50%);
+$uni-warning-light: mix(#fff,$uni-warning,80%);
+
+$uni-error: #e43d33;
+$uni-error-disable:mix(#fff,$uni-error,50%);
+$uni-error-light: mix(#fff,$uni-error,80%);
+
+$uni-info: #8f939c;
+$uni-info-disable:mix(#fff,$uni-info,50%);
+$uni-info-light: mix(#fff,$uni-info,80%);
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a; // 主要文字
+$uni-base-color: #6a6a6a; // 常规文字
+$uni-secondary-color: #909399; // 次要文字
+$uni-extra-color: #c7c7c7; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0;
+$uni-border-2: #EDEDED;
+$uni-border-3: #DCDCDC;
+$uni-border-4: #B9B9B9;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
+
+// 背景色
+$uni-bg-color: #f7f7f7;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px;
+$uni-spacing-base: 15px;
+$uni-spacing-lg: 30px;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/changelog.md"
new file mode 100644
index 000000000..a44385d7c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/changelog.md"
@@ -0,0 +1,9 @@
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control)
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.5(2021-05-12)
+- 新增 项目示例地址
+## 1.0.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue"
new file mode 100644
index 000000000..044a4951f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue"
@@ -0,0 +1,145 @@
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/package.json"
new file mode 100644
index 000000000..6cae41db2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-segmented-control",
+ "displayName": "uni-segmented-control 分段器",
+ "version": "1.2.0",
+ "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "分段器",
+ "segement",
+ "顶部选择"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/readme.md"
new file mode 100644
index 000000000..3527b03f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/uni_modules/uni-segmented-control/readme.md"
@@ -0,0 +1,13 @@
+
+
+## SegmentedControl 分段器
+> **组件名:uni-segmented-control**
+> 代码块: `uSegmentedControl`
+
+
+用作不同视图的显示
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/vite.config.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/vite.config.js"
new file mode 100644
index 000000000..6dfc42bbc
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappDemo3/vite.config.js"
@@ -0,0 +1,18 @@
+import { defineConfig } from 'vite'
+import uni from '@dcloudio/vite-plugin-uni'
+import AutoImport from 'unplugin-auto-import/vite'
+
+export default defineConfig({
+ plugins: [
+ uni(),
+ // 自动导入配置
+ AutoImport({
+ imports:[
+ // 预设
+ 'vue',
+ 'uni-app'
+ ]
+ })
+ ]
+})
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/.hbuilderx/launch.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/.hbuilderx/launch.json"
new file mode 100644
index 000000000..aafc1c9bf
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/.hbuilderx/launch.json"
@@ -0,0 +1,20 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-toutiao" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/App.vue"
new file mode 100644
index 000000000..8c2b73210
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/manifest.json"
new file mode 100644
index 000000000..2b6220ca3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/manifest.json"
@@ -0,0 +1,72 @@
+{
+ "name" : "uniappV3Demo1",
+ "appid" : "__UNI__828099C",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages.json"
new file mode 100644
index 000000000..f3cee7ab1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages.json"
@@ -0,0 +1,110 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app"
+ }
+ },{
+ "path": "pages/index/demodemo",
+ "style": {
+ "navigationBarTitleText": "测试页面"
+ }
+ },
+ {
+ "path" : "pages/demo1/demo1",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo页面",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo2/demo2",
+ "style" :
+ {
+ "navigationBarTitleText" : "这是demo2",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo3/demo3",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo3页面",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo4/demo4",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo4",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo5/demo5",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo5",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo6/demo6",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo6",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo7/demo7",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo7",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo8/demo8",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo8",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo9/demo9",
+ "style" :
+ {
+ "navigationBarTitleText" : "热梗指南",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo10/demo10",
+ "style" :
+ {
+ "navigationBarTitleText" : "demo10",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/demo11/demo11",
+ "style" :
+ {
+ "navigationBarTitleText" : "watch",
+ "enablePullDownRefresh" : false
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo1/demo1.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo1/demo1.vue"
new file mode 100644
index 000000000..efc366b51
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo1/demo1.vue"
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+ -----
+ 跳转到demo2
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo10/demo10.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo10/demo10.vue"
new file mode 100644
index 000000000..950d8a48f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo10/demo10.vue"
@@ -0,0 +1,41 @@
+
+
+
+
+
+ 全称:{{fullName}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo11/demo11.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo11/demo11.vue"
new file mode 100644
index 000000000..923143fb6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo11/demo11.vue"
@@ -0,0 +1,50 @@
+
+
+
+
+
+ 全称:{{fullName}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo2/demo2.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo2/demo2.vue"
new file mode 100644
index 000000000..2d41daf35
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo2/demo2.vue"
@@ -0,0 +1,36 @@
+
+ {{num1}}
+ {{num2}}
+ {{test}}
+ {{arr[2]}}
+ {{obj}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo3/demo3.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo3/demo3.vue"
new file mode 100644
index 000000000..4ca00403e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo3/demo3.vue"
@@ -0,0 +1,54 @@
+
+
+
+
+ 按钮
+
+
+
+ v-bind指令
+
+
+
+
+ 内联样式
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo4/demo4.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo4/demo4.vue"
new file mode 100644
index 000000000..344428fbd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo4/demo4.vue"
@@ -0,0 +1,30 @@
+
+
+ {{num}}
+
+
+ 普通按钮
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo5/demo5.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo5/demo5.vue"
new file mode 100644
index 000000000..1c0942bff
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo5/demo5.vue"
@@ -0,0 +1,47 @@
+
+
+ 京东
+ 淘宝网
+
+
+
+ 星期1
+ 星期2
+ 星期3
+ 星期4
+ 星期5
+ 星期6
+ 周末
+ 格式错误
+
+
+
+
+
+
+
+
+
+
+ logo
+
+
+
+
+
+
+ pic4
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo6/demo6.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo6/demo6.vue"
new file mode 100644
index 000000000..f85a4d898
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo6/demo6.vue"
@@ -0,0 +1,22 @@
+
+
+ box模块-{{index+1}}
+
+
+ 球星:{{item.name}} - 球衣:{{item.num}}
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo7/demo7-00.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo7/demo7-00.vue"
new file mode 100644
index 000000000..3a835c603
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo7/demo7-00.vue"
@@ -0,0 +1,36 @@
+
+
+
+
+ {{item.name}}
+ 删除
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo7/demo7.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo7/demo7.vue"
new file mode 100644
index 000000000..405af19f4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo7/demo7.vue"
@@ -0,0 +1,93 @@
+
+
+
+
+
+ {{item.name}}
+ {{item.price}}元
+ 删除
+
+
+
+
+ 选中{{totalNumber}}个,总价:{{totalPrice}}元
+
+
+ {{selectGroup}}
+ ---
+ {{goods}}
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo8/demo8.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo8/demo8.vue"
new file mode 100644
index 000000000..b58f0914a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo8/demo8.vue"
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ 预览:{{iptValue}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo9/demo9.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo9/demo9.vue"
new file mode 100644
index 000000000..711a93403
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/demo9/demo9.vue"
@@ -0,0 +1,112 @@
+
+
+ 近期热梗
+
+
+
+
+
+ {{index+1}}. {{item.title}}
+
+
+
+
+
+
+ 共{{lists.length}}条梗
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/index/demodemo.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/index/demodemo.vue"
new file mode 100644
index 000000000..31059a821
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/index/demodemo.vue"
@@ -0,0 +1,30 @@
+
+
+
+
+
+ 全称:{{firstName.split("").join('|') + "-" + lastName.split("").join('|')}}
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/index/index.vue"
new file mode 100644
index 000000000..e0b7cc37d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/pages/index/index.vue"
@@ -0,0 +1,51 @@
+
+
+ 内部元素
+
+
+
+
+ ----
+
+
+ 跳转到demo1
+
+
+
+
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+ scroll子元素
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/chicken.gif" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/chicken.gif"
new file mode 100644
index 000000000..7d53a27aa
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/chicken.gif" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/logo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/logo.png"
new file mode 100644
index 000000000..b5771e209
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/logo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic1.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic1.png"
new file mode 100644
index 000000000..e470a3769
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic1.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic2.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic2.png"
new file mode 100644
index 000000000..6ec61b9df
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic2.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic3.webp" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic3.webp"
new file mode 100644
index 000000000..56ce03ac9
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic3.webp" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic4.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic4.jpg"
new file mode 100644
index 000000000..002d2d58f
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/static/pic4.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/uni.scss"
new file mode 100644
index 000000000..a05adb4a7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniappV3Demo1/uni.scss"
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/.hbuilderx/launch.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/.hbuilderx/launch.json"
new file mode 100644
index 000000000..81f13f4f4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/.hbuilderx/launch.json"
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/App.vue"
new file mode 100644
index 000000000..8c2b73210
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/api/apis.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/api/apis.js"
new file mode 100644
index 000000000..869a9eaef
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/api/apis.js"
@@ -0,0 +1,8 @@
+import {request} from "@/utils/request.js"
+
+export function apiNbaData(){
+ return request({
+ url:"/api/match/playerranking/match/NBA/tabId/60"
+ })
+}
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/config.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/config.js"
new file mode 100644
index 000000000..949419ca4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/config.js"
@@ -0,0 +1,14 @@
+// 系统信息
+export const SYSTEM_INFO = uni.getSystemInfoSync()
+
+
+// 主机地址
+export const HOST = 'https://tiyu.baidu.com';
+
+
+// api服务器
+export const API_HOST = SYSTEM_INFO.uniPlatform === 'web' ? '' : HOST;
+
+
+// api服务代理路径
+export const API_PROXY = SYSTEM_INFO.uniPlatform === 'web' ? '/h5api' : ''
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/manifest.json"
new file mode 100644
index 000000000..ea8570b92
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/manifest.json"
@@ -0,0 +1,72 @@
+{
+ "name" : "uniapp跨域",
+ "appid" : "__UNI__59FC8A8",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/pages.json"
new file mode 100644
index 000000000..869105d7c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/pages.json"
@@ -0,0 +1,17 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app"
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/pages/index/index.vue"
new file mode 100644
index 000000000..7a3327795
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/pages/index/index.vue"
@@ -0,0 +1,43 @@
+
+
+
+
+ {{item.playerName}}
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/static/logo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/static/logo.png"
new file mode 100644
index 000000000..b5771e209
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/static/logo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/uni.scss"
new file mode 100644
index 000000000..a05adb4a7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/uni.scss"
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/utils/common.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/utils/common.js"
new file mode 100644
index 000000000..115b3c55d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/utils/common.js"
@@ -0,0 +1,9 @@
+import {API_HOST,API_PROXY} from "../config.js"
+
+/**
+ * 组装接口url
+ */
+export const packApiUrl = (url = '') => {
+ if (url.slice(0, 4) === 'http') return url
+ else return `${API_HOST}${API_PROXY}${url}`
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/utils/request.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/utils/request.js"
new file mode 100644
index 000000000..fa2005d76
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/utils/request.js"
@@ -0,0 +1,35 @@
+import {packApiUrl} from "./common.js"
+export function request(config={}){
+ let {
+ url,
+ data={},
+ method="GET",
+ header={}
+ } = config
+
+ url =packApiUrl(url);
+
+ return new Promise((resolve,reject)=>{
+ uni.request({
+ url,
+ data,
+ method,
+ header,
+ success:res=>{
+ if(res.data.status==0){
+ resolve(res.data.data)
+ }else{
+ uni.showToast({
+ title:res.data.message,
+ icon:"none"
+ })
+ reject(res.data.data)
+ }
+
+ },
+ fail:err=>{
+ reject(err)
+ }
+ })
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/vite.config.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/vite.config.js"
new file mode 100644
index 000000000..0c057cad6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/uniapp\350\267\250\345\237\237/vite.config.js"
@@ -0,0 +1,18 @@
+import { defineConfig } from 'vite';
+import uni from '@dcloudio/vite-plugin-uni';
+
+export default defineConfig({
+ plugins: [uni()],
+ server: {
+ host: "localhost", // 指定服务器应该监听哪个IP地址,默认:localhost
+ port: 8899, // 指定开发服务器端口,默认:5173
+ proxy: { // 为开发服务器配置自定义代理规则
+ // 带选项写法:http://localhost:5173/api/posts -> http://jsonplaceholder.typicode.com/posts
+ "/h5api": {
+ target: "https://tiyu.baidu.com", // 目标接口
+ changeOrigin: true, // 是否换源
+ rewrite: (path) => path.replace(/^\/h5api/, ""),
+ }
+ }
+ }
+});
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/.hbuilderx/launch.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/.hbuilderx/launch.json"
new file mode 100644
index 000000000..aafc1c9bf
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/.hbuilderx/launch.json"
@@ -0,0 +1,20 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-toutiao" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/App.vue"
new file mode 100644
index 000000000..806765aa3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner1.jpg"
new file mode 100644
index 000000000..5f6470eee
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner2.jpg"
new file mode 100644
index 000000000..218ba07b8
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner3.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner3.jpg"
new file mode 100644
index 000000000..c444a9732
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/banner3.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/classify1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/classify1.jpg"
new file mode 100644
index 000000000..040047c8a
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/classify1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/classify2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/classify2.jpg"
new file mode 100644
index 000000000..7de667b60
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/classify2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/more.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/more.jpg"
new file mode 100644
index 000000000..8cc2ff330
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/more.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview1.jpg"
new file mode 100644
index 000000000..0413ad885
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview2.jpg"
new file mode 100644
index 000000000..335d86ad9
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview_small.webp" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview_small.webp"
new file mode 100644
index 000000000..716f2cbe6
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/images/preview_small.webp" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/style/base-style.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/style/base-style.scss"
new file mode 100644
index 000000000..c4d5643c6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/style/base-style.scss"
@@ -0,0 +1,9 @@
+$brand-theme-color:#28B389; //品牌主体红色
+
+$border-color:#e0e0e0; //边框颜色
+$border-color-light:#efefef; //边框亮色
+
+$text-font-color-1:#000; //文字主色
+$text-font-color-2:#676767; //副标题颜色
+$text-font-color-3:#a7a7a7; //浅色
+$text-font-color-4:#e4e4e4; //更浅
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/style/common-style.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/style/common-style.scss"
new file mode 100644
index 000000000..6960ad4e9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/common/style/common-style.scss"
@@ -0,0 +1,10 @@
+view,swiper,swiper-item{
+ box-sizing: border-box;
+}
+
+.pageBg{
+ background:
+ linear-gradient(to bottom,transparent,#fff 400rpx),
+ linear-gradient(to right,#beecd8 20%,#F4E2D8);
+ min-height: 80vh;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/common-title/common-title.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/common-title/common-title.vue"
new file mode 100644
index 000000000..f78a4c62b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/common-title/common-title.vue"
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/custom-nav-bar/custom-nav-bar.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/custom-nav-bar/custom-nav-bar.vue"
new file mode 100644
index 000000000..e7adc38b9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/custom-nav-bar/custom-nav-bar.vue"
@@ -0,0 +1,81 @@
+
+
+
+
+
+ {{title}}
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/theme-item/theme-item.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/theme-item/theme-item.vue"
new file mode 100644
index 000000000..0d3c17fe4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/components/theme-item/theme-item.vue"
@@ -0,0 +1,79 @@
+
+
+
+
+ 明星美女
+ 3天前更新
+
+
+
+
+
+
+ 更多
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/manifest.json"
new file mode 100644
index 000000000..466aeb0e8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/manifest.json"
@@ -0,0 +1,72 @@
+{
+ "name" : "wallpaper-kt",
+ "appid" : "__UNI__B8FCDB7",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wx511abe7a13783591",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages.json"
new file mode 100644
index 000000000..66fe6ee51
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages.json"
@@ -0,0 +1,99 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/classify/classify",
+ "style" :
+ {
+ "navigationBarTitleText" : "分类",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/user/user",
+ "style" :
+ {
+ "navigationBarTitleText" : "我的",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/classlist/classlist",
+ "style" :
+ {
+ "navigationBarTitleText" : "分类列表",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/preview/preview",
+ "style" :
+ {
+ "navigationBarTitleText" : "预览",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/notice/notice",
+ "style" :
+ {
+ "navigationBarTitleText" : "公告",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/notice/detail",
+ "style" :
+ {
+ "navigationBarTitleText" : "公告详情",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/search/search",
+ "style" :
+ {
+ "navigationBarTitleText" : "搜索",
+ "enablePullDownRefresh" : false
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "咸虾米壁纸",
+ "navigationBarBackgroundColor": "#fff",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#9799a5",
+ "selectedColor": "#28B389",
+ "list": [
+ {
+ "text": "推荐",
+ "pagePath": "pages/index/index",
+ "iconPath": "static/images/tabBar/home.png",
+ "selectedIconPath": "static/images/tabBar/home-h.png"
+ },{
+ "text": "分类",
+ "pagePath": "pages/classify/classify",
+ "iconPath": "static/images/tabBar/classify.png",
+ "selectedIconPath": "static/images/tabBar/classify-h.png"
+ },{
+ "text": "我的",
+ "pagePath": "pages/user/user",
+ "iconPath": "static/images/tabBar/user.png",
+ "selectedIconPath": "static/images/tabBar/user-h.png"
+ }
+ ]
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/classify/classify.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/classify/classify.vue"
new file mode 100644
index 000000000..6307f4c7d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/classify/classify.vue"
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/classlist/classlist.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/classlist/classlist.vue"
new file mode 100644
index 000000000..27c1da000
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/classlist/classlist.vue"
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/index/index.vue"
new file mode 100644
index 000000000..b28694f59
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/index/index.vue"
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 公告
+
+
+
+
+
+ 文字内容文字内容文字内容文字内容文字内容文字内容
+
+
+
+
+
+
+
+
+
+
+
+ 每日推荐
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 专题精选
+
+ More+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/notice/detail.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/notice/detail.vue"
new file mode 100644
index 000000000..a02ff001b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/notice/detail.vue"
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ 这个区域填写标题
+
+
+
+ 咸虾米
+
+
+
+
+
+
+
+ 内容区域
+
+
+
+ 阅读 5588
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/notice/notice.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/notice/notice.vue"
new file mode 100644
index 000000000..852490f13
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/notice/notice.vue"
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/preview/preview.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/preview/preview.vue"
new file mode 100644
index 000000000..d1e7decc8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/preview/preview.vue"
@@ -0,0 +1,358 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 3 / 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/search/search.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/search/search.vue"
new file mode 100644
index 000000000..6bf3d7487
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/search/search.vue"
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+ 最近搜索
+
+
+
+
+
+ {{tab}}
+
+
+
+
+
+ 热门搜索
+
+
+ {{tab}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/user/user.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/user/user.vue"
new file mode 100644
index 000000000..220ba7234
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/pages/user/user.vue"
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+ 100.100.100.100
+ 来自于:山东
+
+
+
+
+
+
+
+
+
+
+ 我的下载
+
+
+ 33
+
+
+
+
+
+
+
+ 我的评分
+
+
+ 33
+
+
+
+
+
+
+
+ 联系客服
+
+
+
+
+
+
+ 联系客服
+
+
+ 拨打电话
+
+
+
+
+
+
+
+
+
+
+
+
+ 订阅更新
+
+
+
+
+
+
+
+
+
+
+ 常见问题
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/classify-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/classify-h.png"
new file mode 100644
index 000000000..2858107ef
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/classify-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/classify.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/classify.png"
new file mode 100644
index 000000000..d32bc6c75
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/classify.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/home-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/home-h.png"
new file mode 100644
index 000000000..e86e1dd9c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/home-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/home.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/home.png"
new file mode 100644
index 000000000..591aa1a19
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/home.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/user-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/user-h.png"
new file mode 100644
index 000000000..fa8b717cf
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/user-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/user.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/user.png"
new file mode 100644
index 000000000..6d53fc02c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/tabBar/user.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/xxmLogo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/xxmLogo.png"
new file mode 100644
index 000000000..d822b165e
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/static/images/xxmLogo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni.scss"
new file mode 100644
index 000000000..3f7a4ba0f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni.scss"
@@ -0,0 +1,62 @@
+@import "@/common/style/base-style.scss";
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/changelog.md"
new file mode 100644
index 000000000..d551d7b88
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/changelog.md"
@@ -0,0 +1,10 @@
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+## 0.0.5(2021-07-08)
+- 调整 默认时间不再是当前时间,而是显示'-'字符
+## 0.0.4(2021-05-12)
+- 新增 组件示例地址
+## 0.0.3(2021-02-04)
+- 调整为uni_modules目录规范
+- 修复 iOS 平台日期格式化出错的问题
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js"
new file mode 100644
index 000000000..e00d5597e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js"
@@ -0,0 +1,200 @@
+// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型
+function pad(str, length = 2) {
+ str += ''
+ while (str.length < length) {
+ str = '0' + str
+ }
+ return str.slice(-length)
+}
+
+const parser = {
+ yyyy: (dateObj) => {
+ return pad(dateObj.year, 4)
+ },
+ yy: (dateObj) => {
+ return pad(dateObj.year)
+ },
+ MM: (dateObj) => {
+ return pad(dateObj.month)
+ },
+ M: (dateObj) => {
+ return dateObj.month
+ },
+ dd: (dateObj) => {
+ return pad(dateObj.day)
+ },
+ d: (dateObj) => {
+ return dateObj.day
+ },
+ hh: (dateObj) => {
+ return pad(dateObj.hour)
+ },
+ h: (dateObj) => {
+ return dateObj.hour
+ },
+ mm: (dateObj) => {
+ return pad(dateObj.minute)
+ },
+ m: (dateObj) => {
+ return dateObj.minute
+ },
+ ss: (dateObj) => {
+ return pad(dateObj.second)
+ },
+ s: (dateObj) => {
+ return dateObj.second
+ },
+ SSS: (dateObj) => {
+ return pad(dateObj.millisecond, 3)
+ },
+ S: (dateObj) => {
+ return dateObj.millisecond
+ },
+}
+
+// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12
+function getDate(time) {
+ if (time instanceof Date) {
+ return time
+ }
+ switch (typeof time) {
+ case 'string':
+ {
+ // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000
+ if (time.indexOf('T') > -1) {
+ return new Date(time)
+ }
+ return new Date(time.replace(/-/g, '/'))
+ }
+ default:
+ return new Date(time)
+ }
+}
+
+export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') {
+ if (!date && date !== 0) {
+ return ''
+ }
+ date = getDate(date)
+ const dateObj = {
+ year: date.getFullYear(),
+ month: date.getMonth() + 1,
+ day: date.getDate(),
+ hour: date.getHours(),
+ minute: date.getMinutes(),
+ second: date.getSeconds(),
+ millisecond: date.getMilliseconds()
+ }
+ const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/
+ let flag = true
+ let result = format
+ while (flag) {
+ flag = false
+ result = result.replace(tokenRegExp, function(matched) {
+ flag = true
+ return parser[matched](dateObj)
+ })
+ }
+ return result
+}
+
+export function friendlyDate(time, {
+ locale = 'zh',
+ threshold = [60000, 3600000],
+ format = 'yyyy/MM/dd hh:mm:ss'
+}) {
+ if (time === '-') {
+ return time
+ }
+ if (!time && time !== 0) {
+ return ''
+ }
+ const localeText = {
+ zh: {
+ year: '年',
+ month: '月',
+ day: '天',
+ hour: '小时',
+ minute: '分钟',
+ second: '秒',
+ ago: '前',
+ later: '后',
+ justNow: '刚刚',
+ soon: '马上',
+ template: '{num}{unit}{suffix}'
+ },
+ en: {
+ year: 'year',
+ month: 'month',
+ day: 'day',
+ hour: 'hour',
+ minute: 'minute',
+ second: 'second',
+ ago: 'ago',
+ later: 'later',
+ justNow: 'just now',
+ soon: 'soon',
+ template: '{num} {unit} {suffix}'
+ }
+ }
+ const text = localeText[locale] || localeText.zh
+ let date = getDate(time)
+ let ms = date.getTime() - Date.now()
+ let absMs = Math.abs(ms)
+ if (absMs < threshold[0]) {
+ return ms < 0 ? text.justNow : text.soon
+ }
+ if (absMs >= threshold[1]) {
+ return formatDate(date, format)
+ }
+ let num
+ let unit
+ let suffix = text.later
+ if (ms < 0) {
+ suffix = text.ago
+ ms = -ms
+ }
+ const seconds = Math.floor((ms) / 1000)
+ const minutes = Math.floor(seconds / 60)
+ const hours = Math.floor(minutes / 60)
+ const days = Math.floor(hours / 24)
+ const months = Math.floor(days / 30)
+ const years = Math.floor(months / 12)
+ switch (true) {
+ case years > 0:
+ num = years
+ unit = text.year
+ break
+ case months > 0:
+ num = months
+ unit = text.month
+ break
+ case days > 0:
+ num = days
+ unit = text.day
+ break
+ case hours > 0:
+ num = hours
+ unit = text.hour
+ break
+ case minutes > 0:
+ num = minutes
+ unit = text.minute
+ break
+ default:
+ num = seconds
+ unit = text.second
+ break
+ }
+
+ if (locale === 'en') {
+ if (num === 1) {
+ num = 'a'
+ } else {
+ unit += 's'
+ }
+ }
+
+ return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g,
+ suffix)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"
new file mode 100644
index 000000000..c5ed03078
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"
@@ -0,0 +1,88 @@
+
+ {{dateShow}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/package.json"
new file mode 100644
index 000000000..786a670b0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-dateformat",
+ "displayName": "uni-dateformat 日期格式化",
+ "version": "1.0.0",
+ "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "日期格式化",
+ "时间格式化",
+ "格式化时间",
+ ""
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/readme.md"
new file mode 100644
index 000000000..37ddb6ece
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-dateformat/readme.md"
@@ -0,0 +1,11 @@
+
+
+### DateFormat 日期格式化
+> **组件名:uni-dateformat**
+> 代码块: `uDateformat`
+
+
+日期格式化组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/changelog.md"
new file mode 100644
index 000000000..620ab0277
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/changelog.md"
@@ -0,0 +1,40 @@
+## 2.0.9(2024-01-12)
+fix: 修复图标大小默认值错误的问题
+## 2.0.8(2023-12-14)
+- 修复 项目未使用 ts 情况下,打包报错的bug
+## 2.0.7(2023-12-14)
+- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
+## 2.0.6(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.5(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.4(2023-12-06)
+- 优化 uni-app x 下示例项目图标排序
+## 2.0.3(2023-12-06)
+- 修复 nvue下引入组件报错的bug
+## 2.0.2(2023-12-05)
+-优化 size 属性支持单位
+## 2.0.1(2023-12-05)
+- 新增 uni-app x 支持定义图标
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
new file mode 100644
index 000000000..398678eea
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
@@ -0,0 +1,91 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uni-icons.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
new file mode 100644
index 000000000..7da53560f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
@@ -0,0 +1,110 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons.css"
new file mode 100644
index 000000000..0a6b6fea1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons.css"
@@ -0,0 +1,664 @@
+
+.uniui-cart-filled:before {
+ content: "\e6d0";
+}
+
+.uniui-gift-filled:before {
+ content: "\e6c4";
+}
+
+.uniui-color:before {
+ content: "\e6cf";
+}
+
+.uniui-wallet:before {
+ content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+ content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+ content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+ content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+ content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+ content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+ content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+ content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+ content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+ content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+ content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+ content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+ content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+ content: "\e6c3";
+}
+
+.uniui-fire-filled:before {
+ content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+ content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+ content: "\e6af";
+}
+
+.uniui-person-filled:before {
+ content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+ content: "\e698";
+}
+
+.uniui-arrowthinleft:before {
+ content: "\e6d2";
+}
+
+.uniui-arrowthinup:before {
+ content: "\e6d3";
+}
+
+.uniui-arrowthindown:before {
+ content: "\e6d4";
+}
+
+.uniui-back:before {
+ content: "\e6b9";
+}
+
+.uniui-forward:before {
+ content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+ content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+ content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+ content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+ content: "\e6be";
+}
+
+.uniui-arrowthinright:before {
+ content: "\e6d1";
+}
+
+.uniui-down:before {
+ content: "\e6b8";
+}
+
+.uniui-bottom:before {
+ content: "\e6b8";
+}
+
+.uniui-arrowright:before {
+ content: "\e6d5";
+}
+
+.uniui-right:before {
+ content: "\e6b5";
+}
+
+.uniui-up:before {
+ content: "\e6b6";
+}
+
+.uniui-top:before {
+ content: "\e6b6";
+}
+
+.uniui-left:before {
+ content: "\e6b7";
+}
+
+.uniui-arrowup:before {
+ content: "\e6d6";
+}
+
+.uniui-eye:before {
+ content: "\e651";
+}
+
+.uniui-eye-filled:before {
+ content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+ content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+ content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+ content: "\e649";
+}
+
+.uniui-reload:before {
+ content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+ content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+ content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+ content: "\e6ad";
+}
+
+.uniui-location:before {
+ content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+ content: "\e683";
+}
+
+.uniui-star:before {
+ content: "\e688";
+}
+
+.uniui-star-filled:before {
+ content: "\e68f";
+}
+
+.uniui-calendar:before {
+ content: "\e6a0";
+}
+
+.uniui-fire:before {
+ content: "\e6a1";
+}
+
+.uniui-medal:before {
+ content: "\e6a2";
+}
+
+.uniui-font:before {
+ content: "\e6a3";
+}
+
+.uniui-gift:before {
+ content: "\e6a4";
+}
+
+.uniui-link:before {
+ content: "\e6a5";
+}
+
+.uniui-notification:before {
+ content: "\e6a6";
+}
+
+.uniui-staff:before {
+ content: "\e6a7";
+}
+
+.uniui-vip:before {
+ content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+ content: "\e6a9";
+}
+
+.uniui-tune:before {
+ content: "\e6aa";
+}
+
+.uniui-auth:before {
+ content: "\e6ab";
+}
+
+.uniui-person:before {
+ content: "\e699";
+}
+
+.uniui-email-filled:before {
+ content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+ content: "\e69b";
+}
+
+.uniui-phone:before {
+ content: "\e69c";
+}
+
+.uniui-email:before {
+ content: "\e69e";
+}
+
+.uniui-personadd:before {
+ content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+ content: "\e692";
+}
+
+.uniui-contact:before {
+ content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+ content: "\e694";
+}
+
+.uniui-contact-filled:before {
+ content: "\e695";
+}
+
+.uniui-chatboxes:before {
+ content: "\e696";
+}
+
+.uniui-chatbubble:before {
+ content: "\e697";
+}
+
+.uniui-upload-filled:before {
+ content: "\e68e";
+}
+
+.uniui-upload:before {
+ content: "\e690";
+}
+
+.uniui-weixin:before {
+ content: "\e691";
+}
+
+.uniui-compose:before {
+ content: "\e67f";
+}
+
+.uniui-qq:before {
+ content: "\e680";
+}
+
+.uniui-download-filled:before {
+ content: "\e681";
+}
+
+.uniui-pyq:before {
+ content: "\e682";
+}
+
+.uniui-sound:before {
+ content: "\e684";
+}
+
+.uniui-trash-filled:before {
+ content: "\e685";
+}
+
+.uniui-sound-filled:before {
+ content: "\e686";
+}
+
+.uniui-trash:before {
+ content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+ content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+ content: "\e68a";
+}
+
+.uniui-weibo:before {
+ content: "\e68b";
+}
+
+.uniui-videocam:before {
+ content: "\e68c";
+}
+
+.uniui-download:before {
+ content: "\e68d";
+}
+
+.uniui-help:before {
+ content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+ content: "\e67a";
+}
+
+.uniui-plusempty:before {
+ content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+ content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+ content: "\e67d";
+}
+
+.uniui-micoff:before {
+ content: "\e67e";
+}
+
+.uniui-closeempty:before {
+ content: "\e66c";
+}
+
+.uniui-clear:before {
+ content: "\e66d";
+}
+
+.uniui-navigate:before {
+ content: "\e66e";
+}
+
+.uniui-minus:before {
+ content: "\e66f";
+}
+
+.uniui-image:before {
+ content: "\e670";
+}
+
+.uniui-mic:before {
+ content: "\e671";
+}
+
+.uniui-paperplane:before {
+ content: "\e672";
+}
+
+.uniui-close:before {
+ content: "\e673";
+}
+
+.uniui-help-filled:before {
+ content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+ content: "\e675";
+}
+
+.uniui-plus:before {
+ content: "\e676";
+}
+
+.uniui-mic-filled:before {
+ content: "\e677";
+}
+
+.uniui-image-filled:before {
+ content: "\e678";
+}
+
+.uniui-locked-filled:before {
+ content: "\e668";
+}
+
+.uniui-info:before {
+ content: "\e669";
+}
+
+.uniui-locked:before {
+ content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+ content: "\e658";
+}
+
+.uniui-chat-filled:before {
+ content: "\e659";
+}
+
+.uniui-camera:before {
+ content: "\e65a";
+}
+
+.uniui-circle:before {
+ content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+ content: "\e65c";
+}
+
+.uniui-chat:before {
+ content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+ content: "\e65e";
+}
+
+.uniui-flag:before {
+ content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+ content: "\e660";
+}
+
+.uniui-gear-filled:before {
+ content: "\e661";
+}
+
+.uniui-home:before {
+ content: "\e662";
+}
+
+.uniui-home-filled:before {
+ content: "\e663";
+}
+
+.uniui-gear:before {
+ content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+ content: "\e665";
+}
+
+.uniui-map-filled:before {
+ content: "\e666";
+}
+
+.uniui-map:before {
+ content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+ content: "\e656";
+}
+
+.uniui-refresh:before {
+ content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+ content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+ content: "\e646";
+}
+
+.uniui-cloud-download:before {
+ content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+ content: "\e648";
+}
+
+.uniui-redo:before {
+ content: "\e64a";
+}
+
+.uniui-images-filled:before {
+ content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+ content: "\e64c";
+}
+
+.uniui-more:before {
+ content: "\e64d";
+}
+
+.uniui-more-filled:before {
+ content: "\e64e";
+}
+
+.uniui-undo:before {
+ content: "\e64f";
+}
+
+.uniui-images:before {
+ content: "\e650";
+}
+
+.uniui-paperclip:before {
+ content: "\e652";
+}
+
+.uniui-settings:before {
+ content: "\e653";
+}
+
+.uniui-search:before {
+ content: "\e654";
+}
+
+.uniui-redo-filled:before {
+ content: "\e655";
+}
+
+.uniui-list:before {
+ content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+ content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+ content: "\e63c";
+}
+
+.uniui-hand-down:before {
+ content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+ content: "\e63e";
+}
+
+.uniui-hand-up:before {
+ content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+ content: "\e641";
+}
+
+.uniui-mail-open:before {
+ content: "\e643";
+}
+
+.uniui-heart:before {
+ content: "\e639";
+}
+
+.uniui-loop:before {
+ content: "\e633";
+}
+
+.uniui-pulldown:before {
+ content: "\e632";
+}
+
+.uniui-scan:before {
+ content: "\e62a";
+}
+
+.uniui-bars:before {
+ content: "\e627";
+}
+
+.uniui-checkbox:before {
+ content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+ content: "\e62c";
+}
+
+.uniui-shop:before {
+ content: "\e62f";
+}
+
+.uniui-headphones:before {
+ content: "\e630";
+}
+
+.uniui-cart:before {
+ content: "\e631";
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons.ttf"
new file mode 100644
index 000000000..14696d038
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
new file mode 100644
index 000000000..98e93aa0d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
@@ -0,0 +1,664 @@
+
+export type IconsData = {
+ id : string
+ name : string
+ font_family : string
+ css_prefix_text : string
+ description : string
+ glyphs : Array
+}
+
+export type IconsDataItem = {
+ font_class : string
+ unicode : string
+}
+
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+] as IconsDataItem[]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
new file mode 100644
index 000000000..1cd11e159
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
@@ -0,0 +1,649 @@
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/package.json"
new file mode 100644
index 000000000..397be8394
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-icons",
+ "displayName": "uni-icons 图标",
+ "version": "2.0.9",
+ "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "icon",
+ "图标"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.2.14"
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y",
+ "app-uvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "y",
+ "快手": "y",
+ "飞书": "y",
+ "京东": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/readme.md"
new file mode 100644
index 000000000..86234ba1c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-icons/readme.md"
@@ -0,0 +1,8 @@
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+用于展示 icons 图标 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/changelog.md"
new file mode 100644
index 000000000..98d9d08cc
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/changelog.md"
@@ -0,0 +1,70 @@
+## 1.8.4(2023-11-15)
+- 新增 uni-popup 支持uni-app-x 注意暂时仅支持 `maskClick` `@open` `@close`
+## 1.8.3(2023-04-17)
+- 修复 uni-popup 重复打开时的 bug
+## 1.8.2(2023-02-02)
+- uni-popup-dialog 组件新增 inputType 属性
+## 1.8.1(2022-12-01)
+- 修复 nvue 下 v-show 报错
+## 1.8.0(2022-11-29)
+- 优化 主题样式
+## 1.7.9(2022-04-02)
+- 修复 弹出层内部无法滚动的bug
+## 1.7.8(2022-03-28)
+- 修复 小程序中高度错误的bug
+## 1.7.7(2022-03-17)
+- 修复 快速调用open出现问题的Bug
+## 1.7.6(2022-02-14)
+- 修复 safeArea 属性不能设置为false的bug
+## 1.7.5(2022-01-19)
+- 修复 isMaskClick 失效的bug
+## 1.7.4(2022-01-19)
+- 新增 cancelText \ confirmText 属性 ,可自定义文本
+- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色
+- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题
+## 1.7.3(2022-01-13)
+- 修复 设置 safeArea 属性不生效的bug
+## 1.7.2(2021-11-26)
+- 优化 组件示例
+## 1.7.1(2021-11-26)
+- 修复 vuedoc 文字错误
+## 1.7.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup)
+## 1.6.2(2021-08-24)
+- 新增 支持国际化
+## 1.6.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.6.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.5.0(2021-06-23)
+- 新增 mask-click 遮罩层点击事件
+## 1.4.5(2021-06-22)
+- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.4(2021-06-18)
+- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.3(2021-06-08)
+- 修复 错误的 watch 字段
+- 修复 safeArea 属性不生效的问题
+- 修复 点击内容,再点击遮罩无法关闭的Bug
+## 1.4.2(2021-05-12)
+- 新增 组件示例地址
+## 1.4.1(2021-04-29)
+- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
+## 1.4.0 (2021-04-29)
+- 新增 type 属性的 left\right 值,支持左右弹出
+- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
+- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
+- 新增 safeArea 属性,是否适配底部安全区
+- 修复 App\h5\微信小程序底部安全区占位不对的Bug
+- 修复 App 端弹出等待的Bug
+- 优化 提升低配设备性能,优化动画卡顿问题
+- 优化 更简单的组件自定义方式
+## 1.2.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.2.8(2021-02-05)
+- 调整为uni_modules目录规范
+## 1.2.7(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持 PC 端
+- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js"
new file mode 100644
index 000000000..6ef26a262
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js"
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ this.$once('hook:beforeDestroy', () => {
+ document.removeEventListener('keyup', listener)
+ })
+ },
+ render: () => {}
+}
+// #endif
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"
new file mode 100644
index 000000000..b5eee79a7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"
new file mode 100644
index 000000000..91370a829
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"
@@ -0,0 +1,143 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue"
new file mode 100644
index 000000000..5be76247a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue"
@@ -0,0 +1,187 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/en.json"
new file mode 100644
index 000000000..7f1bd06a0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/en.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "cancel",
+ "uni-popup.ok": "ok",
+ "uni-popup.placeholder": "pleace enter",
+ "uni-popup.title": "Hint",
+ "uni-popup.shareTitle": "Share to"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json"
new file mode 100644
index 000000000..5e3003cab
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "确定",
+ "uni-popup.placeholder": "请输入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json"
new file mode 100644
index 000000000..13e39eba1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "確定",
+ "uni-popup.placeholder": "請輸入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/keypress.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/keypress.js"
new file mode 100644
index 000000000..62dda461b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/keypress.js"
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ // this.$once('hook:beforeDestroy', () => {
+ // document.removeEventListener('keyup', listener)
+ // })
+ },
+ render: () => {}
+}
+// #endif
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/popup.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/popup.js"
new file mode 100644
index 000000000..c4e5781dd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/popup.js"
@@ -0,0 +1,26 @@
+
+export default {
+ data() {
+ return {
+
+ }
+ },
+ created(){
+ this.popup = this.getParent()
+ },
+ methods:{
+ /**
+ * 获取父元素实例
+ */
+ getParent(name = 'uniPopup') {
+ let parent = this.$parent;
+ let parentName = parent.$options.name;
+ while (parentName !== name) {
+ parent = parent.$parent;
+ if (!parent) return false
+ parentName = parent.$options.name;
+ }
+ return parent;
+ },
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue"
new file mode 100644
index 000000000..5eb8d5be6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue"
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/uni-popup.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"
new file mode 100644
index 000000000..4fae089fb
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"
@@ -0,0 +1,473 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/package.json"
new file mode 100644
index 000000000..c3f3d1c9d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-popup",
+ "displayName": "uni-popup 弹出层",
+ "version": "1.8.4",
+ "description": " Popup 组件,提供常用的弹层",
+ "keywords": [
+ "uni-ui",
+ "弹出层",
+ "弹窗",
+ "popup",
+ "弹框"
+ ],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-transition"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/readme.md"
new file mode 100644
index 000000000..fdad4b3d7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-popup/readme.md"
@@ -0,0 +1,17 @@
+
+
+## Popup 弹出层
+> **组件名:uni-popup**
+> 代码块: `uPopup`
+> 关联组件:`uni-transition`
+
+
+弹出层组件,在应用中弹出一个消息提示窗口、提示框等
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/changelog.md"
new file mode 100644
index 000000000..8a98a6127
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/changelog.md"
@@ -0,0 +1,25 @@
+## 1.3.1(2022-02-25)
+- 修复 条件判断 `NaN` 错误的 bug
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate)
+## 1.2.2(2021-09-10)
+- 优化 默认值修改为 0 颗星
+## 1.2.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.2(2021-05-12)
+- 新增 组件示例地址
+## 1.1.1(2021-04-21)
+- 修复 布局变化后 uni-rate 星星计算不准确的 bug
+- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖
+## 1.1.0(2021-04-16)
+- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug
+
+## 1.0.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.8(2021-02-05)
+- 调整为uni_modules目录规范
+- 支持 pc 端
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/components/uni-rate/uni-rate.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/components/uni-rate/uni-rate.vue"
new file mode 100644
index 000000000..857f5f9c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/components/uni-rate/uni-rate.vue"
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/package.json"
new file mode 100644
index 000000000..64e8e3320
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-rate",
+ "displayName": "uni-rate 评分",
+ "version": "1.3.1",
+ "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "评分"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/readme.md"
new file mode 100644
index 000000000..eae7b5ced
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-rate/readme.md"
@@ -0,0 +1,12 @@
+
+
+## Rate 评分
+> **组件名:uni-rate**
+> 代码块: `uRate`
+> 关联组件:`uni-icons`
+
+
+评分组件,多用于购买商品后,对商品进行评价等场景
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/changelog.md"
new file mode 100644
index 000000000..b863bb0f5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/changelog.md"
@@ -0,0 +1,8 @@
+## 1.0.3(2022-01-21)
+- 优化 组件示例
+## 1.0.2(2021-11-22)
+- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题
+## 1.0.1(2021-11-22)
+- 修复 vue3中scss语法兼容问题
+## 1.0.0(2021-11-18)
+- init
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/index.scss"
new file mode 100644
index 000000000..1744a5f98
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/index.scss"
@@ -0,0 +1 @@
+@import './styles/index.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/package.json"
new file mode 100644
index 000000000..7cc0ccb73
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/package.json"
@@ -0,0 +1,82 @@
+{
+ "id": "uni-scss",
+ "displayName": "uni-scss 辅助样式",
+ "version": "1.0.3",
+ "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。",
+ "keywords": [
+ "uni-scss",
+ "uni-ui",
+ "辅助样式"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "category": [
+ "JS SDK",
+ "通用 SDK"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "n",
+ "联盟": "n"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/readme.md"
new file mode 100644
index 000000000..b7d1c25f3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/readme.md"
@@ -0,0 +1,4 @@
+`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/index.scss"
new file mode 100644
index 000000000..ffac4fecd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/index.scss"
@@ -0,0 +1,7 @@
+@import './setting/_variables.scss';
+@import './setting/_border.scss';
+@import './setting/_color.scss';
+@import './setting/_space.scss';
+@import './setting/_radius.scss';
+@import './setting/_text.scss';
+@import './setting/_styles.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_border.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_border.scss"
new file mode 100644
index 000000000..12a11c322
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_border.scss"
@@ -0,0 +1,3 @@
+.uni-border {
+ border: 1px $uni-border-1 solid;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_color.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_color.scss"
new file mode 100644
index 000000000..1ededd94d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_color.scss"
@@ -0,0 +1,66 @@
+
+// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
+// @mixin get-styles($k,$c) {
+// @if $k == size or $k == weight{
+// font-#{$k}:#{$c}
+// }@else{
+// #{$k}:#{$c}
+// }
+// }
+$uni-ui-color:(
+ // 主色
+ primary: $uni-primary,
+ primary-disable: $uni-primary-disable,
+ primary-light: $uni-primary-light,
+ // 辅助色
+ success: $uni-success,
+ success-disable: $uni-success-disable,
+ success-light: $uni-success-light,
+ warning: $uni-warning,
+ warning-disable: $uni-warning-disable,
+ warning-light: $uni-warning-light,
+ error: $uni-error,
+ error-disable: $uni-error-disable,
+ error-light: $uni-error-light,
+ info: $uni-info,
+ info-disable: $uni-info-disable,
+ info-light: $uni-info-light,
+ // 中性色
+ main-color: $uni-main-color,
+ base-color: $uni-base-color,
+ secondary-color: $uni-secondary-color,
+ extra-color: $uni-extra-color,
+ // 背景色
+ bg-color: $uni-bg-color,
+ // 边框颜色
+ border-1: $uni-border-1,
+ border-2: $uni-border-2,
+ border-3: $uni-border-3,
+ border-4: $uni-border-4,
+ // 黑色
+ black:$uni-black,
+ // 白色
+ white:$uni-white,
+ // 透明
+ transparent:$uni-transparent
+) !default;
+@each $key, $child in $uni-ui-color {
+ .uni-#{"" + $key} {
+ color: $child;
+ }
+ .uni-#{"" + $key}-bg {
+ background-color: $child;
+ }
+}
+.uni-shadow-sm {
+ box-shadow: $uni-shadow-sm;
+}
+.uni-shadow-base {
+ box-shadow: $uni-shadow-base;
+}
+.uni-shadow-lg {
+ box-shadow: $uni-shadow-lg;
+}
+.uni-mask {
+ background-color:$uni-mask;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_radius.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_radius.scss"
new file mode 100644
index 000000000..9a0428bb8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_radius.scss"
@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+ $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+ // Key exists within the $uni-radius variable
+ @if (map-has-key($uni-radius, $r) and $d){
+ @if $d == t {
+ border-top-left-radius:$radius-value;
+ border-top-right-radius:$radius-value;
+ }@else if $d == r {
+ border-top-right-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == b {
+ border-bottom-left-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == l {
+ border-top-left-radius:$radius-value;
+ border-bottom-left-radius:$radius-value;
+ }@else if $d == tl {
+ border-top-left-radius:$radius-value;
+ }@else if $d == tr {
+ border-top-right-radius:$radius-value;
+ }@else if $d == br {
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == bl {
+ border-bottom-left-radius:$radius-value;
+ }
+ }@else{
+ border-radius:$radius-value;
+ }
+}
+
+@each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $key} {
+ @include radius($key)
+ }
+ }@else{
+ .uni-radius {
+ @include radius($key)
+ }
+ }
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+ @each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $direction}-#{"" + $key} {
+ @include radius($key,$direction,false)
+ }
+ }@else{
+ .uni-radius-#{$direction} {
+ @include radius($key,$direction,false)
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_space.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_space.scss"
new file mode 100644
index 000000000..3c8952897
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_space.scss"
@@ -0,0 +1,56 @@
+
+@mixin fn($space,$direction,$size,$n) {
+ @if $n {
+ #{$space}-#{$direction}: #{$size*$uni-space-root}px
+ } @else {
+ #{$space}-#{$direction}: #{-$size*$uni-space-root}px
+ }
+}
+@mixin get-styles($direction,$i,$space,$n){
+ @if $direction == t {
+ @include fn($space, top,$i,$n);
+ }
+ @if $direction == r {
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == b {
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == l {
+ @include fn($space, left,$i,$n);
+ }
+ @if $direction == x {
+ @include fn($space, left,$i,$n);
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == y {
+ @include fn($space, top,$i,$n);
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == a {
+ @if $n {
+ #{$space}:#{$i*$uni-space-root}px;
+ } @else {
+ #{$space}:#{-$i*$uni-space-root}px;
+ }
+ }
+}
+
+@each $orientation in m,p {
+ $space: margin;
+ @if $orientation == m {
+ $space: margin;
+ } @else {
+ $space: padding;
+ }
+ @for $i from 0 through 16 {
+ @each $direction in t, r, b, l, x, y, a {
+ .uni-#{$orientation}#{$direction}-#{$i} {
+ @include get-styles($direction,$i,$space,true);
+ }
+ .uni-#{$orientation}#{$direction}-n#{$i} {
+ @include get-styles($direction,$i,$space,false);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_styles.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_styles.scss"
new file mode 100644
index 000000000..689afec66
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_styles.scss"
@@ -0,0 +1,167 @@
+/* #ifndef APP-NVUE */
+
+$-color-white:#fff;
+$-color-black:#000;
+@mixin base-style($color) {
+ color: #fff;
+ background-color: $color;
+ border-color: mix($-color-black, $color, 8%);
+ &:not([hover-class]):active {
+ background: mix($-color-black, $color, 10%);
+ border-color: mix($-color-black, $color, 20%);
+ color: $-color-white;
+ outline: none;
+ }
+}
+@mixin is-color($color) {
+ @include base-style($color);
+ &[loading] {
+ @include base-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &[loading],
+ &:not([hover-class]):active {
+ color: $-color-white;
+ border-color: mix(darken($color,10%), $-color-white);
+ background-color: mix($color, $-color-white);
+ }
+ }
+
+}
+@mixin base-plain-style($color) {
+ color:$color;
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 70%);
+ &:not([hover-class]):active {
+ background: mix($-color-white, $color, 80%);
+ color: $color;
+ outline: none;
+ border-color: mix($-color-white, $color, 50%);
+ }
+}
+@mixin is-plain($color){
+ &[plain] {
+ @include base-plain-style($color);
+ &[loading] {
+ @include base-plain-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &:active {
+ color: mix($-color-white, $color, 40%);
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 80%);
+ }
+ }
+ }
+}
+
+
+.uni-btn {
+ margin: 5px;
+ color: #393939;
+ border:1px solid #ccc;
+ font-size: 16px;
+ font-weight: 200;
+ background-color: #F9F9F9;
+ // TODO 暂时处理边框隐藏一边的问题
+ overflow: visible;
+ &::after{
+ border: none;
+ }
+
+ &:not([type]),&[type=default] {
+ color: #999;
+ &[loading] {
+ background: none;
+ &::before {
+ margin-right:5px;
+ }
+ }
+
+
+
+ &[disabled]{
+ color: mix($-color-white, #999, 60%);
+ &,
+ &[loading],
+ &:active {
+ color: mix($-color-white, #999, 60%);
+ background-color: mix($-color-white,$-color-black , 98%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+
+ &[plain] {
+ color: #999;
+ background: none;
+ border-color: $uni-border-1;
+ &:not([hover-class]):active {
+ background: none;
+ color: mix($-color-white, $-color-black, 80%);
+ border-color: mix($-color-white, $-color-black, 90%);
+ outline: none;
+ }
+ &[disabled]{
+ &,
+ &[loading],
+ &:active {
+ background: none;
+ color: mix($-color-white, #999, 60%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+ }
+ }
+
+ &:not([hover-class]):active {
+ color: mix($-color-white, $-color-black, 50%);
+ }
+
+ &[size=mini] {
+ font-size: 16px;
+ font-weight: 200;
+ border-radius: 8px;
+ }
+
+
+
+ &.uni-btn-small {
+ font-size: 14px;
+ }
+ &.uni-btn-mini {
+ font-size: 12px;
+ }
+
+ &.uni-btn-radius {
+ border-radius: 999px;
+ }
+ &[type=primary] {
+ @include is-color($uni-primary);
+ @include is-plain($uni-primary)
+ }
+ &[type=success] {
+ @include is-color($uni-success);
+ @include is-plain($uni-success)
+ }
+ &[type=error] {
+ @include is-color($uni-error);
+ @include is-plain($uni-error)
+ }
+ &[type=warning] {
+ @include is-color($uni-warning);
+ @include is-plain($uni-warning)
+ }
+ &[type=info] {
+ @include is-color($uni-info);
+ @include is-plain($uni-info)
+ }
+}
+/* #endif */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_text.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_text.scss"
new file mode 100644
index 000000000..a34d08f3f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_text.scss"
@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+ @if $k == size or $k == weight{
+ font-#{$k}:#{$c}
+ }@else{
+ #{$k}:#{$c}
+ }
+}
+
+@each $key, $child in $uni-headings {
+ /* #ifndef APP-NVUE */
+ .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ .container .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_variables.scss"
new file mode 100644
index 000000000..557d3d7c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/setting/_variables.scss"
@@ -0,0 +1,146 @@
+// @use "sass:math";
+@import '../tools/functions.scss';
+// 间距基础倍数
+$uni-space-root: 2 !default;
+// 边框半径默认值
+$uni-radius-root:5px !default;
+$uni-radius: () !default;
+// 边框半径断点
+$uni-radius: map-deep-merge(
+ (
+ 0: 0,
+ // TODO 当前版本暂时不支持 sm 属性
+ // 'sm': math.div($uni-radius-root, 2),
+ null: $uni-radius-root,
+ 'lg': $uni-radius-root * 2,
+ 'xl': $uni-radius-root * 6,
+ 'pill': 9999px,
+ 'circle': 50%
+ ),
+ $uni-radius
+);
+// 字体家族
+$body-font-family: 'Roboto', sans-serif !default;
+// 文本
+$heading-font-family: $body-font-family !default;
+$uni-headings: () !default;
+$letterSpacing: -0.01562em;
+$uni-headings: map-deep-merge(
+ (
+ 'h1': (
+ size: 32px,
+ weight: 300,
+ line-height: 50px,
+ // letter-spacing:-0.01562em
+ ),
+ 'h2': (
+ size: 28px,
+ weight: 300,
+ line-height: 40px,
+ // letter-spacing: -0.00833em
+ ),
+ 'h3': (
+ size: 24px,
+ weight: 400,
+ line-height: 32px,
+ // letter-spacing: normal
+ ),
+ 'h4': (
+ size: 20px,
+ weight: 400,
+ line-height: 30px,
+ // letter-spacing: 0.00735em
+ ),
+ 'h5': (
+ size: 16px,
+ weight: 400,
+ line-height: 24px,
+ // letter-spacing: normal
+ ),
+ 'h6': (
+ size: 14px,
+ weight: 500,
+ line-height: 18px,
+ // letter-spacing: 0.0125em
+ ),
+ 'subtitle': (
+ size: 12px,
+ weight: 400,
+ line-height: 20px,
+ // letter-spacing: 0.00937em
+ ),
+ 'body': (
+ font-size: 14px,
+ font-weight: 400,
+ line-height: 22px,
+ // letter-spacing: 0.03125em
+ ),
+ 'caption': (
+ 'size': 12px,
+ 'weight': 400,
+ 'line-height': 20px,
+ // 'letter-spacing': 0.03333em,
+ // 'text-transform': false
+ )
+ ),
+ $uni-headings
+);
+
+
+
+// 主色
+$uni-primary: #2979ff !default;
+$uni-primary-disable:lighten($uni-primary,20%) !default;
+$uni-primary-light: lighten($uni-primary,25%) !default;
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37 !default;
+$uni-success-disable:lighten($uni-success,20%) !default;
+$uni-success-light: lighten($uni-success,25%) !default;
+
+$uni-warning: #f3a73f !default;
+$uni-warning-disable:lighten($uni-warning,20%) !default;
+$uni-warning-light: lighten($uni-warning,25%) !default;
+
+$uni-error: #e43d33 !default;
+$uni-error-disable:lighten($uni-error,20%) !default;
+$uni-error-light: lighten($uni-error,25%) !default;
+
+$uni-info: #8f939c !default;
+$uni-info-disable:lighten($uni-info,20%) !default;
+$uni-info-light: lighten($uni-info,25%) !default;
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a !default; // 主要文字
+$uni-base-color: #6a6a6a !default; // 常规文字
+$uni-secondary-color: #909399 !default; // 次要文字
+$uni-extra-color: #c7c7c7 !default; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0 !default;
+$uni-border-2: #EDEDED !default;
+$uni-border-3: #DCDCDC !default;
+$uni-border-4: #B9B9B9 !default;
+
+// 常规色
+$uni-black: #000000 !default;
+$uni-white: #ffffff !default;
+$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
+
+// 背景色
+$uni-bg-color: #f7f7f7 !default;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px !default;
+$uni-spacing-base: 15px !default;
+$uni-spacing-lg: 30px !default;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/tools/functions.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/tools/functions.scss"
new file mode 100644
index 000000000..ac6f63e53
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/styles/tools/functions.scss"
@@ -0,0 +1,19 @@
+// 合并 map
+@function map-deep-merge($parent-map, $child-map){
+ $result: $parent-map;
+ @each $key, $child in $child-map {
+ $parent-has-key: map-has-key($result, $key);
+ $parent-value: map-get($result, $key);
+ $parent-type: type-of($parent-value);
+ $child-type: type-of($child);
+ $parent-is-map: $parent-type == map;
+ $child-is-map: $child-type == map;
+
+ @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
+ $result: map-merge($result, ( $key: $child ));
+ }@else {
+ $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
+ }
+ }
+ @return $result;
+};
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/theme.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/theme.scss"
new file mode 100644
index 000000000..80ee62f7d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/theme.scss"
@@ -0,0 +1,31 @@
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+// 主色
+$uni-primary: #2979ff;
+// 辅助色
+$uni-success: #4cd964;
+// 警告色
+$uni-warning: #f0ad4e;
+// 错误色
+$uni-error: #dd524d;
+// 描述色
+$uni-info: #909399;
+// 中性色
+$uni-main-color: #303133;
+$uni-base-color: #606266;
+$uni-secondary-color: #909399;
+$uni-extra-color: #C0C4CC;
+// 背景色
+$uni-bg-color: #f5f5f5;
+// 边框颜色
+$uni-border-1: #DCDFE6;
+$uni-border-2: #E4E7ED;
+$uni-border-3: #EBEEF5;
+$uni-border-4: #F2F6FC;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/variables.scss"
new file mode 100644
index 000000000..1c062d42b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-scss/variables.scss"
@@ -0,0 +1,62 @@
+@import './styles/setting/_variables.scss';
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+
+// 主色
+$uni-primary: #2979ff;
+$uni-primary-disable:mix(#fff,$uni-primary,50%);
+$uni-primary-light: mix(#fff,$uni-primary,80%);
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37;
+$uni-success-disable:mix(#fff,$uni-success,50%);
+$uni-success-light: mix(#fff,$uni-success,80%);
+
+$uni-warning: #f3a73f;
+$uni-warning-disable:mix(#fff,$uni-warning,50%);
+$uni-warning-light: mix(#fff,$uni-warning,80%);
+
+$uni-error: #e43d33;
+$uni-error-disable:mix(#fff,$uni-error,50%);
+$uni-error-light: mix(#fff,$uni-error,80%);
+
+$uni-info: #8f939c;
+$uni-info-disable:mix(#fff,$uni-info,50%);
+$uni-info-light: mix(#fff,$uni-info,80%);
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a; // 主要文字
+$uni-base-color: #6a6a6a; // 常规文字
+$uni-secondary-color: #909399; // 次要文字
+$uni-extra-color: #c7c7c7; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0;
+$uni-border-2: #EDEDED;
+$uni-border-3: #DCDCDC;
+$uni-border-4: #B9B9B9;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
+
+// 背景色
+$uni-bg-color: #f7f7f7;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px;
+$uni-spacing-base: 15px;
+$uni-spacing-lg: 30px;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/changelog.md"
new file mode 100644
index 000000000..c0c5839b1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/changelog.md"
@@ -0,0 +1,21 @@
+## 2.1.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag)
+## 2.0.0(2021-11-09)
+- 新增 提供组件设计资源,组件样式调整
+- 移除 插槽
+- 移除 type 属性的 royal 选项
+## 1.1.1(2021-08-11)
+- type 不是 default 时,size 为 small 字体大小显示不正确
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.7(2021-06-18)
+- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug
+## 1.0.6(2021-06-04)
+- 修复 未定义 sass 变量 "$uni-color-royal" 的bug
+## 1.0.5(2021-05-10)
+- 修复 royal 类型无效的bug
+- 修复 uni-tag 宽度不自适应的bug
+- 新增 uni-tag 支持属性 custom-style 自定义样式
+## 1.0.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/components/uni-tag/uni-tag.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"
new file mode 100644
index 000000000..418c95504
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"
@@ -0,0 +1,252 @@
+
+ {{text}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/package.json"
new file mode 100644
index 000000000..187808863
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-tag",
+ "displayName": "uni-tag 标签",
+ "version": "2.1.0",
+ "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "",
+ "tag",
+ "标签"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/readme.md"
new file mode 100644
index 000000000..6e78ff5e4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-tag/readme.md"
@@ -0,0 +1,13 @@
+
+
+## Tag 标签
+> **组件名:uni-tag**
+> 代码块: `uTag`
+
+
+用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/changelog.md"
new file mode 100644
index 000000000..70c1cd4bf
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/changelog.md"
@@ -0,0 +1,22 @@
+## 1.3.2(2023-05-04)
+- 修复 NVUE 平台报错的问题
+## 1.3.1(2021-11-23)
+- 修复 init 方法初始化问题
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition)
+## 1.2.1(2021-09-27)
+- 修复 init 方法不生效的 Bug
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.1(2021-05-12)
+- 新增 示例地址
+- 修复 示例项目缺少组件的 Bug
+## 1.1.0(2021-04-22)
+- 新增 通过方法自定义动画
+- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式
+- 优化 动画触发逻辑,使动画更流畅
+- 优化 支持单独的动画类型
+- 优化 文档示例
+## 1.0.2(2021-02-05)
+- 调整为 uni_modules 目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/components/uni-transition/createAnimation.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/components/uni-transition/createAnimation.js"
new file mode 100644
index 000000000..8f89b185c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/components/uni-transition/createAnimation.js"
@@ -0,0 +1,131 @@
+// const defaultOption = {
+// duration: 300,
+// timingFunction: 'linear',
+// delay: 0,
+// transformOrigin: '50% 50% 0'
+// }
+// #ifdef APP-NVUE
+const nvueAnimation = uni.requireNativePlugin('animation')
+// #endif
+class MPAnimation {
+ constructor(options, _this) {
+ this.options = options
+ // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误
+ this.animation = uni.createAnimation({
+ ...options
+ })
+ this.currentStepAnimates = {}
+ this.next = 0
+ this.$ = _this
+
+ }
+
+ _nvuePushAnimates(type, args) {
+ let aniObj = this.currentStepAnimates[this.next]
+ let styles = {}
+ if (!aniObj) {
+ styles = {
+ styles: {},
+ config: {}
+ }
+ } else {
+ styles = aniObj
+ }
+ if (animateTypes1.includes(type)) {
+ if (!styles.styles.transform) {
+ styles.styles.transform = ''
+ }
+ let unit = ''
+ if(type === 'rotate'){
+ unit = 'deg'
+ }
+ styles.styles.transform += `${type}(${args+unit}) `
+ } else {
+ styles.styles[type] = `${args}`
+ }
+ this.currentStepAnimates[this.next] = styles
+ }
+ _animateRun(styles = {}, config = {}) {
+ let ref = this.$.$refs['ani'].ref
+ if (!ref) return
+ return new Promise((resolve, reject) => {
+ nvueAnimation.transition(ref, {
+ styles,
+ ...config
+ }, res => {
+ resolve()
+ })
+ })
+ }
+
+ _nvueNextAnimate(animates, step = 0, fn) {
+ let obj = animates[step]
+ if (obj) {
+ let {
+ styles,
+ config
+ } = obj
+ this._animateRun(styles, config).then(() => {
+ step += 1
+ this._nvueNextAnimate(animates, step, fn)
+ })
+ } else {
+ this.currentStepAnimates = {}
+ typeof fn === 'function' && fn()
+ this.isEnd = true
+ }
+ }
+
+ step(config = {}) {
+ // #ifndef APP-NVUE
+ this.animation.step(config)
+ // #endif
+ // #ifdef APP-NVUE
+ this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config)
+ this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin
+ this.next++
+ // #endif
+ return this
+ }
+
+ run(fn) {
+ // #ifndef APP-NVUE
+ this.$.animationData = this.animation.export()
+ this.$.timer = setTimeout(() => {
+ typeof fn === 'function' && fn()
+ }, this.$.durationTime)
+ // #endif
+ // #ifdef APP-NVUE
+ this.isEnd = false
+ let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref
+ if(!ref) return
+ this._nvueNextAnimate(this.currentStepAnimates, 0, fn)
+ this.next = 0
+ // #endif
+ }
+}
+
+
+const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
+ 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
+ 'translateZ'
+]
+const animateTypes2 = ['opacity', 'backgroundColor']
+const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom']
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => {
+ MPAnimation.prototype[type] = function(...args) {
+ // #ifndef APP-NVUE
+ this.animation[type](...args)
+ // #endif
+ // #ifdef APP-NVUE
+ this._nvuePushAnimates(type, args)
+ // #endif
+ return this
+ }
+})
+
+export function createAnimation(option, _this) {
+ if(!_this) return
+ clearTimeout(_this.timer)
+ return new MPAnimation(option, _this)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/components/uni-transition/uni-transition.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"
new file mode 100644
index 000000000..bfbba933c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/package.json"
new file mode 100644
index 000000000..ea995a2a1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/package.json"
@@ -0,0 +1,84 @@
+{
+ "id": "uni-transition",
+ "displayName": "uni-transition 过渡动画",
+ "version": "1.3.2",
+ "description": "元素的简单过渡动画",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "动画",
+ "过渡",
+ "过渡动画"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/readme.md"
new file mode 100644
index 000000000..2f8a77e10
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/uni_modules/uni-transition/readme.md"
@@ -0,0 +1,11 @@
+
+
+## Transition 过渡动画
+> **组件名:uni-transition**
+> 代码块: `uTransition`
+
+
+元素过渡动画
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/utils/system.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/utils/system.js"
new file mode 100644
index 000000000..3a24eccca
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt - \345\270\203\345\261\200\347\257\207/utils/system.js"
@@ -0,0 +1,25 @@
+const SYSTEM_INFO = uni.getSystemInfoSync();
+
+export const getStatusBarHeight = ()=> SYSTEM_INFO.statusBarHeight || 15;
+
+export const getTitleBarHeight = ()=>{
+ if(uni.getMenuButtonBoundingClientRect){
+ let {top,height} = uni.getMenuButtonBoundingClientRect();
+ return height + (top - getStatusBarHeight())*2
+ }else{
+ return 40;
+ }
+}
+
+export const getNavBarHeight = ()=> getStatusBarHeight()+getTitleBarHeight();
+
+export const getLeftIconLeft = ()=> {
+ // #ifdef MP-TOUTIAO
+ let {leftIcon:{left,width}} = tt.getCustomButtonBoundingClientRect();
+ return left+ parseInt(width);
+ // #endif
+
+ // #ifndef MP-TOUTIAO
+ return 0
+ // #endif
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/.hbuilderx/launch.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/.hbuilderx/launch.json"
new file mode 100644
index 000000000..19913378a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/.hbuilderx/launch.json"
@@ -0,0 +1,30 @@
+{
+ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version" : "0.0",
+ "configurations" : [
+ {
+ "app-plus" :
+ {
+ "launchtype" : "local"
+ },
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-toutiao" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ },
+ {
+ "playground" : "custom",
+ "type" : "uni-app:app-android"
+ }
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/App.vue"
new file mode 100644
index 000000000..806765aa3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/androidPrivacy.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/androidPrivacy.json"
new file mode 100644
index 000000000..a78485c82
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/androidPrivacy.json"
@@ -0,0 +1,3 @@
+{
+ "prompt" : "none"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/api/apis.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/api/apis.js"
new file mode 100644
index 000000000..24eba7d74
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/api/apis.js"
@@ -0,0 +1,93 @@
+import {request} from "@/utils/request.js"
+
+export function apiGetBanner(){
+ return request({
+ url:"/homeBanner"
+ })
+}
+
+export function apiGetDayRandom(){
+ return request({url:"/randomWall"})
+}
+
+export function apiGetNotice(data={}){
+ return request({
+ url:"/wallNewsList",
+ data
+ })
+}
+
+
+export function apiGetClassify(data={}){
+ return request({
+ url:"/classify",
+ data
+ })
+}
+
+
+
+export function apiGetClassList(data={}){
+ return request({
+ url:"/wallList",
+ data
+ })
+}
+
+
+export function apiGetSetupScore(data={}){
+ return request({
+ url:"/setupScore",
+ data
+ })
+}
+
+
+export function apiWriteDownload(data={}){
+ return request({
+ url:"/downloadWall",
+ data
+ })
+}
+
+
+
+export function apiDetailWall(data={}){
+ return request({
+ url:"/detailWall",
+ data
+ })
+}
+
+
+export function apiUserInfo(data={}){
+ return request({
+ url:"/userInfo",
+ data
+ })
+}
+
+
+export function apiGetHistoryList(data={}){
+ return request({
+ url:"/userWallList",
+ data
+ })
+}
+
+
+
+export function apiNoticeDetail(data={}){
+ return request({
+ url:"/wallNewsDetail",
+ data
+ })
+}
+
+
+export function apiSearchData(data={}){
+ return request({
+ url:"/searchWall",
+ data
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner1.jpg"
new file mode 100644
index 000000000..5f6470eee
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner2.jpg"
new file mode 100644
index 000000000..218ba07b8
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner3.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner3.jpg"
new file mode 100644
index 000000000..c444a9732
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/banner3.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/classify1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/classify1.jpg"
new file mode 100644
index 000000000..040047c8a
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/classify1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/classify2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/classify2.jpg"
new file mode 100644
index 000000000..7de667b60
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/classify2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/more.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/more.jpg"
new file mode 100644
index 000000000..8cc2ff330
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/more.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview1.jpg"
new file mode 100644
index 000000000..0413ad885
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview2.jpg"
new file mode 100644
index 000000000..335d86ad9
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview_small.webp" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview_small.webp"
new file mode 100644
index 000000000..716f2cbe6
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/images/preview_small.webp" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/style/base-style.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/style/base-style.scss"
new file mode 100644
index 000000000..c4d5643c6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/style/base-style.scss"
@@ -0,0 +1,9 @@
+$brand-theme-color:#28B389; //品牌主体红色
+
+$border-color:#e0e0e0; //边框颜色
+$border-color-light:#efefef; //边框亮色
+
+$text-font-color-1:#000; //文字主色
+$text-font-color-2:#676767; //副标题颜色
+$text-font-color-3:#a7a7a7; //浅色
+$text-font-color-4:#e4e4e4; //更浅
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/style/common-style.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/style/common-style.scss"
new file mode 100644
index 000000000..e182489e8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/common/style/common-style.scss"
@@ -0,0 +1,19 @@
+view,swiper,swiper-item{
+ box-sizing: border-box;
+}
+
+.pageBg{
+ background:
+ linear-gradient(to bottom,transparent,#fff 400rpx),
+ linear-gradient(to right,#beecd8 20%,#F4E2D8);
+ min-height: 80vh;
+}
+
+.loadingLayout{
+ padding:30rpx 0;
+}
+
+.safe-area-inset-bottom{
+ height: env(safe-area-inset-bottom);
+}
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/common-title/common-title.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/common-title/common-title.vue"
new file mode 100644
index 000000000..f78a4c62b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/common-title/common-title.vue"
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/custom-nav-bar/custom-nav-bar.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/custom-nav-bar/custom-nav-bar.vue"
new file mode 100644
index 000000000..e7adc38b9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/custom-nav-bar/custom-nav-bar.vue"
@@ -0,0 +1,81 @@
+
+
+
+
+
+ {{title}}
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/theme-item/theme-item.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/theme-item/theme-item.vue"
new file mode 100644
index 000000000..a3ca102b2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/components/theme-item/theme-item.vue"
@@ -0,0 +1,96 @@
+
+
+
+
+
+ {{item.name}}
+ {{compareTimestamp(item.updateTime)}}前更新
+
+
+
+
+
+
+ 更多
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/manifest.json"
new file mode 100644
index 000000000..efe85cc08
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/manifest.json"
@@ -0,0 +1,124 @@
+{
+ "name" : "咸虾米壁纸",
+ "appid" : "__UNI__B8FCDB7",
+ "description" : "",
+ "versionName" : "1.0.1",
+ "versionCode" : 101,
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "abiFilters" : [ "arm64-v8a", "x86" ]
+ },
+ /* ios打包配置 */
+ "ios" : {
+ "dSYMs" : false
+ },
+ /* SDK配置 */
+ "sdkConfigs" : {
+ "ad" : {}
+ },
+ "icons" : {
+ "android" : {
+ "hdpi" : "unpackage/res/icons/72x72.png",
+ "xhdpi" : "unpackage/res/icons/96x96.png",
+ "xxhdpi" : "unpackage/res/icons/144x144.png",
+ "xxxhdpi" : "unpackage/res/icons/192x192.png"
+ },
+ "ios" : {
+ "appstore" : "unpackage/res/icons/1024x1024.png",
+ "ipad" : {
+ "app" : "unpackage/res/icons/76x76.png",
+ "app@2x" : "unpackage/res/icons/152x152.png",
+ "notification" : "unpackage/res/icons/20x20.png",
+ "notification@2x" : "unpackage/res/icons/40x40.png",
+ "proapp@2x" : "unpackage/res/icons/167x167.png",
+ "settings" : "unpackage/res/icons/29x29.png",
+ "settings@2x" : "unpackage/res/icons/58x58.png",
+ "spotlight" : "unpackage/res/icons/40x40.png",
+ "spotlight@2x" : "unpackage/res/icons/80x80.png"
+ },
+ "iphone" : {
+ "app@2x" : "unpackage/res/icons/120x120.png",
+ "app@3x" : "unpackage/res/icons/180x180.png",
+ "notification@2x" : "unpackage/res/icons/40x40.png",
+ "notification@3x" : "unpackage/res/icons/60x60.png",
+ "settings@2x" : "unpackage/res/icons/58x58.png",
+ "settings@3x" : "unpackage/res/icons/87x87.png",
+ "spotlight@2x" : "unpackage/res/icons/80x80.png",
+ "spotlight@3x" : "unpackage/res/icons/120x120.png"
+ }
+ }
+ },
+ "splashscreen" : {
+ "useOriginalMsgbox" : false
+ }
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wx511abe7a13783591",
+ "setting" : {
+ "urlCheck" : false,
+ "minified" : true
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true,
+ "appid" : "tt3c564aeba36527e001",
+ "setting" : {
+ "minified" : true
+ }
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3",
+ "h5" : {
+ "title" : "咸虾米壁纸",
+ "router" : {
+ "base" : "/xxmwall/",
+ "mode" : "hash"
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages.json"
new file mode 100644
index 000000000..66fe6ee51
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages.json"
@@ -0,0 +1,99 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/classify/classify",
+ "style" :
+ {
+ "navigationBarTitleText" : "分类",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/user/user",
+ "style" :
+ {
+ "navigationBarTitleText" : "我的",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/classlist/classlist",
+ "style" :
+ {
+ "navigationBarTitleText" : "分类列表",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/preview/preview",
+ "style" :
+ {
+ "navigationBarTitleText" : "预览",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/notice/notice",
+ "style" :
+ {
+ "navigationBarTitleText" : "公告",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/notice/detail",
+ "style" :
+ {
+ "navigationBarTitleText" : "公告详情",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/search/search",
+ "style" :
+ {
+ "navigationBarTitleText" : "搜索",
+ "enablePullDownRefresh" : false
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "咸虾米壁纸",
+ "navigationBarBackgroundColor": "#fff",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#9799a5",
+ "selectedColor": "#28B389",
+ "list": [
+ {
+ "text": "推荐",
+ "pagePath": "pages/index/index",
+ "iconPath": "static/images/tabBar/home.png",
+ "selectedIconPath": "static/images/tabBar/home-h.png"
+ },{
+ "text": "分类",
+ "pagePath": "pages/classify/classify",
+ "iconPath": "static/images/tabBar/classify.png",
+ "selectedIconPath": "static/images/tabBar/classify-h.png"
+ },{
+ "text": "我的",
+ "pagePath": "pages/user/user",
+ "iconPath": "static/images/tabBar/user.png",
+ "selectedIconPath": "static/images/tabBar/user-h.png"
+ }
+ ]
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/classify/classify.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/classify/classify.vue"
new file mode 100644
index 000000000..e9cba8f79
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/classify/classify.vue"
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/classlist/classlist.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/classlist/classlist.vue"
new file mode 100644
index 000000000..7148901af
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/classlist/classlist.vue"
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/index/index.vue"
new file mode 100644
index 000000000..a2653cc07
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/index/index.vue"
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 公告
+
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+
+
+
+ 每日推荐
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 专题精选
+
+ More+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/notice/detail.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/notice/detail.vue"
new file mode 100644
index 000000000..e4c92edc3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/notice/detail.vue"
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ {{detail.title}}
+
+
+
+ {{detail.author}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 阅读 {{detail.view_count}}
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/notice/notice.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/notice/notice.vue"
new file mode 100644
index 000000000..852490f13
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/notice/notice.vue"
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/preview/preview.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/preview/preview.vue"
new file mode 100644
index 000000000..963c5c968
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/preview/preview.vue"
@@ -0,0 +1,604 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{currentIndex+1}} / {{classList.length}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/search/search.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/search/search.vue"
new file mode 100644
index 000000000..014008d1d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/search/search.vue"
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+ 最近搜索
+
+
+
+
+
+ {{tab}}
+
+
+
+
+
+ 热门搜索
+
+
+ {{tab}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/user/user.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/user/user.vue"
new file mode 100644
index 000000000..a6f4b0523
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/pages/user/user.vue"
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+ {{userinfo.IP}}
+ 来自于:
+ {{ userinfo.address.city || userinfo.address.province || userinfo.address.country}}
+
+
+
+
+
+
+
+
+
+
+ 我的下载
+
+
+ {{userinfo.downloadSize}}
+
+
+
+
+
+
+
+ 我的评分
+
+
+ {{userinfo.scoreSize}}
+
+
+
+
+
+
+
+ 联系客服
+
+
+
+
+
+
+ 联系客服
+
+
+ 拨打电话
+
+
+
+
+
+
+
+
+
+
+
+
+ 订阅更新
+
+
+
+
+
+
+
+
+
+
+ 常见问题
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/logo2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/logo2.jpg"
new file mode 100644
index 000000000..2746e8674
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/logo2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/classify-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/classify-h.png"
new file mode 100644
index 000000000..2858107ef
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/classify-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/classify.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/classify.png"
new file mode 100644
index 000000000..d32bc6c75
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/classify.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/home-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/home-h.png"
new file mode 100644
index 000000000..e86e1dd9c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/home-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/home.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/home.png"
new file mode 100644
index 000000000..591aa1a19
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/home.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/user-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/user-h.png"
new file mode 100644
index 000000000..fa8b717cf
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/user-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/user.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/user.png"
new file mode 100644
index 000000000..6d53fc02c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/tabBar/user.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/xxmLogo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/xxmLogo.png"
new file mode 100644
index 000000000..d822b165e
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/static/images/xxmLogo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni.scss"
new file mode 100644
index 000000000..3f7a4ba0f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni.scss"
@@ -0,0 +1,62 @@
+@import "@/common/style/base-style.scss";
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/README.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/README.md"
new file mode 100644
index 000000000..dcfcc2c6a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/README.md"
@@ -0,0 +1,193 @@
+## 为减小组件包的大小,默认组件包中不包含编辑、latex 公式等扩展功能,需要使用扩展功能的请参考下方的 插件扩展 栏的说明
+
+## 功能介绍
+- 全端支持(含 `v3、NVUE`)
+- 支持丰富的标签(包括 `table`、`video`、`svg` 等)
+- 支持丰富的事件效果(自动预览图片、链接处理等)
+- 支持设置占位图(加载中、出错时、预览时)
+- 支持锚点跳转、长按复制等丰富功能
+- 支持大部分 *html* 实体
+- 丰富的插件(关键词搜索、内容编辑、`latex` 公式等)
+- 效率高、容错性强且轻量化
+
+查看 [功能介绍](https://jin-yufeng.gitee.io/mp-html/#/overview/feature) 了解更多
+
+## 使用方法
+- `uni_modules` 方式
+ 1. 点击右上角的 `使用 HBuilder X 导入插件` 按钮直接导入项目或点击 `下载插件 ZIP` 按钮下载插件包并解压到项目的 `uni_modules/mp-html` 目录下
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+
+ ```
+ ```javascript
+ export default {
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+ 3. 需要更新版本时在 `HBuilder X` 中右键 `uni_modules/mp-html` 目录选择 `从插件市场更新` 即可
+
+- 源码方式
+ 1. 从 [github](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 或 [gitee](https://gitee.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 下载源码
+ 插件市场的 **非 uni_modules 版本** 无法更新,不建议从插件市场获取
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+ ```
+ ```javascript
+ import mpHtml from '@/components/mp-html/mp-html'
+ export default {
+ // HBuilderX 2.5.5+ 可以通过 easycom 自动引入
+ components: {
+ mpHtml
+ },
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+
+- npm 方式
+ 1. 在项目根目录下执行
+ ```bash
+ npm install mp-html
+ ```
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+ ```
+ ```javascript
+ import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
+ export default {
+ // 不可省略
+ components: {
+ mpHtml
+ },
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+ 3. 需要更新版本时执行以下命令即可
+ ```bash
+ npm update mp-html
+ ```
+
+ 使用 *cli* 方式运行的项目,通过 *npm* 方式引入时,需要在 *vue.config.js* 中配置 *transpileDependencies*,详情可见 [#330](https://github.com/jin-yufeng/mp-html/issues/330#issuecomment-913617687)
+ 如果在 **nvue** 中使用还要将 `dist/uni-app/static` 目录下的内容拷贝到项目的 `static` 目录下,否则无法运行
+
+查看 [快速开始](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart) 了解更多
+
+## 组件属性
+
+| 属性 | 类型 | 默认值 | 说明 |
+|:---:|:---:|:---:|---|
+| container-style | String | | 容器的样式([2.1.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v210)) |
+| content | String | | 用于渲染的 html 字符串 |
+| copy-link | Boolean | true | 是否允许外部链接被点击时自动复制 |
+| domain | String | | 主域名(用于链接拼接) |
+| error-img | String | | 图片出错时的占位图链接 |
+| lazy-load | Boolean | false | 是否开启图片懒加载 |
+| loading-img | String | | 图片加载过程中的占位图链接 |
+| pause-video | Boolean | true | 是否在播放一个视频时自动暂停其他视频 |
+| preview-img | Boolean | true | 是否允许图片被点击时自动预览 |
+| scroll-table | Boolean | false | 是否给每个表格添加一个滚动层使其能单独横向滚动 |
+| selectable | Boolean | false | 是否开启文本长按复制 |
+| set-title | Boolean | true | 是否将 title 标签的内容设置到页面标题 |
+| show-img-menu | Boolean | true | 是否允许图片被长按时显示菜单 |
+| tag-style | Object | | 设置标签的默认样式 |
+| use-anchor | Boolean | false | 是否使用锚点链接 |
+
+查看 [属性](https://jin-yufeng.gitee.io/mp-html/#/basic/prop) 了解更多
+
+## 组件事件
+
+| 名称 | 触发时机 |
+|:---:|---|
+| load | dom 树加载完毕时 |
+| ready | 图片加载完毕时 |
+| error | 发生渲染错误时 |
+| imgtap | 图片被点击时 |
+| linktap | 链接被点击时 |
+| play | 音视频播放时 |
+
+查看 [事件](https://jin-yufeng.gitee.io/mp-html/#/basic/event) 了解更多
+
+## api
+组件实例上提供了一些 `api` 方法可供调用
+
+| 名称 | 作用 |
+|:---:|---|
+| in | 将锚点跳转的范围限定在一个 scroll-view 内 |
+| navigateTo | 锚点跳转 |
+| getText | 获取文本内容 |
+| getRect | 获取富文本内容的位置和大小 |
+| setContent | 设置富文本内容 |
+| imgList | 获取所有图片的数组 |
+| pauseMedia | 暂停播放音视频([2.2.2+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v222)) |
+| setPlaybackRate | 设置音视频播放速率([2.4.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v240)) |
+
+查看 [api](https://jin-yufeng.gitee.io/mp-html/#/advanced/api) 了解更多
+
+## 插件扩展
+除基本功能外,本组件还提供了丰富的扩展,可按照需要选用
+
+| 名称 | 作用 |
+|:---:|---|
+| audio | 音乐播放器 |
+| editable | 富文本 **编辑**([示例项目](https://mp-html.oss-cn-hangzhou.aliyuncs.com/editable.zip)) |
+| emoji | 解析 emoji |
+| highlight | 代码块高亮显示 |
+| markdown | 渲染 markdown |
+| search | 关键词搜索 |
+| style | 匹配 style 标签中的样式 |
+| txv-video | 使用腾讯视频 |
+| img-cache | 图片缓存 by [@PentaTea](https://github.com/PentaTea) |
+| latex | 渲染 latex 公式 by [@Zeng-J](https://github.com/Zeng-J) |
+
+从插件市场导入的包中 **不含有** 扩展插件,使用插件需通过微信小程序 `富文本插件` 获取或参考以下方法进行打包:
+1. 获取完整组件包
+ ```bash
+ npm install mp-html
+ ```
+2. 编辑 `tools/config.js` 中的 `plugins` 项,选择需要的插件
+3. 生成新的组件包
+ 在 `node_modules/mp-html` 目录下执行
+ ```bash
+ npm install
+ npm run build:uni-app
+ ```
+4. 拷贝 `dist/uni-app` 中的内容到项目根目录
+
+查看 [插件](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin) 了解更多
+
+## 关于 nvue
+`nvue` 使用原生渲染,不支持部分 `css` 样式,为实现和 `html` 相同的效果,组件内部通过 `web-view` 进行渲染,性能上差于原生,根据 `weex` 官方建议,`web` 标签仅应用在非常规的降级场景。因此,如果通过原生的方式(如 `richtext`)能够满足需要,则不建议使用本组件,如果有较多的富文本内容,则可以直接使用 `vue` 页面
+由于渲染方式与其他端不同,有以下限制:
+1. 不支持 `lazy-load` 属性
+2. 视频不支持全屏播放
+3. 如果在 `flex-direction: row` 的容器中使用,需要给组件设置宽度或设置 `flex: 1` 占满剩余宽度
+
+纯 `nvue` 模式下,[此问题](https://ask.dcloud.net.cn/question/119678) 修复前,不支持通过 `uni_modules` 引入,需要本地引入(将 [dist/uni-app](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 中的内容拷贝到项目根目录下)
+
+## 立即体验
+
+
+## 问题反馈
+遇到问题时,请先查阅 [常见问题](https://jin-yufeng.gitee.io/mp-html/#/question/faq) 和 [issue](https://github.com/jin-yufeng/mp-html/issues) 中是否已有相同的问题
+可通过 [issue](https://github.com/jin-yufeng/mp-html/issues/new/choose) 、插件问答或发送邮件到 [mp_html@126.com](mailto:mp_html@126.com) 提问,不建议在评论区提问(不方便回复)
+提问请严格按照 [issue 模板](https://github.com/jin-yufeng/mp-html/issues/new/choose) ,描述清楚使用环境、`html` 内容或可复现的 `demo` 项目以及复现方式,对于 **描述不清**、**无法复现** 或重复的问题将不予回复
+
+欢迎加入 `QQ` 交流群:
+群1(已满):`699734691`
+群2:`778239129`
+
+查看 [问题反馈](https://jin-yufeng.gitee.io/mp-html/#/question/feedback) 了解更多
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/changelog.md"
new file mode 100644
index 000000000..537357c8e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/changelog.md"
@@ -0,0 +1,138 @@
+## v2.4.3(2024-01-21)
+1. `A` 增加 [card](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#card) 插件 [详细](https://github.com/jin-yufeng/mp-html/pull/533) by [@whoooami](https://github.com/whoooami)
+2. `F` 修复了 `svg` 中包含 `foreignobject` 可能不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/523)
+3. `F` 修复了合并单元格的表格部分情况下显示不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/561)
+4. `F` 修复了 `img` 标签设置 `object-fit` 无效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/567)
+5. `F` 修复了 `latex` 插件公式会换行的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/540)
+6. `F` 修复了 `editable` 和 `audio` 插件共用时点击 `audio` 无法编辑的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/529) by [@whoooami](https://github.com/whoooami)
+7. `F` 修复了微信小程序部分情况下图片会报错 `replace of undefined` 的问题
+8. `F` 修复了快手小程序图片不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/571)
+## v2.4.2(2023-05-14)
+1. `A` `editable` 插件支持修改文字颜色 [详细](https://github.com/jin-yufeng/mp-html/issues/254)
+2. `F` 修复了 `svg` 中有 `style` 不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/505)
+3. `F` 修复了使用旧版编译器可能报错 `Bad attr nodes` 的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/472)
+4. `F` 修复了 `app` 端可能出现无法读取 `lazyLoad` 的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/513)
+5. `F` 修复了 `editable` 插件在点击换图时未拼接 `domain` 的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/497) by [@TwoKe945](https://github.com/TwoKe945)
+6. `F` 修复了 `latex` 插件部分情况下不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/515)
+7. `F` 修复了 `editable` 插件点击音视频时其他标签框不消失的问题
+## v2.4.1(2022-12-25)
+1. `F` 修复了没有图片时 `ready` 事件可能不触发的问题
+2. `F` 修复了加载过程中可能出现 `Root label not found` 错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/470)
+3. `F` 修复了 `audio` 插件退出页面可能会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/457)
+4. `F` 修复了 `vue3` 运行到 `app` 在 `HBuilder X 3.6.10` 以上报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/480)
+5. `F` 修复了 `nvue` 端链接中包含 `%22` 时可能无法显示的问题
+6. `F` 修复了 `vue3` 使用 `highlight` 插件可能报错的问题
+## v2.4.0(2022-08-27)
+1. `A` 增加了 [setPlaybackRate](https://jin-yufeng.gitee.io/mp-html/#/advanced/api#setPlaybackRate) 的 `api`,可以设置音视频的播放速率 [详细](https://github.com/jin-yufeng/mp-html/issues/452)
+2. `A` 示例小程序代码开源 [详细](https://github.com/jin-yufeng/mp-html-demo)
+3. `U` 优化 `ready` 事件触发时机,未设置懒加载的情况下基本可以准确触发 [详细](https://github.com/jin-yufeng/mp-html/issues/195)
+4. `U` `highlight` 插件在编辑状态下不进行高亮处理,便于编辑
+5. `F` 修复了 `flex` 布局下图片大小可能不正确的问题
+6. `F` 修复了 `selectable` 属性没有设置 `force` 也可能出现渲染异常的问题
+7. `F` 修复了表格中的图片大小可能不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/448)
+8. `F` 修复了含有合并单元格的表格可能无法设置竖直对齐的问题
+9. `F` 修复了 `editable` 插件在 `scroll-view` 中使用时工具条位置可能不正确的问题
+10. `F` 修复了 `vue3` 使用 [search](advanced/plugin#search) 插件可能导致错误换行的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/449)
+## v2.3.2(2022-08-13)
+1. `A` 增加 [latex](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#latex) 插件,可以渲染数学公式 [详细](https://github.com/jin-yufeng/mp-html/pull/447) by [@Zeng-J](https://github.com/Zeng-J)
+2. `U` 优化根节点下有很多标签的长内容渲染速度
+3. `U` `highlight` 插件适配 `lang-xxx` 格式
+4. `F` 修复了 `table` 标签设置 `border` 属性后可能无法修改边框样式的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/439) by [@zouxingjie](https://github.com/zouxingjie)
+5. `F` 修复了 `editable` 插件输入连续空格无效的问题
+6. `F` 修复了 `vue3` 图片设置 `inline` 会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/438)
+7. `F` 修复了 `vue3` 使用 `table` 可能报错的问题
+## v2.3.1(2022-05-20)
+1. `U` `app` 端支持使用本地图片
+2. `U` 优化了微信小程序 `selectable` 属性在 `ios` 端的处理 [详细](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable)
+3. `F` 修复了 `editable` 插件不在顶部时 `tooltip` 位置可能错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/430)
+4. `F` 修复了 `vue3` 运行到微信小程序可能报错丢失内容的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/414)
+5. `F` 修复了 `vue3` 部分标签可能被错误换行的问题
+6. `F` 修复了 `editable` 插件 `app` 端插入视频无法预览的问题
+## v2.3.0(2022-04-01)
+1. `A` 增加了 `play` 事件,音视频播放时触发,可用于与页面其他音视频进行互斥播放 [详细](basic/event#play)
+2. `U` `show-img-menu` 属性支持控制预览时是否长按弹出菜单
+3. `U` 优化 `wxs` 处理,提高渲染性能 [详细](https://developers.weixin.qq.com/community/develop/article/doc/0006cc2b204740f601bd43fa25a413)
+4. `U` `video` 标签支持 `object-fit` 属性
+5. `U` 增加支持一些常用实体编码 [详细](https://github.com/jin-yufeng/mp-html/issues/418)
+6. `F` 修复了图片仅设置高度可能不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/410)
+7. `F` 修复了 `video` 标签高度设置为 `auto` 不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/411)
+8. `F` 修复了使用 `grid` 布局时可能样式错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/413)
+9. `F` 修复了含有合并单元格的表格部分情况下显示异常的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/417)
+10. `F` 修复了 `editable` 插件连续插入内容时顺序不正确的问题
+11. `F` 修复了 `uni-app` 包 `vue3` 使用 `audio` 插件报错的问题
+12. `F` 修复了 `uni-app` 包 `highlight` 插件使用自定义的 `prism.min.js` 报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/416)
+## v2.2.2(2022-02-26)
+1. `A` 增加了 [pauseMedia](https://jin-yufeng.gitee.io/mp-html/#/advanced/api#pauseMedia) 的 `api`,可用于暂停播放音视频 [详细](https://github.com/jin-yufeng/mp-html/issues/317)
+2. `U` 优化了长内容的加载速度
+3. `U` 适配 `vue3` [#389](https://github.com/jin-yufeng/mp-html/issues/389)、[#398](https://github.com/jin-yufeng/mp-html/pull/398) by [@zhouhuafei](https://github.com/zhouhuafei)、[#400](https://github.com/jin-yufeng/mp-html/issues/400)
+4. `F` 修复了小程序端图片高度设置为百分比时可能不显示的问题
+5. `F` 修复了 `highlight` 插件部分情况下可能显示不完整的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/403)
+## v2.2.1(2021-12-24)
+1. `A` `editable` 插件增加上下移动标签功能
+2. `U` `editable` 插件支持在文本中间光标处插入内容
+3. `F` 修复了 `nvue` 端设置 `margin` 后可能导致高度不正确的问题
+4. `F` 修复了 `highlight` 插件使用压缩版的 `prism.css` 可能导致背景失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/367)
+5. `F` 修复了编辑状态下使用 `emoji` 插件内容为空时可能报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/371)
+6. `F` 修复了使用 `editable` 插件后将 `selectable` 属性设置为 `force` 不生效的问题
+## v2.2.0(2021-10-12)
+1. `A` 增加 `customElements` 配置项,便于添加自定义功能性标签 [详细](https://github.com/jin-yufeng/mp-html/issues/350)
+2. `A` `editable` 插件增加切换音视频自动播放状态的功能 [详细](https://github.com/jin-yufeng/mp-html/pull/341) by [@leeseett](https://github.com/leeseett)
+3. `A` `editable` 插件删除媒体标签时触发 `remove` 事件,便于删除已上传的文件
+4. `U` `editable` 插件 `insertImg` 方法支持同时插入多张图片 [详细](https://github.com/jin-yufeng/mp-html/issues/342)
+5. `U` `editable` 插入图片和音视频时支持拼接 `domian` 主域名
+6. `F` 修复了内部链接参数中包含 `://` 时被认为是外部链接的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/356)
+7. `F` 修复了部分 `svg` 标签名或属性名大小写不正确时不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/351)
+8. `F` 修复了 `nvue` 页面运行到非 `app` 平台时可能样式错误的问题
+## v2.1.5(2021-08-13)
+1. `A` 增加支持标签的 `dir` 属性
+2. `F` 修复了 `ruby` 标签文字与拼音没有居中对齐的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/325)
+3. `F` 修复了音视频标签内有 `a` 标签时可能无法播放的问题
+4. `F` 修复了 `externStyle` 中的 `class` 名包含下划线或数字时可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326)
+5. `F` 修复了 `h5` 端引入 `externStyle` 可能不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326)
+## v2.1.4(2021-07-14)
+1. `F` 修复了 `rt` 标签无法设置样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/318)
+2. `F` 修复了表格中有单元格同时合并行和列时可能显示不正确的问题
+3. `F` 修复了 `app` 端无法关闭图片长按菜单的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/322)
+4. `F` 修复了 `editable` 插件只能添加图片链接不能修改的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/312) by [@leeseett](https://github.com/leeseett)
+## v2.1.3(2021-06-12)
+1. `A` `editable` 插件增加 `insertTable` 方法
+2. `U` `editable` 插件支持编辑表格中的空白单元格 [详细](https://github.com/jin-yufeng/mp-html/issues/310)
+3. `F` 修复了 `externStyle` 中使用伪类可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/298)
+4. `F` 修复了多个组件同时使用时 `tag-style` 属性时可能互相影响的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/305) by [@woodguoyu](https://github.com/woodguoyu)
+5. `F` 修复了包含 `linearGradient` 的 `svg` 可能无法显示的问题
+6. `F` 修复了编译到头条小程序时可能报错的问题
+7. `F` 修复了 `nvue` 端不触发 `click` 事件的问题
+8. `F` 修复了 `editable` 插件尾部插入时无法撤销的问题
+9. `F` 修复了 `editable` 插件的 `insertHtml` 方法只能在末尾插入的问题
+10. `F` 修复了 `editable` 插件插入音频不显示的问题
+## v2.1.2(2021-04-24)
+1. `A` 增加了 [img-cache](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#img-cache) 插件,可以在 `app` 端缓存图片 [详细](https://github.com/jin-yufeng/mp-html/issues/292) by [@PentaTea](https://github.com/PentaTea)
+2. `U` 支持通过 `container-style` 属性设置 `white-space` 来保留连续空格和换行符 [详细](https://jin-yufeng.gitee.io/mp-html/#/question/faq#space)
+3. `U` 代码风格符合 [standard](https://standardjs.com) 标准
+4. `U` `editable` 插件编辑状态下支持预览视频 [详细](https://github.com/jin-yufeng/mp-html/issues/286)
+5. `F` 修复了 `svg` 标签内嵌 `svg` 时无法显示的问题
+6. `F` 修复了编译到支付宝和头条小程序时部分区域不可复制的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/291)
+## v2.1.1(2021-04-09)
+1. 修复了对 `p` 标签设置 `tag-style` 可能不生效的问题
+2. 修复了 `svg` 标签中的文本无法显示的问题
+3. 修复了使用 `editable` 插件编辑表格时可能报错的问题
+4. 修复了使用 `highlight` 插件运行到头条小程序时可能没有样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/280)
+5. 修复了使用 `editable` 插件 `editable` 属性为 `false` 时会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/284)
+6. 修复了 `style` 插件连续子选择器失效的问题
+7. 修复了 `editable` 插件无法修改图片和字体大小的问题
+## v2.1.0.2(2021-03-21)
+修复了 `nvue` 端使用可能报错的问题
+## v2.1.0(2021-03-20)
+1. `A` 增加了 [container-style](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#container-style) 属性 [详细](https://gitee.com/jin-yufeng/mp-html/pulls/1)
+2. `A` 增加支持 `strike` 标签
+3. `A` `editable` 插件增加 `placeholder` 属性 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable)
+4. `A` `editable` 插件增加 `insertHtml` 方法 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable)
+5. `U` 外部样式支持标签名选择器 [详细](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart#setting)
+6. `F` 修复了 `nvue` 端部分情况下可能不显示的问题
+## v2.0.5(2021-03-12)
+1. `U` [linktap](https://jin-yufeng.gitee.io/mp-html/#/basic/event#linktap) 事件增加返回内部文本内容 `innerText` [详细](https://github.com/jin-yufeng/mp-html/issues/271)
+2. `U` [selectable](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable) 属性设置为 `force` 时能够在微信 `iOS` 端生效(文本块会变成 `inline-block`) [详细](https://github.com/jin-yufeng/mp-html/issues/267)
+3. `F` 修复了部分情况下竖向无法滚动的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/182)
+4. `F` 修复了多次修改富文本数据时部分内容可能不显示的问题
+5. `F` 修复了 [腾讯视频](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#txv-video) 插件可能无法播放的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/265)
+6. `F` 修复了 [highlight](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#highlight) 插件没有设置高亮语言时没有应用默认样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/276) by [@fuzui](https://github.com/fuzui)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/mp-html.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/mp-html.vue"
new file mode 100644
index 000000000..ec701157a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/mp-html.vue"
@@ -0,0 +1,498 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/node/node.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/node/node.vue"
new file mode 100644
index 000000000..c5ef09476
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/node/node.vue"
@@ -0,0 +1,579 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{n.text}}
+
+
+ {{n.text}}
+
+ \n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/parser.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/parser.js"
new file mode 100644
index 000000000..e75616598
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/components/mp-html/parser.js"
@@ -0,0 +1,1372 @@
+/**
+ * @fileoverview html 解析器
+ */
+
+// 配置
+const config = {
+ // 信任的标签(保持标签名不变)
+ trustTags: makeMap('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'),
+
+ // 块级标签(转为 div,其他的非信任标签转为 span)
+ blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section'),
+
+ // #ifdef (MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE3
+ // 行内标签
+ inlineTags: makeMap('abbr,b,big,code,del,em,i,ins,label,q,small,span,strong,sub,sup'),
+ // #endif
+
+ // 要移除的标签
+ ignoreTags: makeMap('area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr'),
+
+ // 自闭合的标签
+ voidTags: makeMap('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'),
+
+ // html 实体
+ entities: {
+ lt: '<',
+ gt: '>',
+ quot: '"',
+ apos: "'",
+ ensp: '\u2002',
+ emsp: '\u2003',
+ nbsp: '\xA0',
+ semi: ';',
+ ndash: '–',
+ mdash: '—',
+ middot: '·',
+ lsquo: '‘',
+ rsquo: '’',
+ ldquo: '“',
+ rdquo: '”',
+ bull: '•',
+ hellip: '…',
+ larr: '←',
+ uarr: '↑',
+ rarr: '→',
+ darr: '↓'
+ },
+
+ // 默认的标签样式
+ tagStyle: {
+ // #ifndef APP-PLUS-NVUE
+ address: 'font-style:italic',
+ big: 'display:inline;font-size:1.2em',
+ caption: 'display:table-caption;text-align:center',
+ center: 'text-align:center',
+ cite: 'font-style:italic',
+ dd: 'margin-left:40px',
+ mark: 'background-color:yellow',
+ pre: 'font-family:monospace;white-space:pre',
+ s: 'text-decoration:line-through',
+ small: 'display:inline;font-size:0.8em',
+ strike: 'text-decoration:line-through',
+ u: 'text-decoration:underline'
+ // #endif
+ },
+
+ // svg 大小写对照表
+ svgDict: {
+ animatetransform: 'animateTransform',
+ lineargradient: 'linearGradient',
+ viewbox: 'viewBox',
+ attributename: 'attributeName',
+ repeatcount: 'repeatCount',
+ repeatdur: 'repeatDur',
+ foreignobject: 'foreignObject'
+ }
+}
+const tagSelector={}
+const {
+ windowWidth,
+ // #ifdef MP-WEIXIN
+ system
+ // #endif
+} = uni.getSystemInfoSync()
+const blankChar = makeMap(' ,\r,\n,\t,\f')
+let idIndex = 0
+
+// #ifdef H5 || APP-PLUS
+config.ignoreTags.iframe = undefined
+config.trustTags.iframe = true
+config.ignoreTags.embed = undefined
+config.trustTags.embed = true
+// #endif
+// #ifdef APP-PLUS-NVUE
+config.ignoreTags.source = undefined
+config.ignoreTags.style = undefined
+// #endif
+
+/**
+ * @description 创建 map
+ * @param {String} str 逗号分隔
+ */
+function makeMap (str) {
+ const map = Object.create(null)
+ const list = str.split(',')
+ for (let i = list.length; i--;) {
+ map[list[i]] = true
+ }
+ return map
+}
+
+/**
+ * @description 解码 html 实体
+ * @param {String} str 要解码的字符串
+ * @param {Boolean} amp 要不要解码 &
+ * @returns {String} 解码后的字符串
+ */
+function decodeEntity (str, amp) {
+ let i = str.indexOf('&')
+ while (i !== -1) {
+ const j = str.indexOf(';', i + 3)
+ let code
+ if (j === -1) break
+ if (str[i + 1] === '#') {
+ // { 形式的实体
+ code = parseInt((str[i + 2] === 'x' ? '0' : '') + str.substring(i + 2, j))
+ if (!isNaN(code)) {
+ str = str.substr(0, i) + String.fromCharCode(code) + str.substr(j + 1)
+ }
+ } else {
+ // 形式的实体
+ code = str.substring(i + 1, j)
+ if (config.entities[code] || (code === 'amp' && amp)) {
+ str = str.substr(0, i) + (config.entities[code] || '&') + str.substr(j + 1)
+ }
+ }
+ i = str.indexOf('&', i + 1)
+ }
+ return str
+}
+
+/**
+ * @description 合并多个块级标签,加快长内容渲染
+ * @param {Array} nodes 要合并的标签数组
+ */
+function mergeNodes (nodes) {
+ let i = nodes.length - 1
+ for (let j = i; j >= -1; j--) {
+ if (j === -1 || nodes[j].c || !nodes[j].name || (nodes[j].name !== 'div' && nodes[j].name !== 'p' && nodes[j].name[0] !== 'h') || (nodes[j].attrs.style || '').includes('inline')) {
+ if (i - j >= 5) {
+ nodes.splice(j + 1, i - j, {
+ name: 'div',
+ attrs: {},
+ children: nodes.slice(j + 1, i + 1)
+ })
+ }
+ i = j - 1
+ }
+ }
+}
+
+/**
+ * @description html 解析器
+ * @param {Object} vm 组件实例
+ */
+function Parser (vm) {
+ this.options = vm || {}
+ this.tagStyle = Object.assign({}, config.tagStyle, this.options.tagStyle)
+ this.imgList = vm.imgList || []
+ this.imgList._unloadimgs = 0
+ this.plugins = vm.plugins || []
+ this.attrs = Object.create(null)
+ this.stack = []
+ this.nodes = []
+ this.pre = (this.options.containerStyle || '').includes('white-space') && this.options.containerStyle.includes('pre') ? 2 : 0
+}
+
+/**
+ * @description 执行解析
+ * @param {String} content 要解析的文本
+ */
+Parser.prototype.parse = function (content) {
+ // 插件处理
+ for (let i = this.plugins.length; i--;) {
+ if (this.plugins[i].onUpdate) {
+ content = this.plugins[i].onUpdate(content, config) || content
+ }
+ }
+
+ new Lexer(this).parse(content)
+ // 出栈未闭合的标签
+ while (this.stack.length) {
+ this.popNode()
+ }
+ if (this.nodes.length > 50) {
+ mergeNodes(this.nodes)
+ }
+ return this.nodes
+}
+
+/**
+ * @description 将标签暴露出来(不被 rich-text 包含)
+ */
+Parser.prototype.expose = function () {
+ // #ifndef APP-PLUS-NVUE
+ for (let i = this.stack.length; i--;) {
+ const item = this.stack[i]
+ if (item.c || item.name === 'a' || item.name === 'video' || item.name === 'audio') return
+ item.c = 1
+ }
+ // #endif
+}
+
+/**
+ * @description 处理插件
+ * @param {Object} node 要处理的标签
+ * @returns {Boolean} 是否要移除此标签
+ */
+Parser.prototype.hook = function (node) {
+ for (let i = this.plugins.length; i--;) {
+ if (this.plugins[i].onParse && this.plugins[i].onParse(node, this) === false) {
+ return false
+ }
+ }
+ return true
+}
+
+/**
+ * @description 将链接拼接上主域名
+ * @param {String} url 需要拼接的链接
+ * @returns {String} 拼接后的链接
+ */
+Parser.prototype.getUrl = function (url) {
+ const domain = this.options.domain
+ if (url[0] === '/') {
+ if (url[1] === '/') {
+ // // 开头的补充协议名
+ url = (domain ? domain.split('://')[0] : 'http') + ':' + url
+ } else if (domain) {
+ // 否则补充整个域名
+ url = domain + url
+ } /* #ifdef APP-PLUS */ else {
+ url = plus.io.convertLocalFileSystemURL(url)
+ } /* #endif */
+ } else if (!url.includes('data:') && !url.includes('://')) {
+ if (domain) {
+ url = domain + '/' + url
+ } /* #ifdef APP-PLUS */ else {
+ url = plus.io.convertLocalFileSystemURL(url)
+ } /* #endif */
+ }
+ return url
+}
+
+/**
+ * @description 解析样式表
+ * @param {Object} node 标签
+ * @returns {Object}
+ */
+Parser.prototype.parseStyle = function (node) {
+ const attrs = node.attrs
+ const list = (this.tagStyle[node.name] || '').split(';').concat((attrs.style || '').split(';'))
+ const styleObj = {}
+ let tmp = ''
+
+ if (attrs.id && !this.xml) {
+ // 暴露锚点
+ if (this.options.useAnchor) {
+ this.expose()
+ } else if (node.name !== 'img' && node.name !== 'a' && node.name !== 'video' && node.name !== 'audio') {
+ attrs.id = undefined
+ }
+ }
+
+ // 转换 width 和 height 属性
+ if (attrs.width) {
+ styleObj.width = parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px')
+ attrs.width = undefined
+ }
+ if (attrs.height) {
+ styleObj.height = parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px')
+ attrs.height = undefined
+ }
+
+ for (let i = 0, len = list.length; i < len; i++) {
+ const info = list[i].split(':')
+ if (info.length < 2) continue
+ const key = info.shift().trim().toLowerCase()
+ let value = info.join(':').trim()
+ if ((value[0] === '-' && value.lastIndexOf('-') > 0) || value.includes('safe')) {
+ // 兼容性的 css 不压缩
+ tmp += `;${key}:${value}`
+ } else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) {
+ // 重复的样式进行覆盖
+ if (value.includes('url')) {
+ // 填充链接
+ let j = value.indexOf('(') + 1
+ if (j) {
+ while (value[j] === '"' || value[j] === "'" || blankChar[value[j]]) {
+ j++
+ }
+ value = value.substr(0, j) + this.getUrl(value.substr(j))
+ }
+ } else if (value.includes('rpx')) {
+ // 转换 rpx(rich-text 内部不支持 rpx)
+ value = value.replace(/[0-9.]+\s*rpx/g, $ => parseFloat($) * windowWidth / 750 + 'px')
+ }
+ styleObj[key] = value
+ }
+ }
+
+ node.attrs.style = tmp
+ return styleObj
+}
+
+/**
+ * @description 解析到标签名
+ * @param {String} name 标签名
+ * @private
+ */
+Parser.prototype.onTagName = function (name) {
+ this.tagName = this.xml ? name : name.toLowerCase()
+ if (this.tagName === 'svg') {
+ this.xml = (this.xml || 0) + 1 // svg 标签内大小写敏感
+ config.ignoreTags.style = undefined // svg 标签内 style 可用
+ }
+}
+
+/**
+ * @description 解析到属性名
+ * @param {String} name 属性名
+ * @private
+ */
+Parser.prototype.onAttrName = function (name) {
+ name = this.xml ? name : name.toLowerCase()
+ if (name.substr(0, 5) === 'data-') {
+ if (name === 'data-src' && !this.attrs.src) {
+ // data-src 自动转为 src
+ this.attrName = 'src'
+ } else if (this.tagName === 'img' || this.tagName === 'a') {
+ // a 和 img 标签保留 data- 的属性,可以在 imgtap 和 linktap 事件中使用
+ this.attrName = name
+ } else {
+ // 剩余的移除以减小大小
+ this.attrName = undefined
+ }
+ } else {
+ this.attrName = name
+ this.attrs[name] = 'T' // boolean 型属性缺省设置
+ }
+}
+
+/**
+ * @description 解析到属性值
+ * @param {String} val 属性值
+ * @private
+ */
+Parser.prototype.onAttrVal = function (val) {
+ const name = this.attrName || ''
+ if (name === 'style' || name === 'href') {
+ // 部分属性进行实体解码
+ this.attrs[name] = decodeEntity(val, true)
+ } else if (name.includes('src')) {
+ // 拼接主域名
+ this.attrs[name] = this.getUrl(decodeEntity(val, true))
+ } else if (name) {
+ this.attrs[name] = val
+ }
+}
+
+/**
+ * @description 解析到标签开始
+ * @param {Boolean} selfClose 是否有自闭合标识 />
+ * @private
+ */
+Parser.prototype.onOpenTag = function (selfClose) {
+ // 拼装 node
+ const node = Object.create(null)
+ node.name = this.tagName
+ node.attrs = this.attrs
+ // 避免因为自动 diff 使得 type 被设置为 null 导致部分内容不显示
+ if (this.options.nodes.length) {
+ node.type = 'node'
+ }
+ this.attrs = Object.create(null)
+
+ const attrs = node.attrs
+ const parent = this.stack[this.stack.length - 1]
+ const siblings = parent ? parent.children : this.nodes
+ const close = this.xml ? selfClose : config.voidTags[node.name]
+
+ // 替换标签名选择器
+ if (tagSelector[node.name]) {
+ attrs.class = tagSelector[node.name] + (attrs.class ? ' ' + attrs.class : '')
+ }
+
+ // 转换 embed 标签
+ if (node.name === 'embed') {
+ // #ifndef H5 || APP-PLUS
+ const src = attrs.src || ''
+ // 按照后缀名和 type 将 embed 转为 video 或 audio
+ if (src.includes('.mp4') || src.includes('.3gp') || src.includes('.m3u8') || (attrs.type || '').includes('video')) {
+ node.name = 'video'
+ } else if (src.includes('.mp3') || src.includes('.wav') || src.includes('.aac') || src.includes('.m4a') || (attrs.type || '').includes('audio')) {
+ node.name = 'audio'
+ }
+ if (attrs.autostart) {
+ attrs.autoplay = 'T'
+ }
+ attrs.controls = 'T'
+ // #endif
+ // #ifdef H5 || APP-PLUS
+ this.expose()
+ // #endif
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ // 处理音视频
+ if (node.name === 'video' || node.name === 'audio') {
+ // 设置 id 以便获取 context
+ if (node.name === 'video' && !attrs.id) {
+ attrs.id = 'v' + idIndex++
+ }
+ // 没有设置 controls 也没有设置 autoplay 的自动设置 controls
+ if (!attrs.controls && !attrs.autoplay) {
+ attrs.controls = 'T'
+ }
+ // 用数组存储所有可用的 source
+ node.src = []
+ if (attrs.src) {
+ node.src.push(attrs.src)
+ attrs.src = undefined
+ }
+ this.expose()
+ }
+ // #endif
+
+ // 处理自闭合标签
+ if (close) {
+ if (!this.hook(node) || config.ignoreTags[node.name]) {
+ // 通过 base 标签设置主域名
+ if (node.name === 'base' && !this.options.domain) {
+ this.options.domain = attrs.href
+ } /* #ifndef APP-PLUS-NVUE */ else if (node.name === 'source' && parent && (parent.name === 'video' || parent.name === 'audio') && attrs.src) {
+ // 设置 source 标签(仅父节点为 video 或 audio 时有效)
+ parent.src.push(attrs.src)
+ } /* #endif */
+ return
+ }
+
+ // 解析 style
+ const styleObj = this.parseStyle(node)
+
+ // 处理图片
+ if (node.name === 'img') {
+ if (attrs.src) {
+ // 标记 webp
+ if (attrs.src.includes('webp')) {
+ node.webp = 'T'
+ }
+ // data url 图片如果没有设置 original-src 默认为不可预览的小图片
+ if (attrs.src.includes('data:') && !attrs['original-src']) {
+ attrs.ignore = 'T'
+ }
+ if (!attrs.ignore || node.webp || attrs.src.includes('cloud://')) {
+ for (let i = this.stack.length; i--;) {
+ const item = this.stack[i]
+ if (item.name === 'a') {
+ node.a = item.attrs
+ }
+ if (item.name === 'table' && !node.webp && !attrs.src.includes('cloud://')) {
+ if (!styleObj.display || styleObj.display.includes('inline')) {
+ node.t = 'inline-block'
+ } else {
+ node.t = styleObj.display
+ }
+ styleObj.display = undefined
+ }
+ // #ifndef H5 || APP-PLUS
+ const style = item.attrs.style || ''
+ if (style.includes('flex:') && !style.includes('flex:0') && !style.includes('flex: 0') && (!styleObj.width || parseInt(styleObj.width) > 100)) {
+ styleObj.width = '100% !important'
+ styleObj.height = ''
+ for (let j = i + 1; j < this.stack.length; j++) {
+ this.stack[j].attrs.style = (this.stack[j].attrs.style || '').replace('inline-', '')
+ }
+ } else if (style.includes('flex') && styleObj.width === '100%') {
+ for (let j = i + 1; j < this.stack.length; j++) {
+ const style = this.stack[j].attrs.style || ''
+ if (!style.includes(';width') && !style.includes(' width') && style.indexOf('width') !== 0) {
+ styleObj.width = ''
+ break
+ }
+ }
+ } else if (style.includes('inline-block')) {
+ if (styleObj.width && styleObj.width[styleObj.width.length - 1] === '%') {
+ item.attrs.style += ';max-width:' + styleObj.width
+ styleObj.width = ''
+ } else {
+ item.attrs.style += ';max-width:100%'
+ }
+ }
+ // #endif
+ item.c = 1
+ }
+ attrs.i = this.imgList.length.toString()
+ let src = attrs['original-src'] || attrs.src
+ // #ifndef H5 || MP-ALIPAY || APP-PLUS || MP-360
+ if (this.imgList.includes(src)) {
+ // 如果有重复的链接则对域名进行随机大小写变换避免预览时错位
+ let i = src.indexOf('://')
+ if (i !== -1) {
+ i += 3
+ let newSrc = src.substr(0, i)
+ for (; i < src.length; i++) {
+ if (src[i] === '/') break
+ newSrc += Math.random() > 0.5 ? src[i].toUpperCase() : src[i]
+ }
+ newSrc += src.substr(i)
+ src = newSrc
+ }
+ }
+ // #endif
+ this.imgList.push(src)
+ if (!node.t) {
+ this.imgList._unloadimgs += 1
+ }
+ // #ifdef H5 || APP-PLUS
+ if (this.options.lazyLoad) {
+ attrs['data-src'] = attrs.src
+ attrs.src = undefined
+ }
+ // #endif
+ }
+ }
+ if (styleObj.display === 'inline') {
+ styleObj.display = ''
+ }
+ // #ifndef APP-PLUS-NVUE
+ if (attrs.ignore) {
+ styleObj['max-width'] = styleObj['max-width'] || '100%'
+ attrs.style += ';-webkit-touch-callout:none'
+ }
+ // #endif
+ // 设置的宽度超出屏幕,为避免变形,高度转为自动
+ if (parseInt(styleObj.width) > windowWidth) {
+ styleObj.height = undefined
+ }
+ // 记录是否设置了宽高
+ if (!isNaN(parseInt(styleObj.width))) {
+ node.w = 'T'
+ }
+ if (!isNaN(parseInt(styleObj.height)) && (!styleObj.height.includes('%') || (parent && (parent.attrs.style || '').includes('height')))) {
+ node.h = 'T'
+ }
+ if (node.w && node.h && styleObj['object-fit']) {
+ if (styleObj['object-fit'] === 'contain') {
+ node.m = 'aspectFit'
+ } else if (styleObj['object-fit'] === 'cover') {
+ node.m = 'aspectFill'
+ }
+ }
+ } else if (node.name === 'svg') {
+ siblings.push(node)
+ this.stack.push(node)
+ this.popNode()
+ return
+ }
+ for (const key in styleObj) {
+ if (styleObj[key]) {
+ attrs.style += `;${key}:${styleObj[key].replace(' !important', '')}`
+ }
+ }
+ attrs.style = attrs.style.substr(1) || undefined
+ // #ifdef (MP-WEIXIN || MP-QQ) && VUE3
+ if (!attrs.style) {
+ delete attrs.style
+ }
+ // #endif
+ } else {
+ if ((node.name === 'pre' || ((attrs.style || '').includes('white-space') && attrs.style.includes('pre'))) && this.pre !== 2) {
+ this.pre = node.pre = 1
+ }
+ node.children = []
+ this.stack.push(node)
+ }
+
+ // 加入节点树
+ siblings.push(node)
+}
+
+/**
+ * @description 解析到标签结束
+ * @param {String} name 标签名
+ * @private
+ */
+Parser.prototype.onCloseTag = function (name) {
+ // 依次出栈到匹配为止
+ name = this.xml ? name : name.toLowerCase()
+ let i
+ for (i = this.stack.length; i--;) {
+ if (this.stack[i].name === name) break
+ }
+ if (i !== -1) {
+ while (this.stack.length > i) {
+ this.popNode()
+ }
+ } else if (name === 'p' || name === 'br') {
+ const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
+ siblings.push({
+ name,
+ attrs: {
+ class: tagSelector[name] || '',
+ style: this.tagStyle[name] || ''
+ }
+ })
+ }
+}
+
+/**
+ * @description 处理标签出栈
+ * @private
+ */
+Parser.prototype.popNode = function () {
+ const node = this.stack.pop()
+ let attrs = node.attrs
+ const children = node.children
+ const parent = this.stack[this.stack.length - 1]
+ const siblings = parent ? parent.children : this.nodes
+
+ if (!this.hook(node) || config.ignoreTags[node.name]) {
+ // 获取标题
+ if (node.name === 'title' && children.length && children[0].type === 'text' && this.options.setTitle) {
+ uni.setNavigationBarTitle({
+ title: children[0].text
+ })
+ }
+ siblings.pop()
+ return
+ }
+
+ if (node.pre && this.pre !== 2) {
+ // 是否合并空白符标识
+ this.pre = node.pre = undefined
+ for (let i = this.stack.length; i--;) {
+ if (this.stack[i].pre) {
+ this.pre = 1
+ }
+ }
+ }
+
+ const styleObj = {}
+
+ // 转换 svg
+ if (node.name === 'svg') {
+ if (this.xml > 1) {
+ // 多层 svg 嵌套
+ this.xml--
+ return
+ }
+ // #ifdef APP-PLUS-NVUE
+ (function traversal (node) {
+ if (node.name) {
+ // 调整 svg 的大小写
+ node.name = config.svgDict[node.name] || node.name
+ for (const item in node.attrs) {
+ if (config.svgDict[item]) {
+ node.attrs[config.svgDict[item]] = node.attrs[item]
+ node.attrs[item] = undefined
+ }
+ }
+ for (let i = 0; i < (node.children || []).length; i++) {
+ traversal(node.children[i])
+ }
+ }
+ })(node)
+ // #endif
+ // #ifndef APP-PLUS-NVUE
+ let src = ''
+ const style = attrs.style
+ attrs.style = ''
+ attrs.xmlns = 'http://www.w3.org/2000/svg';
+ (function traversal (node) {
+ if (node.type === 'text') {
+ src += node.text
+ return
+ }
+ const name = config.svgDict[node.name] || node.name
+ if (name === 'foreignObject') {
+ for (const child of (node.children || [])) {
+ if (child.attrs && !child.attrs.xmlns) {
+ child.attrs.xmlns = 'http://www.w3.org/1999/xhtml'
+ break
+ }
+ }
+ }
+ src += '<' + name
+ for (const item in node.attrs) {
+ const val = node.attrs[item]
+ if (val) {
+ src += ` ${config.svgDict[item] || item}="${val}"`
+ }
+ }
+ if (!node.children) {
+ src += '/>'
+ } else {
+ src += '>'
+ for (let i = 0; i < node.children.length; i++) {
+ traversal(node.children[i])
+ }
+ src += '' + name + '>'
+ }
+ })(node)
+ node.name = 'img'
+ node.attrs = {
+ src: 'data:image/svg+xml;utf8,' + src.replace(/#/g, '%23'),
+ style,
+ ignore: 'T'
+ }
+ node.children = undefined
+ // #endif
+ this.xml = false
+ config.ignoreTags.style = true
+ return
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ // 转换 align 属性
+ if (attrs.align) {
+ if (node.name === 'table') {
+ if (attrs.align === 'center') {
+ styleObj['margin-inline-start'] = styleObj['margin-inline-end'] = 'auto'
+ } else {
+ styleObj.float = attrs.align
+ }
+ } else {
+ styleObj['text-align'] = attrs.align
+ }
+ attrs.align = undefined
+ }
+
+ // 转换 dir 属性
+ if (attrs.dir) {
+ styleObj.direction = attrs.dir
+ attrs.dir = undefined
+ }
+
+ // 转换 font 标签的属性
+ if (node.name === 'font') {
+ if (attrs.color) {
+ styleObj.color = attrs.color
+ attrs.color = undefined
+ }
+ if (attrs.face) {
+ styleObj['font-family'] = attrs.face
+ attrs.face = undefined
+ }
+ if (attrs.size) {
+ let size = parseInt(attrs.size)
+ if (!isNaN(size)) {
+ if (size < 1) {
+ size = 1
+ } else if (size > 7) {
+ size = 7
+ }
+ styleObj['font-size'] = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', 'xxx-large'][size - 1]
+ }
+ attrs.size = undefined
+ }
+ }
+ // #endif
+
+ // 一些编辑器的自带 class
+ if ((attrs.class || '').includes('align-center')) {
+ styleObj['text-align'] = 'center'
+ }
+
+ Object.assign(styleObj, this.parseStyle(node))
+
+ if (node.name !== 'table' && parseInt(styleObj.width) > windowWidth) {
+ styleObj['max-width'] = '100%'
+ styleObj['box-sizing'] = 'border-box'
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ if (config.blockTags[node.name]) {
+ node.name = 'div'
+ } else if (!config.trustTags[node.name] && !this.xml) {
+ // 未知标签转为 span,避免无法显示
+ node.name = 'span'
+ }
+
+ if (node.name === 'a' || node.name === 'ad'
+ // #ifdef H5 || APP-PLUS
+ || node.name === 'iframe' // eslint-disable-line
+ // #endif
+ ) {
+ this.expose()
+ } else if (node.name === 'video') {
+ if ((styleObj.height || '').includes('auto')) {
+ styleObj.height = undefined
+ }
+ /* #ifdef APP-PLUS */
+ let str = ''
+ for (let i = 0; i < node.src.length; i++) {
+ str += ''
+ }
+ str += ' '
+ node.html = str
+ /* #endif */
+ } else if ((node.name === 'ul' || node.name === 'ol') && node.c) {
+ // 列表处理
+ const types = {
+ a: 'lower-alpha',
+ A: 'upper-alpha',
+ i: 'lower-roman',
+ I: 'upper-roman'
+ }
+ if (types[attrs.type]) {
+ attrs.style += ';list-style-type:' + types[attrs.type]
+ attrs.type = undefined
+ }
+ for (let i = children.length; i--;) {
+ if (children[i].name === 'li') {
+ children[i].c = 1
+ }
+ }
+ } else if (node.name === 'table') {
+ // 表格处理
+ // cellpadding、cellspacing、border 这几个常用表格属性需要通过转换实现
+ let padding = parseFloat(attrs.cellpadding)
+ let spacing = parseFloat(attrs.cellspacing)
+ const border = parseFloat(attrs.border)
+ const bordercolor = styleObj['border-color']
+ const borderstyle = styleObj['border-style']
+ if (node.c) {
+ // padding 和 spacing 默认 2
+ if (isNaN(padding)) {
+ padding = 2
+ }
+ if (isNaN(spacing)) {
+ spacing = 2
+ }
+ }
+ if (border) {
+ attrs.style += `;border:${border}px ${borderstyle || 'solid'} ${bordercolor || 'gray'}`
+ }
+ if (node.flag && node.c) {
+ // 有 colspan 或 rowspan 且含有链接的表格通过 grid 布局实现
+ styleObj.display = 'grid'
+ if (styleObj['border-collapse'] === 'collapse') {
+ styleObj['border-collapse'] = undefined
+ spacing = 0
+ }
+ if (spacing) {
+ styleObj['grid-gap'] = spacing + 'px'
+ styleObj.padding = spacing + 'px'
+ } else if (border) {
+ // 无间隔的情况下避免边框重叠
+ attrs.style += ';border-left:0;border-top:0'
+ }
+
+ const width = [] // 表格的列宽
+ const trList = [] // tr 列表
+ const cells = [] // 保存新的单元格
+ const map = {}; // 被合并单元格占用的格子
+
+ (function traversal (nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ if (nodes[i].name === 'tr') {
+ trList.push(nodes[i])
+ } else if (nodes[i].name === 'colgroup') {
+ let colI = 1
+ for (const col of (nodes[i].children || [])) {
+ if (col.name === 'col') {
+ const style = col.attrs.style || ''
+ const start = style.indexOf('width') ? style.indexOf(';width') : 0
+ // 提取出宽度
+ if (start !== -1) {
+ let end = style.indexOf(';', start + 6)
+ if (end === -1) {
+ end = style.length
+ }
+ width[colI] = style.substring(start ? start + 7 : 6, end)
+ }
+ colI += 1
+ }
+ }
+ } else {
+ traversal(nodes[i].children || [])
+ }
+ }
+ })(children)
+
+ for (let row = 1; row <= trList.length; row++) {
+ let col = 1
+ for (let j = 0; j < trList[row - 1].children.length; j++) {
+ const td = trList[row - 1].children[j]
+ if (td.name === 'td' || td.name === 'th') {
+ // 这个格子被上面的单元格占用,则列号++
+ while (map[row + '.' + col]) {
+ col++
+ }
+ let style = td.attrs.style || ''
+ let start = style.indexOf('width') ? style.indexOf(';width') : 0
+ // 提取出 td 的宽度
+ if (start !== -1) {
+ let end = style.indexOf(';', start + 6)
+ if (end === -1) {
+ end = style.length
+ }
+ if (!td.attrs.colspan) {
+ width[col] = style.substring(start ? start + 7 : 6, end)
+ }
+ style = style.substr(0, start) + style.substr(end)
+ }
+ // 设置竖直对齐
+ style += ';display:flex'
+ start = style.indexOf('vertical-align')
+ if (start !== -1) {
+ const val = style.substr(start + 15, 10)
+ if (val.includes('middle')) {
+ style += ';align-items:center'
+ } else if (val.includes('bottom')) {
+ style += ';align-items:flex-end'
+ }
+ } else {
+ style += ';align-items:center'
+ }
+ // 设置水平对齐
+ start = style.indexOf('text-align')
+ if (start !== -1) {
+ const val = style.substr(start + 11, 10)
+ if (val.includes('center')) {
+ style += ';justify-content: center'
+ } else if (val.includes('right')) {
+ style += ';justify-content: right'
+ }
+ }
+ style = (border ? `;border:${border}px ${borderstyle || 'solid'} ${bordercolor || 'gray'}` + (spacing ? '' : ';border-right:0;border-bottom:0') : '') + (padding ? `;padding:${padding}px` : '') + ';' + style
+ // 处理列合并
+ if (td.attrs.colspan) {
+ style += `;grid-column-start:${col};grid-column-end:${col + parseInt(td.attrs.colspan)}`
+ if (!td.attrs.rowspan) {
+ style += `;grid-row-start:${row};grid-row-end:${row + 1}`
+ }
+ col += parseInt(td.attrs.colspan) - 1
+ }
+ // 处理行合并
+ if (td.attrs.rowspan) {
+ style += `;grid-row-start:${row};grid-row-end:${row + parseInt(td.attrs.rowspan)}`
+ if (!td.attrs.colspan) {
+ style += `;grid-column-start:${col};grid-column-end:${col + 1}`
+ }
+ // 记录下方单元格被占用
+ for (let rowspan = 1; rowspan < td.attrs.rowspan; rowspan++) {
+ for (let colspan = 0; colspan < (td.attrs.colspan || 1); colspan++) {
+ map[(row + rowspan) + '.' + (col - colspan)] = 1
+ }
+ }
+ }
+ if (style) {
+ td.attrs.style = style
+ }
+ cells.push(td)
+ col++
+ }
+ }
+ if (row === 1) {
+ let temp = ''
+ for (let i = 1; i < col; i++) {
+ temp += (width[i] ? width[i] : 'auto') + ' '
+ }
+ styleObj['grid-template-columns'] = temp
+ }
+ }
+ node.children = cells
+ } else {
+ // 没有使用合并单元格的表格通过 table 布局实现
+ if (node.c) {
+ styleObj.display = 'table'
+ }
+ if (!isNaN(spacing)) {
+ styleObj['border-spacing'] = spacing + 'px'
+ }
+ if (border || padding) {
+ // 遍历
+ (function traversal (nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ const td = nodes[i]
+ if (td.name === 'th' || td.name === 'td') {
+ if (border) {
+ td.attrs.style = `border:${border}px ${borderstyle || 'solid'} ${bordercolor || 'gray'};${td.attrs.style || ''}`
+ }
+ if (padding) {
+ td.attrs.style = `padding:${padding}px;${td.attrs.style || ''}`
+ }
+ } else if (td.children) {
+ traversal(td.children)
+ }
+ }
+ })(children)
+ }
+ }
+ // 给表格添加一个单独的横向滚动层
+ if (this.options.scrollTable && !(attrs.style || '').includes('inline')) {
+ const table = Object.assign({}, node)
+ node.name = 'div'
+ node.attrs = {
+ style: 'overflow:auto'
+ }
+ node.children = [table]
+ attrs = table.attrs
+ }
+ } else if ((node.name === 'td' || node.name === 'th') && (attrs.colspan || attrs.rowspan)) {
+ for (let i = this.stack.length; i--;) {
+ if (this.stack[i].name === 'table') {
+ this.stack[i].flag = 1 // 指示含有合并单元格
+ break
+ }
+ }
+ } else if (node.name === 'ruby') {
+ // 转换 ruby
+ node.name = 'span'
+ for (let i = 0; i < children.length - 1; i++) {
+ if (children[i].type === 'text' && children[i + 1].name === 'rt') {
+ children[i] = {
+ name: 'div',
+ attrs: {
+ style: 'display:inline-block;text-align:center'
+ },
+ children: [{
+ name: 'div',
+ attrs: {
+ style: 'font-size:50%;' + (children[i + 1].attrs.style || '')
+ },
+ children: children[i + 1].children
+ }, children[i]]
+ }
+ children.splice(i + 1, 1)
+ }
+ }
+ } else if (node.c) {
+ (function traversal (node) {
+ node.c = 2
+ for (let i = node.children.length; i--;) {
+ const child = node.children[i]
+ // #ifdef (MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE3
+ if (child.name && (config.inlineTags[child.name] || ((child.attrs.style || '').includes('inline') && child.children)) && !child.c) {
+ traversal(child)
+ }
+ // #endif
+ if (!child.c || child.name === 'table') {
+ node.c = 1
+ }
+ }
+ })(node)
+ }
+
+ if ((styleObj.display || '').includes('flex') && !node.c) {
+ for (let i = children.length; i--;) {
+ const item = children[i]
+ if (item.f) {
+ item.attrs.style = (item.attrs.style || '') + item.f
+ item.f = undefined
+ }
+ }
+ }
+ // flex 布局时部分样式需要提取到 rich-text 外层
+ const flex = parent && ((parent.attrs.style || '').includes('flex') || (parent.attrs.style || '').includes('grid'))
+ // #ifdef MP-WEIXIN
+ // 检查基础库版本 virtualHost 是否可用
+ && !(node.c && wx.getNFCAdapter) // eslint-disable-line
+ // #endif
+ // #ifndef MP-WEIXIN || MP-QQ || MP-BAIDU || MP-TOUTIAO
+ && !node.c // eslint-disable-line
+ // #endif
+ if (flex) {
+ node.f = ';max-width:100%'
+ }
+
+ if (children.length >= 50 && node.c && !(styleObj.display || '').includes('flex')) {
+ mergeNodes(children)
+ }
+ // #endif
+
+ for (const key in styleObj) {
+ if (styleObj[key]) {
+ const val = `;${key}:${styleObj[key].replace(' !important', '')}`
+ /* #ifndef APP-PLUS-NVUE */
+ if (flex && ((key.includes('flex') && key !== 'flex-direction') || key === 'align-self' || key.includes('grid') || styleObj[key][0] === '-' || (key.includes('width') && val.includes('%')))) {
+ node.f += val
+ if (key === 'width') {
+ attrs.style += ';width:100%'
+ }
+ } else /* #endif */ {
+ attrs.style += val
+ }
+ }
+ }
+ attrs.style = attrs.style.substr(1) || undefined
+ // #ifdef (MP-WEIXIN || MP-QQ) && VUE3
+ for (const key in attrs) {
+ if (!attrs[key]) {
+ delete attrs[key]
+ }
+ }
+ // #endif
+}
+
+/**
+ * @description 解析到文本
+ * @param {String} text 文本内容
+ */
+Parser.prototype.onText = function (text) {
+ if (!this.pre) {
+ // 合并空白符
+ let trim = ''
+ let flag
+ for (let i = 0, len = text.length; i < len; i++) {
+ if (!blankChar[text[i]]) {
+ trim += text[i]
+ } else {
+ if (trim[trim.length - 1] !== ' ') {
+ trim += ' '
+ }
+ if (text[i] === '\n' && !flag) {
+ flag = true
+ }
+ }
+ }
+ // 去除含有换行符的空串
+ if (trim === ' ') {
+ if (flag) return
+ // #ifdef VUE3
+ else {
+ const parent = this.stack[this.stack.length - 1]
+ if (parent && parent.name[0] === 't') return
+ }
+ // #endif
+ }
+ text = trim
+ }
+ const node = Object.create(null)
+ node.type = 'text'
+ // #ifdef (MP-BAIDU || MP-ALIPAY || MP-TOUTIAO) && VUE3
+ node.attrs = {}
+ // #endif
+ node.text = decodeEntity(text)
+ if (this.hook(node)) {
+ // #ifdef MP-WEIXIN
+ if (this.options.selectable === 'force' && system.includes('iOS') && !uni.canIUse('rich-text.user-select')) {
+ this.expose()
+ }
+ // #endif
+ const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
+ siblings.push(node)
+ }
+}
+
+/**
+ * @description html 词法分析器
+ * @param {Object} handler 高层处理器
+ */
+function Lexer (handler) {
+ this.handler = handler
+}
+
+/**
+ * @description 执行解析
+ * @param {String} content 要解析的文本
+ */
+Lexer.prototype.parse = function (content) {
+ this.content = content || ''
+ this.i = 0 // 标记解析位置
+ this.start = 0 // 标记一个单词的开始位置
+ this.state = this.text // 当前状态
+ for (let len = this.content.length; this.i !== -1 && this.i < len;) {
+ this.state()
+ }
+}
+
+/**
+ * @description 检查标签是否闭合
+ * @param {String} method 如果闭合要进行的操作
+ * @returns {Boolean} 是否闭合
+ * @private
+ */
+Lexer.prototype.checkClose = function (method) {
+ const selfClose = this.content[this.i] === '/'
+ if (this.content[this.i] === '>' || (selfClose && this.content[this.i + 1] === '>')) {
+ if (method) {
+ this.handler[method](this.content.substring(this.start, this.i))
+ }
+ this.i += selfClose ? 2 : 1
+ this.start = this.i
+ this.handler.onOpenTag(selfClose)
+ if (this.handler.tagName === 'script') {
+ this.i = this.content.indexOf('', this.i)
+ if (this.i !== -1) {
+ this.i += 2
+ this.start = this.i
+ }
+ this.state = this.endTag
+ } else {
+ this.state = this.text
+ }
+ return true
+ }
+ return false
+}
+
+/**
+ * @description 文本状态
+ * @private
+ */
+Lexer.prototype.text = function () {
+ this.i = this.content.indexOf('<', this.i) // 查找最近的标签
+ if (this.i === -1) {
+ // 没有标签了
+ if (this.start < this.content.length) {
+ this.handler.onText(this.content.substring(this.start, this.content.length))
+ }
+ return
+ }
+ const c = this.content[this.i + 1]
+ if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
+ // 标签开头
+ if (this.start !== this.i) {
+ this.handler.onText(this.content.substring(this.start, this.i))
+ }
+ this.start = ++this.i
+ this.state = this.tagName
+ } else if (c === '/' || c === '!' || c === '?') {
+ if (this.start !== this.i) {
+ this.handler.onText(this.content.substring(this.start, this.i))
+ }
+ const next = this.content[this.i + 2]
+ if (c === '/' && ((next >= 'a' && next <= 'z') || (next >= 'A' && next <= 'Z'))) {
+ // 标签结尾
+ this.i += 2
+ this.start = this.i
+ this.state = this.endTag
+ return
+ }
+ // 处理注释
+ let end = '-->'
+ if (c !== '!' || this.content[this.i + 2] !== '-' || this.content[this.i + 3] !== '-') {
+ end = '>'
+ }
+ this.i = this.content.indexOf(end, this.i)
+ if (this.i !== -1) {
+ this.i += end.length
+ this.start = this.i
+ }
+ } else {
+ this.i++
+ }
+}
+
+/**
+ * @description 标签名状态
+ * @private
+ */
+Lexer.prototype.tagName = function () {
+ if (blankChar[this.content[this.i]]) {
+ // 解析到标签名
+ this.handler.onTagName(this.content.substring(this.start, this.i))
+ while (blankChar[this.content[++this.i]]);
+ if (this.i < this.content.length && !this.checkClose()) {
+ this.start = this.i
+ this.state = this.attrName
+ }
+ } else if (!this.checkClose('onTagName')) {
+ this.i++
+ }
+}
+
+/**
+ * @description 属性名状态
+ * @private
+ */
+Lexer.prototype.attrName = function () {
+ let c = this.content[this.i]
+ if (blankChar[c] || c === '=') {
+ // 解析到属性名
+ this.handler.onAttrName(this.content.substring(this.start, this.i))
+ let needVal = c === '='
+ const len = this.content.length
+ while (++this.i < len) {
+ c = this.content[this.i]
+ if (!blankChar[c]) {
+ if (this.checkClose()) return
+ if (needVal) {
+ // 等号后遇到第一个非空字符
+ this.start = this.i
+ this.state = this.attrVal
+ return
+ }
+ if (this.content[this.i] === '=') {
+ needVal = true
+ } else {
+ this.start = this.i
+ this.state = this.attrName
+ return
+ }
+ }
+ }
+ } else if (!this.checkClose('onAttrName')) {
+ this.i++
+ }
+}
+
+/**
+ * @description 属性值状态
+ * @private
+ */
+Lexer.prototype.attrVal = function () {
+ const c = this.content[this.i]
+ const len = this.content.length
+ if (c === '"' || c === "'") {
+ // 有冒号的属性
+ this.start = ++this.i
+ this.i = this.content.indexOf(c, this.i)
+ if (this.i === -1) return
+ this.handler.onAttrVal(this.content.substring(this.start, this.i))
+ } else {
+ // 没有冒号的属性
+ for (; this.i < len; this.i++) {
+ if (blankChar[this.content[this.i]]) {
+ this.handler.onAttrVal(this.content.substring(this.start, this.i))
+ break
+ } else if (this.checkClose('onAttrVal')) return
+ }
+ }
+ while (blankChar[this.content[++this.i]]);
+ if (this.i < len && !this.checkClose()) {
+ this.start = this.i
+ this.state = this.attrName
+ }
+}
+
+/**
+ * @description 结束标签状态
+ * @returns {String} 结束的标签名
+ * @private
+ */
+Lexer.prototype.endTag = function () {
+ const c = this.content[this.i]
+ if (blankChar[c] || c === '>' || c === '/') {
+ this.handler.onCloseTag(this.content.substring(this.start, this.i))
+ if (c !== '>') {
+ this.i = this.content.indexOf('>', this.i)
+ if (this.i === -1) return
+ }
+ this.start = ++this.i
+ this.state = this.text
+ } else {
+ this.i++
+ }
+}
+
+export default Parser
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/package.json"
new file mode 100644
index 000000000..168abccb1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/package.json"
@@ -0,0 +1,76 @@
+{
+ "id": "mp-html",
+ "displayName": "mp-html 富文本组件【全端支持,支持编辑、latex等扩展】",
+ "version": "v2.4.3",
+ "description": "一个强大的富文本组件,高效轻量,功能丰富",
+ "keywords": [
+ "富文本",
+ "编辑器",
+ "html",
+ "rich-text",
+ "editor"
+ ],
+ "repository": "https://github.com/jin-yufeng/mp-html",
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/mp-html",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "u",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/static/app-plus/mp-html/js/handler.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/static/app-plus/mp-html/js/handler.js"
new file mode 100644
index 000000000..1d986bdc0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/mp-html/static/app-plus/mp-html/js/handler.js"
@@ -0,0 +1 @@
+"use strict";function t(t){for(var e=Object.create(null),n=t.attributes.length;n--;)e[t.attributes[n].name]=t.attributes[n].value;return e}function e(){a[1]&&(this.src=a[1],this.onerror=null),this.onclick=null,this.ontouchstart=null,uni.postMessage({data:{action:"onError",source:"img",attrs:t(this)}})}function n(){window.unloadimgs-=1,0===window.unloadimgs&&uni.postMessage({data:{action:"onReady"}})}function o(r,s,c){for(var d=0;d0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;a("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("redirectTo",{url:encodeURI(n)})},getEnv:function(e){window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a("postMessage",e.data||{})}},r=/uni-app/i.test(navigator.userAgent),d=/Html5Plus/i.test(navigator.userAgent),s=/complete|loaded|interactive/;var w=window.my&&navigator.userAgent.indexOf("AlipayClient")>-1;var u=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var c=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var g=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var v=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.qa&&/quickapp/i.test(navigator.userAgent);for(var l,_=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},f=[function(e){if(r||d)return window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&s.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),o},function(e){if(v)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(c)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(w){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(u)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(p){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){return document.addEventListener("DOMContentLoaded",e),o}],m=0;m
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/changelog.md"
new file mode 100644
index 000000000..d551d7b88
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/changelog.md"
@@ -0,0 +1,10 @@
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+## 0.0.5(2021-07-08)
+- 调整 默认时间不再是当前时间,而是显示'-'字符
+## 0.0.4(2021-05-12)
+- 新增 组件示例地址
+## 0.0.3(2021-02-04)
+- 调整为uni_modules目录规范
+- 修复 iOS 平台日期格式化出错的问题
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js"
new file mode 100644
index 000000000..e00d5597e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js"
@@ -0,0 +1,200 @@
+// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型
+function pad(str, length = 2) {
+ str += ''
+ while (str.length < length) {
+ str = '0' + str
+ }
+ return str.slice(-length)
+}
+
+const parser = {
+ yyyy: (dateObj) => {
+ return pad(dateObj.year, 4)
+ },
+ yy: (dateObj) => {
+ return pad(dateObj.year)
+ },
+ MM: (dateObj) => {
+ return pad(dateObj.month)
+ },
+ M: (dateObj) => {
+ return dateObj.month
+ },
+ dd: (dateObj) => {
+ return pad(dateObj.day)
+ },
+ d: (dateObj) => {
+ return dateObj.day
+ },
+ hh: (dateObj) => {
+ return pad(dateObj.hour)
+ },
+ h: (dateObj) => {
+ return dateObj.hour
+ },
+ mm: (dateObj) => {
+ return pad(dateObj.minute)
+ },
+ m: (dateObj) => {
+ return dateObj.minute
+ },
+ ss: (dateObj) => {
+ return pad(dateObj.second)
+ },
+ s: (dateObj) => {
+ return dateObj.second
+ },
+ SSS: (dateObj) => {
+ return pad(dateObj.millisecond, 3)
+ },
+ S: (dateObj) => {
+ return dateObj.millisecond
+ },
+}
+
+// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12
+function getDate(time) {
+ if (time instanceof Date) {
+ return time
+ }
+ switch (typeof time) {
+ case 'string':
+ {
+ // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000
+ if (time.indexOf('T') > -1) {
+ return new Date(time)
+ }
+ return new Date(time.replace(/-/g, '/'))
+ }
+ default:
+ return new Date(time)
+ }
+}
+
+export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') {
+ if (!date && date !== 0) {
+ return ''
+ }
+ date = getDate(date)
+ const dateObj = {
+ year: date.getFullYear(),
+ month: date.getMonth() + 1,
+ day: date.getDate(),
+ hour: date.getHours(),
+ minute: date.getMinutes(),
+ second: date.getSeconds(),
+ millisecond: date.getMilliseconds()
+ }
+ const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/
+ let flag = true
+ let result = format
+ while (flag) {
+ flag = false
+ result = result.replace(tokenRegExp, function(matched) {
+ flag = true
+ return parser[matched](dateObj)
+ })
+ }
+ return result
+}
+
+export function friendlyDate(time, {
+ locale = 'zh',
+ threshold = [60000, 3600000],
+ format = 'yyyy/MM/dd hh:mm:ss'
+}) {
+ if (time === '-') {
+ return time
+ }
+ if (!time && time !== 0) {
+ return ''
+ }
+ const localeText = {
+ zh: {
+ year: '年',
+ month: '月',
+ day: '天',
+ hour: '小时',
+ minute: '分钟',
+ second: '秒',
+ ago: '前',
+ later: '后',
+ justNow: '刚刚',
+ soon: '马上',
+ template: '{num}{unit}{suffix}'
+ },
+ en: {
+ year: 'year',
+ month: 'month',
+ day: 'day',
+ hour: 'hour',
+ minute: 'minute',
+ second: 'second',
+ ago: 'ago',
+ later: 'later',
+ justNow: 'just now',
+ soon: 'soon',
+ template: '{num} {unit} {suffix}'
+ }
+ }
+ const text = localeText[locale] || localeText.zh
+ let date = getDate(time)
+ let ms = date.getTime() - Date.now()
+ let absMs = Math.abs(ms)
+ if (absMs < threshold[0]) {
+ return ms < 0 ? text.justNow : text.soon
+ }
+ if (absMs >= threshold[1]) {
+ return formatDate(date, format)
+ }
+ let num
+ let unit
+ let suffix = text.later
+ if (ms < 0) {
+ suffix = text.ago
+ ms = -ms
+ }
+ const seconds = Math.floor((ms) / 1000)
+ const minutes = Math.floor(seconds / 60)
+ const hours = Math.floor(minutes / 60)
+ const days = Math.floor(hours / 24)
+ const months = Math.floor(days / 30)
+ const years = Math.floor(months / 12)
+ switch (true) {
+ case years > 0:
+ num = years
+ unit = text.year
+ break
+ case months > 0:
+ num = months
+ unit = text.month
+ break
+ case days > 0:
+ num = days
+ unit = text.day
+ break
+ case hours > 0:
+ num = hours
+ unit = text.hour
+ break
+ case minutes > 0:
+ num = minutes
+ unit = text.minute
+ break
+ default:
+ num = seconds
+ unit = text.second
+ break
+ }
+
+ if (locale === 'en') {
+ if (num === 1) {
+ num = 'a'
+ } else {
+ unit += 's'
+ }
+ }
+
+ return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g,
+ suffix)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"
new file mode 100644
index 000000000..c5ed03078
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"
@@ -0,0 +1,88 @@
+
+ {{dateShow}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/package.json"
new file mode 100644
index 000000000..786a670b0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-dateformat",
+ "displayName": "uni-dateformat 日期格式化",
+ "version": "1.0.0",
+ "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "日期格式化",
+ "时间格式化",
+ "格式化时间",
+ ""
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/readme.md"
new file mode 100644
index 000000000..37ddb6ece
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-dateformat/readme.md"
@@ -0,0 +1,11 @@
+
+
+### DateFormat 日期格式化
+> **组件名:uni-dateformat**
+> 代码块: `uDateformat`
+
+
+日期格式化组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/changelog.md"
new file mode 100644
index 000000000..620ab0277
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/changelog.md"
@@ -0,0 +1,40 @@
+## 2.0.9(2024-01-12)
+fix: 修复图标大小默认值错误的问题
+## 2.0.8(2023-12-14)
+- 修复 项目未使用 ts 情况下,打包报错的bug
+## 2.0.7(2023-12-14)
+- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
+## 2.0.6(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.5(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.4(2023-12-06)
+- 优化 uni-app x 下示例项目图标排序
+## 2.0.3(2023-12-06)
+- 修复 nvue下引入组件报错的bug
+## 2.0.2(2023-12-05)
+-优化 size 属性支持单位
+## 2.0.1(2023-12-05)
+- 新增 uni-app x 支持定义图标
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
new file mode 100644
index 000000000..398678eea
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
@@ -0,0 +1,91 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uni-icons.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
new file mode 100644
index 000000000..7da53560f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
@@ -0,0 +1,110 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons.css"
new file mode 100644
index 000000000..0a6b6fea1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons.css"
@@ -0,0 +1,664 @@
+
+.uniui-cart-filled:before {
+ content: "\e6d0";
+}
+
+.uniui-gift-filled:before {
+ content: "\e6c4";
+}
+
+.uniui-color:before {
+ content: "\e6cf";
+}
+
+.uniui-wallet:before {
+ content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+ content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+ content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+ content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+ content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+ content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+ content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+ content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+ content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+ content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+ content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+ content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+ content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+ content: "\e6c3";
+}
+
+.uniui-fire-filled:before {
+ content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+ content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+ content: "\e6af";
+}
+
+.uniui-person-filled:before {
+ content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+ content: "\e698";
+}
+
+.uniui-arrowthinleft:before {
+ content: "\e6d2";
+}
+
+.uniui-arrowthinup:before {
+ content: "\e6d3";
+}
+
+.uniui-arrowthindown:before {
+ content: "\e6d4";
+}
+
+.uniui-back:before {
+ content: "\e6b9";
+}
+
+.uniui-forward:before {
+ content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+ content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+ content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+ content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+ content: "\e6be";
+}
+
+.uniui-arrowthinright:before {
+ content: "\e6d1";
+}
+
+.uniui-down:before {
+ content: "\e6b8";
+}
+
+.uniui-bottom:before {
+ content: "\e6b8";
+}
+
+.uniui-arrowright:before {
+ content: "\e6d5";
+}
+
+.uniui-right:before {
+ content: "\e6b5";
+}
+
+.uniui-up:before {
+ content: "\e6b6";
+}
+
+.uniui-top:before {
+ content: "\e6b6";
+}
+
+.uniui-left:before {
+ content: "\e6b7";
+}
+
+.uniui-arrowup:before {
+ content: "\e6d6";
+}
+
+.uniui-eye:before {
+ content: "\e651";
+}
+
+.uniui-eye-filled:before {
+ content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+ content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+ content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+ content: "\e649";
+}
+
+.uniui-reload:before {
+ content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+ content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+ content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+ content: "\e6ad";
+}
+
+.uniui-location:before {
+ content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+ content: "\e683";
+}
+
+.uniui-star:before {
+ content: "\e688";
+}
+
+.uniui-star-filled:before {
+ content: "\e68f";
+}
+
+.uniui-calendar:before {
+ content: "\e6a0";
+}
+
+.uniui-fire:before {
+ content: "\e6a1";
+}
+
+.uniui-medal:before {
+ content: "\e6a2";
+}
+
+.uniui-font:before {
+ content: "\e6a3";
+}
+
+.uniui-gift:before {
+ content: "\e6a4";
+}
+
+.uniui-link:before {
+ content: "\e6a5";
+}
+
+.uniui-notification:before {
+ content: "\e6a6";
+}
+
+.uniui-staff:before {
+ content: "\e6a7";
+}
+
+.uniui-vip:before {
+ content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+ content: "\e6a9";
+}
+
+.uniui-tune:before {
+ content: "\e6aa";
+}
+
+.uniui-auth:before {
+ content: "\e6ab";
+}
+
+.uniui-person:before {
+ content: "\e699";
+}
+
+.uniui-email-filled:before {
+ content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+ content: "\e69b";
+}
+
+.uniui-phone:before {
+ content: "\e69c";
+}
+
+.uniui-email:before {
+ content: "\e69e";
+}
+
+.uniui-personadd:before {
+ content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+ content: "\e692";
+}
+
+.uniui-contact:before {
+ content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+ content: "\e694";
+}
+
+.uniui-contact-filled:before {
+ content: "\e695";
+}
+
+.uniui-chatboxes:before {
+ content: "\e696";
+}
+
+.uniui-chatbubble:before {
+ content: "\e697";
+}
+
+.uniui-upload-filled:before {
+ content: "\e68e";
+}
+
+.uniui-upload:before {
+ content: "\e690";
+}
+
+.uniui-weixin:before {
+ content: "\e691";
+}
+
+.uniui-compose:before {
+ content: "\e67f";
+}
+
+.uniui-qq:before {
+ content: "\e680";
+}
+
+.uniui-download-filled:before {
+ content: "\e681";
+}
+
+.uniui-pyq:before {
+ content: "\e682";
+}
+
+.uniui-sound:before {
+ content: "\e684";
+}
+
+.uniui-trash-filled:before {
+ content: "\e685";
+}
+
+.uniui-sound-filled:before {
+ content: "\e686";
+}
+
+.uniui-trash:before {
+ content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+ content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+ content: "\e68a";
+}
+
+.uniui-weibo:before {
+ content: "\e68b";
+}
+
+.uniui-videocam:before {
+ content: "\e68c";
+}
+
+.uniui-download:before {
+ content: "\e68d";
+}
+
+.uniui-help:before {
+ content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+ content: "\e67a";
+}
+
+.uniui-plusempty:before {
+ content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+ content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+ content: "\e67d";
+}
+
+.uniui-micoff:before {
+ content: "\e67e";
+}
+
+.uniui-closeempty:before {
+ content: "\e66c";
+}
+
+.uniui-clear:before {
+ content: "\e66d";
+}
+
+.uniui-navigate:before {
+ content: "\e66e";
+}
+
+.uniui-minus:before {
+ content: "\e66f";
+}
+
+.uniui-image:before {
+ content: "\e670";
+}
+
+.uniui-mic:before {
+ content: "\e671";
+}
+
+.uniui-paperplane:before {
+ content: "\e672";
+}
+
+.uniui-close:before {
+ content: "\e673";
+}
+
+.uniui-help-filled:before {
+ content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+ content: "\e675";
+}
+
+.uniui-plus:before {
+ content: "\e676";
+}
+
+.uniui-mic-filled:before {
+ content: "\e677";
+}
+
+.uniui-image-filled:before {
+ content: "\e678";
+}
+
+.uniui-locked-filled:before {
+ content: "\e668";
+}
+
+.uniui-info:before {
+ content: "\e669";
+}
+
+.uniui-locked:before {
+ content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+ content: "\e658";
+}
+
+.uniui-chat-filled:before {
+ content: "\e659";
+}
+
+.uniui-camera:before {
+ content: "\e65a";
+}
+
+.uniui-circle:before {
+ content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+ content: "\e65c";
+}
+
+.uniui-chat:before {
+ content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+ content: "\e65e";
+}
+
+.uniui-flag:before {
+ content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+ content: "\e660";
+}
+
+.uniui-gear-filled:before {
+ content: "\e661";
+}
+
+.uniui-home:before {
+ content: "\e662";
+}
+
+.uniui-home-filled:before {
+ content: "\e663";
+}
+
+.uniui-gear:before {
+ content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+ content: "\e665";
+}
+
+.uniui-map-filled:before {
+ content: "\e666";
+}
+
+.uniui-map:before {
+ content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+ content: "\e656";
+}
+
+.uniui-refresh:before {
+ content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+ content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+ content: "\e646";
+}
+
+.uniui-cloud-download:before {
+ content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+ content: "\e648";
+}
+
+.uniui-redo:before {
+ content: "\e64a";
+}
+
+.uniui-images-filled:before {
+ content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+ content: "\e64c";
+}
+
+.uniui-more:before {
+ content: "\e64d";
+}
+
+.uniui-more-filled:before {
+ content: "\e64e";
+}
+
+.uniui-undo:before {
+ content: "\e64f";
+}
+
+.uniui-images:before {
+ content: "\e650";
+}
+
+.uniui-paperclip:before {
+ content: "\e652";
+}
+
+.uniui-settings:before {
+ content: "\e653";
+}
+
+.uniui-search:before {
+ content: "\e654";
+}
+
+.uniui-redo-filled:before {
+ content: "\e655";
+}
+
+.uniui-list:before {
+ content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+ content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+ content: "\e63c";
+}
+
+.uniui-hand-down:before {
+ content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+ content: "\e63e";
+}
+
+.uniui-hand-up:before {
+ content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+ content: "\e641";
+}
+
+.uniui-mail-open:before {
+ content: "\e643";
+}
+
+.uniui-heart:before {
+ content: "\e639";
+}
+
+.uniui-loop:before {
+ content: "\e633";
+}
+
+.uniui-pulldown:before {
+ content: "\e632";
+}
+
+.uniui-scan:before {
+ content: "\e62a";
+}
+
+.uniui-bars:before {
+ content: "\e627";
+}
+
+.uniui-checkbox:before {
+ content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+ content: "\e62c";
+}
+
+.uniui-shop:before {
+ content: "\e62f";
+}
+
+.uniui-headphones:before {
+ content: "\e630";
+}
+
+.uniui-cart:before {
+ content: "\e631";
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons.ttf"
new file mode 100644
index 000000000..14696d038
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
new file mode 100644
index 000000000..98e93aa0d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
@@ -0,0 +1,664 @@
+
+export type IconsData = {
+ id : string
+ name : string
+ font_family : string
+ css_prefix_text : string
+ description : string
+ glyphs : Array
+}
+
+export type IconsDataItem = {
+ font_class : string
+ unicode : string
+}
+
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+] as IconsDataItem[]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
new file mode 100644
index 000000000..1cd11e159
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
@@ -0,0 +1,649 @@
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/package.json"
new file mode 100644
index 000000000..397be8394
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-icons",
+ "displayName": "uni-icons 图标",
+ "version": "2.0.9",
+ "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "icon",
+ "图标"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.2.14"
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y",
+ "app-uvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "y",
+ "快手": "y",
+ "飞书": "y",
+ "京东": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/readme.md"
new file mode 100644
index 000000000..86234ba1c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-icons/readme.md"
@@ -0,0 +1,8 @@
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+用于展示 icons 图标 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/changelog.md"
new file mode 100644
index 000000000..8f03f1d57
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/changelog.md"
@@ -0,0 +1,19 @@
+## 1.3.3(2022-01-20)
+- 新增 showText属性 ,是否显示文本
+## 1.3.2(2022-01-19)
+- 修复 nvue 平台下不显示文本的bug
+## 1.3.1(2022-01-19)
+- 修复 微信小程序平台样式选择器报警告的问题
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+## 1.2.1(2021-08-24)
+- 新增 支持国际化
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.8(2021-05-12)
+- 新增 组件示例地址
+## 1.1.7(2021-03-30)
+- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug
+## 1.1.6(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json"
new file mode 100644
index 000000000..a4f14a545
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "Pull up to show more",
+ "uni-load-more.contentrefresh": "loading...",
+ "uni-load-more.contentnomore": "No more data"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json"
new file mode 100644
index 000000000..f15d51050
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉显示更多",
+ "uni-load-more.contentrefresh": "正在加载...",
+ "uni-load-more.contentnomore": "没有更多数据了"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json"
new file mode 100644
index 000000000..a255c6ded
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉顯示更多",
+ "uni-load-more.contentrefresh": "正在加載...",
+ "uni-load-more.contentnomore": "沒有更多數據了"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"
new file mode 100644
index 000000000..e5eff4d65
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ status === 'more' ? contentdownText : status === 'loading' ? contentrefreshText : contentnomoreText }}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/package.json"
new file mode 100644
index 000000000..2fa6f040a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/package.json"
@@ -0,0 +1,86 @@
+{
+ "id": "uni-load-more",
+ "displayName": "uni-load-more 加载更多",
+ "version": "1.3.3",
+ "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "加载更多",
+ "load-more"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/readme.md"
new file mode 100644
index 000000000..54dc1fad2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-load-more/readme.md"
@@ -0,0 +1,14 @@
+
+
+### LoadMore 加载更多
+> **组件名:uni-load-more**
+> 代码块: `uLoadMore`
+
+
+用于列表中,做滚动加载使用,展示 loading 的各种状态。
+
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/changelog.md"
new file mode 100644
index 000000000..98d9d08cc
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/changelog.md"
@@ -0,0 +1,70 @@
+## 1.8.4(2023-11-15)
+- 新增 uni-popup 支持uni-app-x 注意暂时仅支持 `maskClick` `@open` `@close`
+## 1.8.3(2023-04-17)
+- 修复 uni-popup 重复打开时的 bug
+## 1.8.2(2023-02-02)
+- uni-popup-dialog 组件新增 inputType 属性
+## 1.8.1(2022-12-01)
+- 修复 nvue 下 v-show 报错
+## 1.8.0(2022-11-29)
+- 优化 主题样式
+## 1.7.9(2022-04-02)
+- 修复 弹出层内部无法滚动的bug
+## 1.7.8(2022-03-28)
+- 修复 小程序中高度错误的bug
+## 1.7.7(2022-03-17)
+- 修复 快速调用open出现问题的Bug
+## 1.7.6(2022-02-14)
+- 修复 safeArea 属性不能设置为false的bug
+## 1.7.5(2022-01-19)
+- 修复 isMaskClick 失效的bug
+## 1.7.4(2022-01-19)
+- 新增 cancelText \ confirmText 属性 ,可自定义文本
+- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色
+- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题
+## 1.7.3(2022-01-13)
+- 修复 设置 safeArea 属性不生效的bug
+## 1.7.2(2021-11-26)
+- 优化 组件示例
+## 1.7.1(2021-11-26)
+- 修复 vuedoc 文字错误
+## 1.7.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup)
+## 1.6.2(2021-08-24)
+- 新增 支持国际化
+## 1.6.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.6.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.5.0(2021-06-23)
+- 新增 mask-click 遮罩层点击事件
+## 1.4.5(2021-06-22)
+- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.4(2021-06-18)
+- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.3(2021-06-08)
+- 修复 错误的 watch 字段
+- 修复 safeArea 属性不生效的问题
+- 修复 点击内容,再点击遮罩无法关闭的Bug
+## 1.4.2(2021-05-12)
+- 新增 组件示例地址
+## 1.4.1(2021-04-29)
+- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
+## 1.4.0 (2021-04-29)
+- 新增 type 属性的 left\right 值,支持左右弹出
+- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
+- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
+- 新增 safeArea 属性,是否适配底部安全区
+- 修复 App\h5\微信小程序底部安全区占位不对的Bug
+- 修复 App 端弹出等待的Bug
+- 优化 提升低配设备性能,优化动画卡顿问题
+- 优化 更简单的组件自定义方式
+## 1.2.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.2.8(2021-02-05)
+- 调整为uni_modules目录规范
+## 1.2.7(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持 PC 端
+- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js"
new file mode 100644
index 000000000..6ef26a262
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js"
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ this.$once('hook:beforeDestroy', () => {
+ document.removeEventListener('keyup', listener)
+ })
+ },
+ render: () => {}
+}
+// #endif
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"
new file mode 100644
index 000000000..b5eee79a7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"
new file mode 100644
index 000000000..91370a829
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"
@@ -0,0 +1,143 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue"
new file mode 100644
index 000000000..5be76247a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue"
@@ -0,0 +1,187 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/en.json"
new file mode 100644
index 000000000..7f1bd06a0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/en.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "cancel",
+ "uni-popup.ok": "ok",
+ "uni-popup.placeholder": "pleace enter",
+ "uni-popup.title": "Hint",
+ "uni-popup.shareTitle": "Share to"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json"
new file mode 100644
index 000000000..5e3003cab
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "确定",
+ "uni-popup.placeholder": "请输入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json"
new file mode 100644
index 000000000..13e39eba1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "確定",
+ "uni-popup.placeholder": "請輸入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/keypress.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/keypress.js"
new file mode 100644
index 000000000..62dda461b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/keypress.js"
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ // this.$once('hook:beforeDestroy', () => {
+ // document.removeEventListener('keyup', listener)
+ // })
+ },
+ render: () => {}
+}
+// #endif
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/popup.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/popup.js"
new file mode 100644
index 000000000..c4e5781dd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/popup.js"
@@ -0,0 +1,26 @@
+
+export default {
+ data() {
+ return {
+
+ }
+ },
+ created(){
+ this.popup = this.getParent()
+ },
+ methods:{
+ /**
+ * 获取父元素实例
+ */
+ getParent(name = 'uniPopup') {
+ let parent = this.$parent;
+ let parentName = parent.$options.name;
+ while (parentName !== name) {
+ parent = parent.$parent;
+ if (!parent) return false
+ parentName = parent.$options.name;
+ }
+ return parent;
+ },
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue"
new file mode 100644
index 000000000..5eb8d5be6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue"
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/uni-popup.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"
new file mode 100644
index 000000000..139a05ef7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"
@@ -0,0 +1,473 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/package.json"
new file mode 100644
index 000000000..c3f3d1c9d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-popup",
+ "displayName": "uni-popup 弹出层",
+ "version": "1.8.4",
+ "description": " Popup 组件,提供常用的弹层",
+ "keywords": [
+ "uni-ui",
+ "弹出层",
+ "弹窗",
+ "popup",
+ "弹框"
+ ],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-transition"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/readme.md"
new file mode 100644
index 000000000..fdad4b3d7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-popup/readme.md"
@@ -0,0 +1,17 @@
+
+
+## Popup 弹出层
+> **组件名:uni-popup**
+> 代码块: `uPopup`
+> 关联组件:`uni-transition`
+
+
+弹出层组件,在应用中弹出一个消息提示窗口、提示框等
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/changelog.md"
new file mode 100644
index 000000000..8a98a6127
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/changelog.md"
@@ -0,0 +1,25 @@
+## 1.3.1(2022-02-25)
+- 修复 条件判断 `NaN` 错误的 bug
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate)
+## 1.2.2(2021-09-10)
+- 优化 默认值修改为 0 颗星
+## 1.2.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.2(2021-05-12)
+- 新增 组件示例地址
+## 1.1.1(2021-04-21)
+- 修复 布局变化后 uni-rate 星星计算不准确的 bug
+- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖
+## 1.1.0(2021-04-16)
+- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug
+
+## 1.0.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.8(2021-02-05)
+- 调整为uni_modules目录规范
+- 支持 pc 端
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/components/uni-rate/uni-rate.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/components/uni-rate/uni-rate.vue"
new file mode 100644
index 000000000..857f5f9c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/components/uni-rate/uni-rate.vue"
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/package.json"
new file mode 100644
index 000000000..64e8e3320
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-rate",
+ "displayName": "uni-rate 评分",
+ "version": "1.3.1",
+ "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "评分"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/readme.md"
new file mode 100644
index 000000000..eae7b5ced
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-rate/readme.md"
@@ -0,0 +1,12 @@
+
+
+## Rate 评分
+> **组件名:uni-rate**
+> 代码块: `uRate`
+> 关联组件:`uni-icons`
+
+
+评分组件,多用于购买商品后,对商品进行评价等场景
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/changelog.md"
new file mode 100644
index 000000000..b863bb0f5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/changelog.md"
@@ -0,0 +1,8 @@
+## 1.0.3(2022-01-21)
+- 优化 组件示例
+## 1.0.2(2021-11-22)
+- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题
+## 1.0.1(2021-11-22)
+- 修复 vue3中scss语法兼容问题
+## 1.0.0(2021-11-18)
+- init
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/index.scss"
new file mode 100644
index 000000000..1744a5f98
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/index.scss"
@@ -0,0 +1 @@
+@import './styles/index.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/package.json"
new file mode 100644
index 000000000..7cc0ccb73
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/package.json"
@@ -0,0 +1,82 @@
+{
+ "id": "uni-scss",
+ "displayName": "uni-scss 辅助样式",
+ "version": "1.0.3",
+ "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。",
+ "keywords": [
+ "uni-scss",
+ "uni-ui",
+ "辅助样式"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "category": [
+ "JS SDK",
+ "通用 SDK"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "n",
+ "联盟": "n"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/readme.md"
new file mode 100644
index 000000000..b7d1c25f3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/readme.md"
@@ -0,0 +1,4 @@
+`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/index.scss"
new file mode 100644
index 000000000..ffac4fecd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/index.scss"
@@ -0,0 +1,7 @@
+@import './setting/_variables.scss';
+@import './setting/_border.scss';
+@import './setting/_color.scss';
+@import './setting/_space.scss';
+@import './setting/_radius.scss';
+@import './setting/_text.scss';
+@import './setting/_styles.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_border.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_border.scss"
new file mode 100644
index 000000000..12a11c322
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_border.scss"
@@ -0,0 +1,3 @@
+.uni-border {
+ border: 1px $uni-border-1 solid;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_color.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_color.scss"
new file mode 100644
index 000000000..1ededd94d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_color.scss"
@@ -0,0 +1,66 @@
+
+// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
+// @mixin get-styles($k,$c) {
+// @if $k == size or $k == weight{
+// font-#{$k}:#{$c}
+// }@else{
+// #{$k}:#{$c}
+// }
+// }
+$uni-ui-color:(
+ // 主色
+ primary: $uni-primary,
+ primary-disable: $uni-primary-disable,
+ primary-light: $uni-primary-light,
+ // 辅助色
+ success: $uni-success,
+ success-disable: $uni-success-disable,
+ success-light: $uni-success-light,
+ warning: $uni-warning,
+ warning-disable: $uni-warning-disable,
+ warning-light: $uni-warning-light,
+ error: $uni-error,
+ error-disable: $uni-error-disable,
+ error-light: $uni-error-light,
+ info: $uni-info,
+ info-disable: $uni-info-disable,
+ info-light: $uni-info-light,
+ // 中性色
+ main-color: $uni-main-color,
+ base-color: $uni-base-color,
+ secondary-color: $uni-secondary-color,
+ extra-color: $uni-extra-color,
+ // 背景色
+ bg-color: $uni-bg-color,
+ // 边框颜色
+ border-1: $uni-border-1,
+ border-2: $uni-border-2,
+ border-3: $uni-border-3,
+ border-4: $uni-border-4,
+ // 黑色
+ black:$uni-black,
+ // 白色
+ white:$uni-white,
+ // 透明
+ transparent:$uni-transparent
+) !default;
+@each $key, $child in $uni-ui-color {
+ .uni-#{"" + $key} {
+ color: $child;
+ }
+ .uni-#{"" + $key}-bg {
+ background-color: $child;
+ }
+}
+.uni-shadow-sm {
+ box-shadow: $uni-shadow-sm;
+}
+.uni-shadow-base {
+ box-shadow: $uni-shadow-base;
+}
+.uni-shadow-lg {
+ box-shadow: $uni-shadow-lg;
+}
+.uni-mask {
+ background-color:$uni-mask;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_radius.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_radius.scss"
new file mode 100644
index 000000000..9a0428bb8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_radius.scss"
@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+ $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+ // Key exists within the $uni-radius variable
+ @if (map-has-key($uni-radius, $r) and $d){
+ @if $d == t {
+ border-top-left-radius:$radius-value;
+ border-top-right-radius:$radius-value;
+ }@else if $d == r {
+ border-top-right-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == b {
+ border-bottom-left-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == l {
+ border-top-left-radius:$radius-value;
+ border-bottom-left-radius:$radius-value;
+ }@else if $d == tl {
+ border-top-left-radius:$radius-value;
+ }@else if $d == tr {
+ border-top-right-radius:$radius-value;
+ }@else if $d == br {
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == bl {
+ border-bottom-left-radius:$radius-value;
+ }
+ }@else{
+ border-radius:$radius-value;
+ }
+}
+
+@each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $key} {
+ @include radius($key)
+ }
+ }@else{
+ .uni-radius {
+ @include radius($key)
+ }
+ }
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+ @each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $direction}-#{"" + $key} {
+ @include radius($key,$direction,false)
+ }
+ }@else{
+ .uni-radius-#{$direction} {
+ @include radius($key,$direction,false)
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_space.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_space.scss"
new file mode 100644
index 000000000..3c8952897
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_space.scss"
@@ -0,0 +1,56 @@
+
+@mixin fn($space,$direction,$size,$n) {
+ @if $n {
+ #{$space}-#{$direction}: #{$size*$uni-space-root}px
+ } @else {
+ #{$space}-#{$direction}: #{-$size*$uni-space-root}px
+ }
+}
+@mixin get-styles($direction,$i,$space,$n){
+ @if $direction == t {
+ @include fn($space, top,$i,$n);
+ }
+ @if $direction == r {
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == b {
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == l {
+ @include fn($space, left,$i,$n);
+ }
+ @if $direction == x {
+ @include fn($space, left,$i,$n);
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == y {
+ @include fn($space, top,$i,$n);
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == a {
+ @if $n {
+ #{$space}:#{$i*$uni-space-root}px;
+ } @else {
+ #{$space}:#{-$i*$uni-space-root}px;
+ }
+ }
+}
+
+@each $orientation in m,p {
+ $space: margin;
+ @if $orientation == m {
+ $space: margin;
+ } @else {
+ $space: padding;
+ }
+ @for $i from 0 through 16 {
+ @each $direction in t, r, b, l, x, y, a {
+ .uni-#{$orientation}#{$direction}-#{$i} {
+ @include get-styles($direction,$i,$space,true);
+ }
+ .uni-#{$orientation}#{$direction}-n#{$i} {
+ @include get-styles($direction,$i,$space,false);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_styles.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_styles.scss"
new file mode 100644
index 000000000..689afec66
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_styles.scss"
@@ -0,0 +1,167 @@
+/* #ifndef APP-NVUE */
+
+$-color-white:#fff;
+$-color-black:#000;
+@mixin base-style($color) {
+ color: #fff;
+ background-color: $color;
+ border-color: mix($-color-black, $color, 8%);
+ &:not([hover-class]):active {
+ background: mix($-color-black, $color, 10%);
+ border-color: mix($-color-black, $color, 20%);
+ color: $-color-white;
+ outline: none;
+ }
+}
+@mixin is-color($color) {
+ @include base-style($color);
+ &[loading] {
+ @include base-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &[loading],
+ &:not([hover-class]):active {
+ color: $-color-white;
+ border-color: mix(darken($color,10%), $-color-white);
+ background-color: mix($color, $-color-white);
+ }
+ }
+
+}
+@mixin base-plain-style($color) {
+ color:$color;
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 70%);
+ &:not([hover-class]):active {
+ background: mix($-color-white, $color, 80%);
+ color: $color;
+ outline: none;
+ border-color: mix($-color-white, $color, 50%);
+ }
+}
+@mixin is-plain($color){
+ &[plain] {
+ @include base-plain-style($color);
+ &[loading] {
+ @include base-plain-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &:active {
+ color: mix($-color-white, $color, 40%);
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 80%);
+ }
+ }
+ }
+}
+
+
+.uni-btn {
+ margin: 5px;
+ color: #393939;
+ border:1px solid #ccc;
+ font-size: 16px;
+ font-weight: 200;
+ background-color: #F9F9F9;
+ // TODO 暂时处理边框隐藏一边的问题
+ overflow: visible;
+ &::after{
+ border: none;
+ }
+
+ &:not([type]),&[type=default] {
+ color: #999;
+ &[loading] {
+ background: none;
+ &::before {
+ margin-right:5px;
+ }
+ }
+
+
+
+ &[disabled]{
+ color: mix($-color-white, #999, 60%);
+ &,
+ &[loading],
+ &:active {
+ color: mix($-color-white, #999, 60%);
+ background-color: mix($-color-white,$-color-black , 98%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+
+ &[plain] {
+ color: #999;
+ background: none;
+ border-color: $uni-border-1;
+ &:not([hover-class]):active {
+ background: none;
+ color: mix($-color-white, $-color-black, 80%);
+ border-color: mix($-color-white, $-color-black, 90%);
+ outline: none;
+ }
+ &[disabled]{
+ &,
+ &[loading],
+ &:active {
+ background: none;
+ color: mix($-color-white, #999, 60%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+ }
+ }
+
+ &:not([hover-class]):active {
+ color: mix($-color-white, $-color-black, 50%);
+ }
+
+ &[size=mini] {
+ font-size: 16px;
+ font-weight: 200;
+ border-radius: 8px;
+ }
+
+
+
+ &.uni-btn-small {
+ font-size: 14px;
+ }
+ &.uni-btn-mini {
+ font-size: 12px;
+ }
+
+ &.uni-btn-radius {
+ border-radius: 999px;
+ }
+ &[type=primary] {
+ @include is-color($uni-primary);
+ @include is-plain($uni-primary)
+ }
+ &[type=success] {
+ @include is-color($uni-success);
+ @include is-plain($uni-success)
+ }
+ &[type=error] {
+ @include is-color($uni-error);
+ @include is-plain($uni-error)
+ }
+ &[type=warning] {
+ @include is-color($uni-warning);
+ @include is-plain($uni-warning)
+ }
+ &[type=info] {
+ @include is-color($uni-info);
+ @include is-plain($uni-info)
+ }
+}
+/* #endif */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_text.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_text.scss"
new file mode 100644
index 000000000..a34d08f3f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_text.scss"
@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+ @if $k == size or $k == weight{
+ font-#{$k}:#{$c}
+ }@else{
+ #{$k}:#{$c}
+ }
+}
+
+@each $key, $child in $uni-headings {
+ /* #ifndef APP-NVUE */
+ .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ .container .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_variables.scss"
new file mode 100644
index 000000000..557d3d7c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/setting/_variables.scss"
@@ -0,0 +1,146 @@
+// @use "sass:math";
+@import '../tools/functions.scss';
+// 间距基础倍数
+$uni-space-root: 2 !default;
+// 边框半径默认值
+$uni-radius-root:5px !default;
+$uni-radius: () !default;
+// 边框半径断点
+$uni-radius: map-deep-merge(
+ (
+ 0: 0,
+ // TODO 当前版本暂时不支持 sm 属性
+ // 'sm': math.div($uni-radius-root, 2),
+ null: $uni-radius-root,
+ 'lg': $uni-radius-root * 2,
+ 'xl': $uni-radius-root * 6,
+ 'pill': 9999px,
+ 'circle': 50%
+ ),
+ $uni-radius
+);
+// 字体家族
+$body-font-family: 'Roboto', sans-serif !default;
+// 文本
+$heading-font-family: $body-font-family !default;
+$uni-headings: () !default;
+$letterSpacing: -0.01562em;
+$uni-headings: map-deep-merge(
+ (
+ 'h1': (
+ size: 32px,
+ weight: 300,
+ line-height: 50px,
+ // letter-spacing:-0.01562em
+ ),
+ 'h2': (
+ size: 28px,
+ weight: 300,
+ line-height: 40px,
+ // letter-spacing: -0.00833em
+ ),
+ 'h3': (
+ size: 24px,
+ weight: 400,
+ line-height: 32px,
+ // letter-spacing: normal
+ ),
+ 'h4': (
+ size: 20px,
+ weight: 400,
+ line-height: 30px,
+ // letter-spacing: 0.00735em
+ ),
+ 'h5': (
+ size: 16px,
+ weight: 400,
+ line-height: 24px,
+ // letter-spacing: normal
+ ),
+ 'h6': (
+ size: 14px,
+ weight: 500,
+ line-height: 18px,
+ // letter-spacing: 0.0125em
+ ),
+ 'subtitle': (
+ size: 12px,
+ weight: 400,
+ line-height: 20px,
+ // letter-spacing: 0.00937em
+ ),
+ 'body': (
+ font-size: 14px,
+ font-weight: 400,
+ line-height: 22px,
+ // letter-spacing: 0.03125em
+ ),
+ 'caption': (
+ 'size': 12px,
+ 'weight': 400,
+ 'line-height': 20px,
+ // 'letter-spacing': 0.03333em,
+ // 'text-transform': false
+ )
+ ),
+ $uni-headings
+);
+
+
+
+// 主色
+$uni-primary: #2979ff !default;
+$uni-primary-disable:lighten($uni-primary,20%) !default;
+$uni-primary-light: lighten($uni-primary,25%) !default;
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37 !default;
+$uni-success-disable:lighten($uni-success,20%) !default;
+$uni-success-light: lighten($uni-success,25%) !default;
+
+$uni-warning: #f3a73f !default;
+$uni-warning-disable:lighten($uni-warning,20%) !default;
+$uni-warning-light: lighten($uni-warning,25%) !default;
+
+$uni-error: #e43d33 !default;
+$uni-error-disable:lighten($uni-error,20%) !default;
+$uni-error-light: lighten($uni-error,25%) !default;
+
+$uni-info: #8f939c !default;
+$uni-info-disable:lighten($uni-info,20%) !default;
+$uni-info-light: lighten($uni-info,25%) !default;
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a !default; // 主要文字
+$uni-base-color: #6a6a6a !default; // 常规文字
+$uni-secondary-color: #909399 !default; // 次要文字
+$uni-extra-color: #c7c7c7 !default; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0 !default;
+$uni-border-2: #EDEDED !default;
+$uni-border-3: #DCDCDC !default;
+$uni-border-4: #B9B9B9 !default;
+
+// 常规色
+$uni-black: #000000 !default;
+$uni-white: #ffffff !default;
+$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
+
+// 背景色
+$uni-bg-color: #f7f7f7 !default;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px !default;
+$uni-spacing-base: 15px !default;
+$uni-spacing-lg: 30px !default;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/tools/functions.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/tools/functions.scss"
new file mode 100644
index 000000000..ac6f63e53
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/styles/tools/functions.scss"
@@ -0,0 +1,19 @@
+// 合并 map
+@function map-deep-merge($parent-map, $child-map){
+ $result: $parent-map;
+ @each $key, $child in $child-map {
+ $parent-has-key: map-has-key($result, $key);
+ $parent-value: map-get($result, $key);
+ $parent-type: type-of($parent-value);
+ $child-type: type-of($child);
+ $parent-is-map: $parent-type == map;
+ $child-is-map: $child-type == map;
+
+ @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
+ $result: map-merge($result, ( $key: $child ));
+ }@else {
+ $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
+ }
+ }
+ @return $result;
+};
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/theme.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/theme.scss"
new file mode 100644
index 000000000..80ee62f7d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/theme.scss"
@@ -0,0 +1,31 @@
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+// 主色
+$uni-primary: #2979ff;
+// 辅助色
+$uni-success: #4cd964;
+// 警告色
+$uni-warning: #f0ad4e;
+// 错误色
+$uni-error: #dd524d;
+// 描述色
+$uni-info: #909399;
+// 中性色
+$uni-main-color: #303133;
+$uni-base-color: #606266;
+$uni-secondary-color: #909399;
+$uni-extra-color: #C0C4CC;
+// 背景色
+$uni-bg-color: #f5f5f5;
+// 边框颜色
+$uni-border-1: #DCDFE6;
+$uni-border-2: #E4E7ED;
+$uni-border-3: #EBEEF5;
+$uni-border-4: #F2F6FC;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/variables.scss"
new file mode 100644
index 000000000..1c062d42b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-scss/variables.scss"
@@ -0,0 +1,62 @@
+@import './styles/setting/_variables.scss';
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+
+// 主色
+$uni-primary: #2979ff;
+$uni-primary-disable:mix(#fff,$uni-primary,50%);
+$uni-primary-light: mix(#fff,$uni-primary,80%);
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37;
+$uni-success-disable:mix(#fff,$uni-success,50%);
+$uni-success-light: mix(#fff,$uni-success,80%);
+
+$uni-warning: #f3a73f;
+$uni-warning-disable:mix(#fff,$uni-warning,50%);
+$uni-warning-light: mix(#fff,$uni-warning,80%);
+
+$uni-error: #e43d33;
+$uni-error-disable:mix(#fff,$uni-error,50%);
+$uni-error-light: mix(#fff,$uni-error,80%);
+
+$uni-info: #8f939c;
+$uni-info-disable:mix(#fff,$uni-info,50%);
+$uni-info-light: mix(#fff,$uni-info,80%);
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a; // 主要文字
+$uni-base-color: #6a6a6a; // 常规文字
+$uni-secondary-color: #909399; // 次要文字
+$uni-extra-color: #c7c7c7; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0;
+$uni-border-2: #EDEDED;
+$uni-border-3: #DCDCDC;
+$uni-border-4: #B9B9B9;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
+
+// 背景色
+$uni-bg-color: #f7f7f7;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px;
+$uni-spacing-base: 15px;
+$uni-spacing-lg: 30px;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/changelog.md"
new file mode 100644
index 000000000..ba9b93c06
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/changelog.md"
@@ -0,0 +1,37 @@
+## 1.2.5(2024-01-31)
+- 修复 uni-search-bar居中问题,现在默认居左,并修复样式偏移问题
+## 1.2.4(2023-05-09)
+- 修复 i18n 国际化不正确的 Bug
+## 1.2.3(2022-05-24)
+- 新增 readonly 属性,组件只读
+## 1.2.2(2022-05-06)
+- 修复 vue3 input 事件不生效的bug
+## 1.2.1(2022-05-06)
+- 修复 多余代码导致的bug
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar)
+## 1.1.2(2021-08-30)
+- 修复 value 属性与 modelValue 属性不兼容的Bug
+## 1.1.1(2021-08-24)
+- 新增 支持国际化
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.9(2021-05-12)
+- 新增 项目示例地址
+## 1.0.8(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 1.0.7(2021-04-15)
+- uni-ui 新增 uni-search-bar 的 focus 事件
+
+## 1.0.6(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.5(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持双向绑定
+- 更改 input 事件的返回值,e={value:Number} --> e=value
+- 新增 支持图标插槽
+- 新增 支持 clear、blur 事件
+- 新增 支持 focus 属性
+- 去掉组件背景色
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json"
new file mode 100644
index 000000000..dd083a535
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json"
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "cancel",
+ "uni-search-bar.placeholder": "Search enter content"
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json"
new file mode 100644
index 000000000..d2a1ced4b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json"
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "取消",
+ "uni-search-bar.placeholder": "请输入搜索内容"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json"
new file mode 100644
index 000000000..f1c96bc46
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json"
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "取消",
+ "uni-search-bar.placeholder": "請輸入搜索內容"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue"
new file mode 100644
index 000000000..9e81cff08
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue"
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+ {{cancelTextI18n}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/package.json"
new file mode 100644
index 000000000..a88abf531
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/package.json"
@@ -0,0 +1,86 @@
+{
+ "id": "uni-search-bar",
+ "displayName": "uni-search-bar 搜索栏",
+ "version": "1.2.5",
+ "description": "搜索栏组件,通常用于搜索商品、文章等",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "搜索框",
+ "搜索栏"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/readme.md"
new file mode 100644
index 000000000..253092f0b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-search-bar/readme.md"
@@ -0,0 +1,14 @@
+
+
+## SearchBar 搜索栏
+
+> **组件名:uni-search-bar**
+> 代码块: `uSearchBar`
+
+
+搜索栏组件
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/changelog.md"
new file mode 100644
index 000000000..c0c5839b1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/changelog.md"
@@ -0,0 +1,21 @@
+## 2.1.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag)
+## 2.0.0(2021-11-09)
+- 新增 提供组件设计资源,组件样式调整
+- 移除 插槽
+- 移除 type 属性的 royal 选项
+## 1.1.1(2021-08-11)
+- type 不是 default 时,size 为 small 字体大小显示不正确
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.7(2021-06-18)
+- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug
+## 1.0.6(2021-06-04)
+- 修复 未定义 sass 变量 "$uni-color-royal" 的bug
+## 1.0.5(2021-05-10)
+- 修复 royal 类型无效的bug
+- 修复 uni-tag 宽度不自适应的bug
+- 新增 uni-tag 支持属性 custom-style 自定义样式
+## 1.0.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/components/uni-tag/uni-tag.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"
new file mode 100644
index 000000000..418c95504
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"
@@ -0,0 +1,252 @@
+
+ {{text}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/package.json"
new file mode 100644
index 000000000..187808863
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-tag",
+ "displayName": "uni-tag 标签",
+ "version": "2.1.0",
+ "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "",
+ "tag",
+ "标签"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/readme.md"
new file mode 100644
index 000000000..6e78ff5e4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-tag/readme.md"
@@ -0,0 +1,13 @@
+
+
+## Tag 标签
+> **组件名:uni-tag**
+> 代码块: `uTag`
+
+
+用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/changelog.md"
new file mode 100644
index 000000000..70c1cd4bf
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/changelog.md"
@@ -0,0 +1,22 @@
+## 1.3.2(2023-05-04)
+- 修复 NVUE 平台报错的问题
+## 1.3.1(2021-11-23)
+- 修复 init 方法初始化问题
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition)
+## 1.2.1(2021-09-27)
+- 修复 init 方法不生效的 Bug
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.1(2021-05-12)
+- 新增 示例地址
+- 修复 示例项目缺少组件的 Bug
+## 1.1.0(2021-04-22)
+- 新增 通过方法自定义动画
+- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式
+- 优化 动画触发逻辑,使动画更流畅
+- 优化 支持单独的动画类型
+- 优化 文档示例
+## 1.0.2(2021-02-05)
+- 调整为 uni_modules 目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/components/uni-transition/createAnimation.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/components/uni-transition/createAnimation.js"
new file mode 100644
index 000000000..8f89b185c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/components/uni-transition/createAnimation.js"
@@ -0,0 +1,131 @@
+// const defaultOption = {
+// duration: 300,
+// timingFunction: 'linear',
+// delay: 0,
+// transformOrigin: '50% 50% 0'
+// }
+// #ifdef APP-NVUE
+const nvueAnimation = uni.requireNativePlugin('animation')
+// #endif
+class MPAnimation {
+ constructor(options, _this) {
+ this.options = options
+ // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误
+ this.animation = uni.createAnimation({
+ ...options
+ })
+ this.currentStepAnimates = {}
+ this.next = 0
+ this.$ = _this
+
+ }
+
+ _nvuePushAnimates(type, args) {
+ let aniObj = this.currentStepAnimates[this.next]
+ let styles = {}
+ if (!aniObj) {
+ styles = {
+ styles: {},
+ config: {}
+ }
+ } else {
+ styles = aniObj
+ }
+ if (animateTypes1.includes(type)) {
+ if (!styles.styles.transform) {
+ styles.styles.transform = ''
+ }
+ let unit = ''
+ if(type === 'rotate'){
+ unit = 'deg'
+ }
+ styles.styles.transform += `${type}(${args+unit}) `
+ } else {
+ styles.styles[type] = `${args}`
+ }
+ this.currentStepAnimates[this.next] = styles
+ }
+ _animateRun(styles = {}, config = {}) {
+ let ref = this.$.$refs['ani'].ref
+ if (!ref) return
+ return new Promise((resolve, reject) => {
+ nvueAnimation.transition(ref, {
+ styles,
+ ...config
+ }, res => {
+ resolve()
+ })
+ })
+ }
+
+ _nvueNextAnimate(animates, step = 0, fn) {
+ let obj = animates[step]
+ if (obj) {
+ let {
+ styles,
+ config
+ } = obj
+ this._animateRun(styles, config).then(() => {
+ step += 1
+ this._nvueNextAnimate(animates, step, fn)
+ })
+ } else {
+ this.currentStepAnimates = {}
+ typeof fn === 'function' && fn()
+ this.isEnd = true
+ }
+ }
+
+ step(config = {}) {
+ // #ifndef APP-NVUE
+ this.animation.step(config)
+ // #endif
+ // #ifdef APP-NVUE
+ this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config)
+ this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin
+ this.next++
+ // #endif
+ return this
+ }
+
+ run(fn) {
+ // #ifndef APP-NVUE
+ this.$.animationData = this.animation.export()
+ this.$.timer = setTimeout(() => {
+ typeof fn === 'function' && fn()
+ }, this.$.durationTime)
+ // #endif
+ // #ifdef APP-NVUE
+ this.isEnd = false
+ let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref
+ if(!ref) return
+ this._nvueNextAnimate(this.currentStepAnimates, 0, fn)
+ this.next = 0
+ // #endif
+ }
+}
+
+
+const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
+ 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
+ 'translateZ'
+]
+const animateTypes2 = ['opacity', 'backgroundColor']
+const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom']
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => {
+ MPAnimation.prototype[type] = function(...args) {
+ // #ifndef APP-NVUE
+ this.animation[type](...args)
+ // #endif
+ // #ifdef APP-NVUE
+ this._nvuePushAnimates(type, args)
+ // #endif
+ return this
+ }
+})
+
+export function createAnimation(option, _this) {
+ if(!_this) return
+ clearTimeout(_this.timer)
+ return new MPAnimation(option, _this)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/components/uni-transition/uni-transition.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"
new file mode 100644
index 000000000..bfbba933c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/package.json"
new file mode 100644
index 000000000..ea995a2a1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/package.json"
@@ -0,0 +1,84 @@
+{
+ "id": "uni-transition",
+ "displayName": "uni-transition 过渡动画",
+ "version": "1.3.2",
+ "description": "元素的简单过渡动画",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "动画",
+ "过渡",
+ "过渡动画"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/readme.md"
new file mode 100644
index 000000000..2f8a77e10
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uni-transition/readme.md"
@@ -0,0 +1,11 @@
+
+
+## Transition 过渡动画
+> **组件名:uni-transition**
+> 代码块: `uTransition`
+
+
+元素过渡动画
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/changelog.md"
new file mode 100644
index 000000000..a1cc2ada8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/changelog.md"
@@ -0,0 +1,13 @@
+## 1.0.5(2023-12-20)
+1. 优化
+## 1.0.4(2023-08-04)
+1. icon支持base64图片
+## 1.0.3(2023-07-17)
+1. 修复 uv-empty 恢复设置mode属性的内置图标
+## 1.0.2(2023-07-03)
+去除插槽判断,避免某些平台不显示的BUG
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-empty 内容为空
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/components/uv-empty/props.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/components/uv-empty/props.js"
new file mode 100644
index 000000000..26c282d6b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/components/uv-empty/props.js"
@@ -0,0 +1,60 @@
+export default {
+ props: {
+ // 内置图标名称,或图片路径,建议绝对路径
+ icon: {
+ type: String,
+ default: ''
+ },
+ // 提示文字
+ text: {
+ type: String,
+ default: ''
+ },
+ // 文字颜色
+ textColor: {
+ type: String,
+ default: '#c0c4cc'
+ },
+ // 文字大小
+ textSize: {
+ type: [String, Number],
+ default: 14
+ },
+ // 图标的颜色
+ iconColor: {
+ type: String,
+ default: '#c0c4cc'
+ },
+ // 图标的大小
+ iconSize: {
+ type: [String, Number],
+ default: 90
+ },
+ // 选择预置的图标类型
+ mode: {
+ type: String,
+ default: 'data'
+ },
+ // 图标宽度,单位px
+ width: {
+ type: [String, Number],
+ default: 160
+ },
+ // 图标高度,单位px
+ height: {
+ type: [String, Number],
+ default: 160
+ },
+ // 是否显示组件
+ show: {
+ type: Boolean,
+ default: true
+ },
+ // 组件距离上一个元素之间的距离,默认px单位
+ marginTop: {
+ type: [String, Number],
+ default: 0
+ },
+ ...uni.$uv?.props?.empty
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/components/uv-empty/uv-empty.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/components/uv-empty/uv-empty.vue"
new file mode 100644
index 000000000..22a9264b7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/components/uv-empty/uv-empty.vue"
@@ -0,0 +1,126 @@
+
+
+
+
+ {{text ? text : icons[mode]}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/package.json"
new file mode 100644
index 000000000..e10f45145
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uv-empty",
+ "displayName": "uv-empty 内容为空 全面兼容vue3+2、app、h5、小程序等多端",
+ "version": "1.0.5",
+ "description": "该组件用于需要加载内容,但是加载的第一页数据就为空,提示一个 没有内容 的场景, 我们精心挑选了十几个场景的图标,方便您使用。",
+ "keywords": [
+ "empty",
+ "uvui",
+ "uv-ui",
+ "空数据",
+ "暂无数据"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-icon"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/readme.md"
new file mode 100644
index 000000000..ecef14d7a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-empty/readme.md"
@@ -0,0 +1,19 @@
+## Empty 内容为空
+
+> **组件名:uv-empty**
+
+该组件用于需要加载内容,但是加载的第一页数据就为空,提示一个"没有内容"的场景, 我们精心挑选了十几个场景的图标,方便您使用。
+
+# 查看文档
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) (请不要 下载插件ZIP)
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+
+
+
+
+
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/changelog.md"
new file mode 100644
index 000000000..c61082785
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/changelog.md"
@@ -0,0 +1,31 @@
+## 1.0.13(2023-12-06)
+1. 优化
+## 1.0.12(2023-12-06)
+1. 阻止事件冒泡处理
+## 1.0.11(2023-10-29)
+1. imgMode默认值改成aspectFit
+## 1.0.10(2023-08-13)
+1. 优化nvue,方便自定义图标
+## 1.0.9(2023-07-28)
+1. 修改几个对应错误图标的BUG
+## 1.0.8(2023-07-24)
+1. 优化 支持base64图片
+## 1.0.7(2023-07-17)
+1. 修复 uv-icon 恢复uv-empty相关的图标
+## 1.0.6(2023-07-13)
+1. 修复icon设置name属性对应图标错误的BUG
+## 1.0.5(2023-07-04)
+1. 更新图标,删除一些不常用的图标
+2. 删除base64,修改成ttf文件引入读取图标
+3. 自定义图标文档说明:https://www.uvui.cn/guide/customIcon.html
+## 1.0.4(2023-07-03)
+1. 修复主题颜色在APP不生效的BUG
+## 1.0.3(2023-05-24)
+1. 将线上ttf字体包替换成base64,避免加载时或者网络差时候显示白色方块
+## 1.0.2(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.1(2023-05-10)
+1. 修复小程序中异常显示
+## 1.0.0(2023-05-04)
+新发版
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/icons.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/icons.js"
new file mode 100644
index 000000000..8469a2dab
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/icons.js"
@@ -0,0 +1,160 @@
+export default {
+ 'uvicon-level': 'e68f',
+ 'uvicon-checkbox-mark': 'e659',
+ 'uvicon-folder': 'e694',
+ 'uvicon-movie': 'e67c',
+ 'uvicon-star-fill': 'e61e',
+ 'uvicon-star': 'e618',
+ 'uvicon-phone-fill': 'e6ac',
+ 'uvicon-phone': 'e6ba',
+ 'uvicon-apple-fill': 'e635',
+ 'uvicon-backspace': 'e64d',
+ 'uvicon-attach': 'e640',
+ 'uvicon-empty-data': 'e671',
+ 'uvicon-empty-address': 'e68a',
+ 'uvicon-empty-favor': 'e662',
+ 'uvicon-empty-car': 'e657',
+ 'uvicon-empty-order': 'e66b',
+ 'uvicon-empty-list': 'e672',
+ 'uvicon-empty-search': 'e677',
+ 'uvicon-empty-permission': 'e67d',
+ 'uvicon-empty-news': 'e67e',
+ 'uvicon-empty-history': 'e685',
+ 'uvicon-empty-coupon': 'e69b',
+ 'uvicon-empty-page': 'e60e',
+ 'uvicon-empty-wifi-off': 'e6cc',
+ 'uvicon-reload': 'e627',
+ 'uvicon-order': 'e695',
+ 'uvicon-server-man': 'e601',
+ 'uvicon-search': 'e632',
+ 'uvicon-more-dot-fill': 'e66f',
+ 'uvicon-scan': 'e631',
+ 'uvicon-map': 'e665',
+ 'uvicon-map-fill': 'e6a8',
+ 'uvicon-tags': 'e621',
+ 'uvicon-tags-fill': 'e613',
+ 'uvicon-eye': 'e664',
+ 'uvicon-eye-fill': 'e697',
+ 'uvicon-eye-off': 'e69c',
+ 'uvicon-eye-off-outline': 'e688',
+ 'uvicon-mic': 'e66d',
+ 'uvicon-mic-off': 'e691',
+ 'uvicon-calendar': 'e65c',
+ 'uvicon-trash': 'e623',
+ 'uvicon-trash-fill': 'e6ce',
+ 'uvicon-play-left': 'e6bf',
+ 'uvicon-play-right': 'e6b3',
+ 'uvicon-minus': 'e614',
+ 'uvicon-plus': 'e625',
+ 'uvicon-info-circle': 'e69f',
+ 'uvicon-info-circle-fill': 'e6a7',
+ 'uvicon-question-circle': 'e622',
+ 'uvicon-question-circle-fill': 'e6bc',
+ 'uvicon-close': 'e65a',
+ 'uvicon-checkmark': 'e64a',
+ 'uvicon-checkmark-circle': 'e643',
+ 'uvicon-checkmark-circle-fill': 'e668',
+ 'uvicon-setting': 'e602',
+ 'uvicon-setting-fill': 'e6d0',
+ 'uvicon-heart': 'e6a2',
+ 'uvicon-heart-fill': 'e68b',
+ 'uvicon-camera': 'e642',
+ 'uvicon-camera-fill': 'e650',
+ 'uvicon-more-circle': 'e69e',
+ 'uvicon-more-circle-fill': 'e684',
+ 'uvicon-chat': 'e656',
+ 'uvicon-chat-fill': 'e63f',
+ 'uvicon-bag': 'e647',
+ 'uvicon-error-circle': 'e66e',
+ 'uvicon-error-circle-fill': 'e655',
+ 'uvicon-close-circle': 'e64e',
+ 'uvicon-close-circle-fill': 'e666',
+ 'uvicon-share': 'e629',
+ 'uvicon-share-fill': 'e6bb',
+ 'uvicon-share-square': 'e6c4',
+ 'uvicon-shopping-cart': 'e6cb',
+ 'uvicon-shopping-cart-fill': 'e630',
+ 'uvicon-bell': 'e651',
+ 'uvicon-bell-fill': 'e604',
+ 'uvicon-list': 'e690',
+ 'uvicon-list-dot': 'e6a9',
+ 'uvicon-zhifubao-circle-fill': 'e617',
+ 'uvicon-weixin-circle-fill': 'e6cd',
+ 'uvicon-weixin-fill': 'e620',
+ 'uvicon-qq-fill': 'e608',
+ 'uvicon-qq-circle-fill': 'e6b9',
+ 'uvicon-moments-circel-fill': 'e6c2',
+ 'uvicon-moments': 'e6a0',
+ 'uvicon-car': 'e64f',
+ 'uvicon-car-fill': 'e648',
+ 'uvicon-warning-fill': 'e6c7',
+ 'uvicon-warning': 'e6c1',
+ 'uvicon-clock-fill': 'e64b',
+ 'uvicon-clock': 'e66c',
+ 'uvicon-edit-pen': 'e65d',
+ 'uvicon-edit-pen-fill': 'e679',
+ 'uvicon-email': 'e673',
+ 'uvicon-email-fill': 'e683',
+ 'uvicon-minus-circle': 'e6a5',
+ 'uvicon-plus-circle': 'e603',
+ 'uvicon-plus-circle-fill': 'e611',
+ 'uvicon-file-text': 'e687',
+ 'uvicon-file-text-fill': 'e67f',
+ 'uvicon-pushpin': 'e6d1',
+ 'uvicon-pushpin-fill': 'e6b6',
+ 'uvicon-grid': 'e68c',
+ 'uvicon-grid-fill': 'e698',
+ 'uvicon-play-circle': 'e6af',
+ 'uvicon-play-circle-fill': 'e62a',
+ 'uvicon-pause-circle-fill': 'e60c',
+ 'uvicon-pause': 'e61c',
+ 'uvicon-pause-circle': 'e696',
+ 'uvicon-gift-fill': 'e6b0',
+ 'uvicon-gift': 'e680',
+ 'uvicon-kefu-ermai': 'e660',
+ 'uvicon-server-fill': 'e610',
+ 'uvicon-coupon-fill': 'e64c',
+ 'uvicon-coupon': 'e65f',
+ 'uvicon-integral': 'e693',
+ 'uvicon-integral-fill': 'e6b1',
+ 'uvicon-home-fill': 'e68e',
+ 'uvicon-home': 'e67b',
+ 'uvicon-account': 'e63a',
+ 'uvicon-account-fill': 'e653',
+ 'uvicon-thumb-down-fill': 'e628',
+ 'uvicon-thumb-down': 'e60a',
+ 'uvicon-thumb-up': 'e612',
+ 'uvicon-thumb-up-fill': 'e62c',
+ 'uvicon-lock-fill': 'e6a6',
+ 'uvicon-lock-open': 'e68d',
+ 'uvicon-lock-opened-fill': 'e6a1',
+ 'uvicon-lock': 'e69d',
+ 'uvicon-red-packet': 'e6c3',
+ 'uvicon-photo-fill': 'e6b4',
+ 'uvicon-photo': 'e60d',
+ 'uvicon-volume-off-fill': 'e6c8',
+ 'uvicon-volume-off': 'e6bd',
+ 'uvicon-volume-fill': 'e624',
+ 'uvicon-volume': 'e605',
+ 'uvicon-download': 'e670',
+ 'uvicon-arrow-up-fill': 'e636',
+ 'uvicon-arrow-down-fill': 'e638',
+ 'uvicon-play-left-fill': 'e6ae',
+ 'uvicon-play-right-fill': 'e6ad',
+ 'uvicon-arrow-downward': 'e634',
+ 'uvicon-arrow-leftward': 'e63b',
+ 'uvicon-arrow-rightward': 'e644',
+ 'uvicon-arrow-upward': 'e641',
+ 'uvicon-arrow-down': 'e63e',
+ 'uvicon-arrow-right': 'e63c',
+ 'uvicon-arrow-left': 'e646',
+ 'uvicon-arrow-up': 'e633',
+ 'uvicon-skip-back-left': 'e6c5',
+ 'uvicon-skip-forward-right': 'e61f',
+ 'uvicon-arrow-left-double': 'e637',
+ 'uvicon-man': 'e675',
+ 'uvicon-woman': 'e626',
+ 'uvicon-en': 'e6b8',
+ 'uvicon-twitte': 'e607',
+ 'uvicon-twitter-circle-fill': 'e6cf'
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/props.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/props.js"
new file mode 100644
index 000000000..7668cf960
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/props.js"
@@ -0,0 +1,90 @@
+export default {
+ props: {
+ // 图标类名
+ name: {
+ type: String,
+ default: ''
+ },
+ // 图标颜色,可接受主题色
+ color: {
+ type: String,
+ default: '#606266'
+ },
+ // 字体大小,单位px
+ size: {
+ type: [String, Number],
+ default: '16px'
+ },
+ // 是否显示粗体
+ bold: {
+ type: Boolean,
+ default: false
+ },
+ // 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
+ index: {
+ type: [String, Number],
+ default: null
+ },
+ // 触摸图标时的类名
+ hoverClass: {
+ type: String,
+ default: ''
+ },
+ // 自定义扩展前缀,方便用户扩展自己的图标库
+ customPrefix: {
+ type: String,
+ default: 'uvicon'
+ },
+ // 图标右边或者下面的文字
+ label: {
+ type: [String, Number],
+ default: ''
+ },
+ // label的位置,只能右边或者下边
+ labelPos: {
+ type: String,
+ default: 'right'
+ },
+ // label的大小
+ labelSize: {
+ type: [String, Number],
+ default: '15px'
+ },
+ // label的颜色
+ labelColor: {
+ type: String,
+ default: '#606266'
+ },
+ // label与图标的距离
+ space: {
+ type: [String, Number],
+ default: '3px'
+ },
+ // 图片的mode
+ imgMode: {
+ type: String,
+ default: 'aspectFit'
+ },
+ // 用于显示图片小图标时,图片的宽度
+ width: {
+ type: [String, Number],
+ default: ''
+ },
+ // 用于显示图片小图标时,图片的高度
+ height: {
+ type: [String, Number],
+ default: ''
+ },
+ // 用于解决某些情况下,让图标垂直居中的用途
+ top: {
+ type: [String, Number],
+ default: 0
+ },
+ // 是否阻止事件传播
+ stop: {
+ type: Boolean,
+ default: false
+ },
+ ...uni.$uv?.props?.icon
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/uv-icon.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/uv-icon.vue"
new file mode 100644
index 000000000..d61c9e5b3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/uv-icon.vue"
@@ -0,0 +1,226 @@
+
+
+
+ {{icon}}
+
+ {{ label }}
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/uvicons.ttf" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/uvicons.ttf"
new file mode 100644
index 000000000..9aedef864
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/components/uv-icon/uvicons.ttf" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/package.json"
new file mode 100644
index 000000000..0a838d5bd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/package.json"
@@ -0,0 +1,83 @@
+{
+ "id": "uv-icon",
+ "displayName": "uv-icon 图标 全面兼容vue3+2、app、h5、小程序等多端",
+ "version": "1.0.13",
+ "description": "基于字体的图标集,包含了大多数常见场景的图标,支持自定义,支持自定义图片图标等。可自定义颜色、大小。",
+ "keywords": [
+ "uv-ui,uvui,uv-icon,icon,图标,字体图标"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/readme.md"
new file mode 100644
index 000000000..d526e1a1a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-icon/readme.md"
@@ -0,0 +1,15 @@
+## uv-icon 图标库
+
+> **组件名:uv-icon**
+
+基于字体的图标集,包含了大多数常见场景的图标,支持自定义,支持自定义图片图标等。
+
+# 查看文档
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/changelog.md"
new file mode 100644
index 000000000..998373e4c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/changelog.md"
@@ -0,0 +1,76 @@
+## 1.1.25(2024-01-20)
+1.1.20版本更新
+## 1.1.24(2023-12-21)
+1. luch-request更新
+## 1.1.23(2023-12-12)
+1. 1.1.19版本
+## 1.1.22(2023-11-28)
+1. 优化
+## 1.1.21(2023-11-10)
+1. 1.1.17版本
+## 1.1.20(2023-10-30)
+1. 1.1.16版本
+## 1.1.19(2023-10-13)
+1. 兼容vue3
+## 1.1.18(2023-10-12)
+1. 1.1.15版本
+## 1.1.17(2023-09-27)
+1. 1.1.14版本发布
+## 1.1.16(2023-09-15)
+1. 1.1.13版本发布
+## 1.1.15(2023-09-15)
+1. 更新button.js相关按钮支持open-type="agreePrivacyAuthorization"
+## 1.1.14(2023-09-14)
+1. 优化dayjs
+## 1.1.13(2023-09-13)
+1. 优化,$uv中增加unit参数,方便组件中使用
+## 1.1.12(2023-09-10)
+1. 升级版本
+## 1.1.11(2023-09-04)
+1. 1.1.11版本
+## 1.1.10(2023-08-31)
+1. 修复customStyle和customClass存在冲突的问题
+## 1.1.9(2023-08-27)
+1. 版本升级
+2. 优化
+## 1.1.8(2023-08-24)
+1. 版本升级
+## 1.1.7(2023-08-22)
+1. 版本升级
+## 1.1.6(2023-08-18)
+uvui版本:1.1.6
+## 1.0.15(2023-08-14)
+1. 更新uvui版本号
+## 1.0.13(2023-08-06)
+1. 优化
+## 1.0.12(2023-08-06)
+1. 修改版本号
+## 1.0.11(2023-08-06)
+1. 路由增加events参数
+2. 路由拦截修复
+## 1.0.10(2023-08-01)
+1. 优化
+## 1.0.9(2023-06-28)
+优化openType.js
+## 1.0.8(2023-06-15)
+1. 修改支付宝报错的BUG
+## 1.0.7(2023-06-07)
+1. 解决微信小程序使用uvui提示 Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors
+2. 解决上述提示,需要在uni.scss配置$uvui-nvue-style: false; 然后在APP.vue下面引入uvui内置的基础样式:@import '@/uni_modules/uv-ui-tools/index.scss';
+## 1.0.6(2023-06-04)
+1. uv-ui-tools 优化工具组件,兼容更多功能
+2. 小程序分享功能优化等
+## 1.0.5(2023-06-02)
+1. 修改扩展使用mixin中方法的问题
+## 1.0.4(2023-05-23)
+1. 兼容百度小程序修改bem函数
+## 1.0.3(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.2(2023-05-10)
+1. 增加Http请求封装
+2. 优化
+## 1.0.1(2023-05-04)
+1. 修改名称及备注
+## 1.0.0(2023-05-04)
+1. uv-ui工具集首次发布
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue"
new file mode 100644
index 000000000..baf45e918
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue"
@@ -0,0 +1,6 @@
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/index.js"
new file mode 100644
index 000000000..71a8b6682
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/index.js"
@@ -0,0 +1,79 @@
+// 全局挂载引入http相关请求拦截插件
+import Request from './libs/luch-request'
+
+// 引入全局mixin
+import mixin from './libs/mixin/mixin.js'
+// 小程序特有的mixin
+import mpMixin from './libs/mixin/mpMixin.js'
+// #ifdef MP
+import mpShare from './libs/mixin/mpShare.js'
+// #endif
+
+// 路由封装
+import route from './libs/util/route.js'
+// 公共工具函数
+import * as index from './libs/function/index.js'
+// 防抖方法
+import debounce from './libs/function/debounce.js'
+// 节流方法
+import throttle from './libs/function/throttle.js'
+// 规则检验
+import * as test from './libs/function/test.js'
+
+// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
+import * as colorGradient from './libs/function/colorGradient.js'
+
+// 配置信息
+import config from './libs/config/config.js'
+// 平台
+import platform from './libs/function/platform'
+
+const $uv = {
+ route,
+ config,
+ test,
+ date: index.timeFormat, // 另名date
+ ...index,
+ colorGradient: colorGradient.colorGradient,
+ hexToRgb: colorGradient.hexToRgb,
+ rgbToHex: colorGradient.rgbToHex,
+ colorToRgba: colorGradient.colorToRgba,
+ http: new Request(),
+ debounce,
+ throttle,
+ platform,
+ mixin,
+ mpMixin
+}
+uni.$uv = $uv;
+const install = (Vue,options={}) => {
+ // #ifndef APP-NVUE
+ const cloneMixin = index.deepClone(mixin);
+ delete cloneMixin?.props?.customClass;
+ delete cloneMixin?.props?.customStyle;
+ Vue.mixin(cloneMixin);
+ // #ifdef MP
+ if(options.mpShare){
+ Vue.mixin(mpShare);
+ }
+ // #endif
+ // #endif
+ // #ifdef VUE2
+ // 时间格式化,同时两个名称,date和timeFormat
+ Vue.filter('timeFormat', (timestamp, format) => uni.$uv.timeFormat(timestamp, format));
+ Vue.filter('date', (timestamp, format) => uni.$uv.timeFormat(timestamp, format));
+ // 将多久以前的方法,注入到全局过滤器
+ Vue.filter('timeFrom', (timestamp, format) => uni.$uv.timeFrom(timestamp, format));
+ // 同时挂载到uni和Vue.prototype中
+ // #ifndef APP-NVUE
+ // 只有vue,挂载到Vue.prototype才有意义,因为nvue中全局Vue.prototype和Vue.mixin是无效的
+ Vue.prototype.$uv = $uv;
+ // #endif
+ // #endif
+ // #ifdef VUE3
+ Vue.config.globalProperties.$uv = $uv;
+ // #endif
+}
+export default {
+ install
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/index.scss"
new file mode 100644
index 000000000..8d05b8da9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/index.scss"
@@ -0,0 +1,7 @@
+// 引入公共基础类
+@import "./libs/css/common.scss";
+
+// 非nvue的样式
+/* #ifndef APP-NVUE */
+@import "./libs/css/vue.scss";
+/* #endif */
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/config/config.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/config/config.js"
new file mode 100644
index 000000000..f18ae7405
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/config/config.js"
@@ -0,0 +1,34 @@
+// 此版本发布于2024-01-20
+const version = '1.1.20'
+
+// 开发环境才提示,生产环境不会提示
+if (process.env.NODE_ENV === 'development') {
+ console.log(`\n %c uvui V${version} https://www.uvui.cn/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;');
+}
+
+export default {
+ v: version,
+ version,
+ // 主题名称
+ type: [
+ 'primary',
+ 'success',
+ 'info',
+ 'error',
+ 'warning'
+ ],
+ // 颜色部分,本来可以通过scss的:export导出供js使用,但是奈何nvue不支持
+ color: {
+ 'uv-primary': '#2979ff',
+ 'uv-warning': '#ff9900',
+ 'uv-success': '#19be6b',
+ 'uv-error': '#fa3534',
+ 'uv-info': '#909399',
+ 'uv-main-color': '#303133',
+ 'uv-content-color': '#606266',
+ 'uv-tips-color': '#909399',
+ 'uv-light-color': '#c0c4cc'
+ },
+ // 默认单位,可以通过配置为rpx,那么在用于传入组件大小参数为数值时,就默认为rpx
+ unit: 'px'
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/color.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/color.scss"
new file mode 100644
index 000000000..ce6574343
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/color.scss"
@@ -0,0 +1,32 @@
+$uv-main-color: #303133 !default;
+$uv-content-color: #606266 !default;
+$uv-tips-color: #909193 !default;
+$uv-light-color: #c0c4cc !default;
+$uv-border-color: #dadbde !default;
+$uv-bg-color: #f3f4f6 !default;
+$uv-disabled-color: #c8c9cc !default;
+
+$uv-primary: #3c9cff !default;
+$uv-primary-dark: #398ade !default;
+$uv-primary-disabled: #9acafc !default;
+$uv-primary-light: #ecf5ff !default;
+
+$uv-warning: #f9ae3d !default;
+$uv-warning-dark: #f1a532 !default;
+$uv-warning-disabled: #f9d39b !default;
+$uv-warning-light: #fdf6ec !default;
+
+$uv-success: #5ac725 !default;
+$uv-success-dark: #53c21d !default;
+$uv-success-disabled: #a9e08f !default;
+$uv-success-light: #f5fff0;
+
+$uv-error: #f56c6c !default;
+$uv-error-dark: #e45656 !default;
+$uv-error-disabled: #f7b2b2 !default;
+$uv-error-light: #fef0f0 !default;
+
+$uv-info: #909399 !default;
+$uv-info-dark: #767a82 !default;
+$uv-info-disabled: #c4c6c9 !default;
+$uv-info-light: #f4f4f5 !default;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/common.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/common.scss"
new file mode 100644
index 000000000..7ab99f8e8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/common.scss"
@@ -0,0 +1,100 @@
+// 超出行数,自动显示行尾省略号,最多5行
+// 来自uvui的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】
+@for $i from 1 through 5 {
+ .uv-line-#{$i} {
+ /* #ifdef APP-NVUE */
+ // nvue下,可以直接使用lines属性,这是weex特有样式
+ lines: $i;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex: 1;
+ /* #endif */
+
+ /* #ifndef APP-NVUE */
+ // vue下,单行和多行显示省略号需要单独处理
+ @if $i == '1' {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ } @else {
+ display: -webkit-box!important;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-break: break-all;
+ -webkit-line-clamp: $i;
+ -webkit-box-orient: vertical!important;
+ }
+ /* #endif */
+ }
+}
+$uv-bordercolor: #dadbde;
+@if variable-exists(uv-border-color) {
+ $uv-bordercolor: $uv-border-color;
+}
+
+// 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时,
+// App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效
+// 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important
+// 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现
+.uv-border {
+ border-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-style: solid;
+}
+
+.uv-border-top {
+ border-top-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+}
+
+.uv-border-left {
+ border-left-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-left-style: solid;
+}
+
+.uv-border-right {
+ border-right-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-right-style: solid;
+}
+
+.uv-border-bottom {
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-bottom-style: solid;
+}
+
+.uv-border-top-bottom {
+ border-top-width: 0.5px!important;
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+ border-bottom-style: solid;
+}
+
+// 去除button的所有默认样式,让其表现跟普通的view、text元素一样
+.uv-reset-button {
+ padding: 0;
+ background-color: transparent;
+ /* #ifndef APP-PLUS */
+ font-size: inherit;
+ line-height: inherit;
+ color: inherit;
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ border-width: 0;
+ /* #endif */
+}
+
+/* #ifndef APP-NVUE */
+.uv-reset-button::after {
+ border: none;
+}
+/* #endif */
+
+.uv-hover-class {
+ opacity: 0.7;
+}
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/components.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/components.scss"
new file mode 100644
index 000000000..81ce15d78
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/components.scss"
@@ -0,0 +1,23 @@
+@mixin flex($direction: row) {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: $direction;
+}
+
+/* #ifndef APP-NVUE */
+// 由于uvui是基于nvue环境进行开发的,此环境中普通元素默认为flex-direction: column;
+// 所以在非nvue中,需要对元素进行重置为flex-direction: column; 否则可能会表现异常
+$uvui-nvue-style: true !default;
+@if $uvui-nvue-style == true {
+ view, scroll-view, swiper-item {
+ display: flex;
+ flex-direction: column;
+ flex-shrink: 0;
+ flex-grow: 0;
+ flex-basis: auto;
+ align-items: stretch;
+ align-content: flex-start;
+ }
+}
+/* #endif */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/variable.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/variable.scss"
new file mode 100644
index 000000000..63903c974
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/variable.scss"
@@ -0,0 +1,111 @@
+// 超出行数,自动显示行尾省略号,最多5行
+// 来自uvui的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】
+@if variable-exists(show-lines) {
+ @for $i from 1 through 5 {
+ .uv-line-#{$i} {
+ /* #ifdef APP-NVUE */
+ // nvue下,可以直接使用lines属性,这是weex特有样式
+ lines: $i;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex: 1;
+ /* #endif */
+
+ /* #ifndef APP-NVUE */
+ // vue下,单行和多行显示省略号需要单独处理
+ @if $i == '1' {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ } @else {
+ display: -webkit-box!important;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-break: break-all;
+ -webkit-line-clamp: $i;
+ -webkit-box-orient: vertical!important;
+ }
+ /* #endif */
+ }
+ }
+}
+@if variable-exists(show-border) {
+ $uv-bordercolor: #dadbde;
+ @if variable-exists(uv-border-color) {
+ $uv-bordercolor: $uv-border-color;
+ }
+ // 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时,
+ // App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效
+ // 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important
+ // 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现
+ @if variable-exists(show-border-surround) {
+ .uv-border {
+ border-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-style: solid;
+ }
+ }
+ @if variable-exists(show-border-top) {
+ .uv-border-top {
+ border-top-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+ }
+ }
+ @if variable-exists(show-border-left) {
+ .uv-border-left {
+ border-left-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-left-style: solid;
+ }
+ }
+ @if variable-exists(show-border-right) {
+ .uv-border-right {
+ border-right-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-right-style: solid;
+ }
+ }
+ @if variable-exists(show-border-bottom) {
+ .uv-border-bottom {
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-bottom-style: solid;
+ }
+ }
+ @if variable-exists(show-border-top-bottom) {
+ .uv-border-top-bottom {
+ border-top-width: 0.5px!important;
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+ border-bottom-style: solid;
+ }
+ }
+}
+@if variable-exists(show-reset-button) {
+ // 去除button的所有默认样式,让其表现跟普通的view、text元素一样
+ .uv-reset-button {
+ padding: 0;
+ background-color: transparent;
+ /* #ifndef APP-PLUS */
+ font-size: inherit;
+ line-height: inherit;
+ color: inherit;
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ border-width: 0;
+ /* #endif */
+ }
+
+ /* #ifndef APP-NVUE */
+ .uv-reset-button::after {
+ border: none;
+ }
+ /* #endif */
+}
+@if variable-exists(show-hover) {
+ .uv-hover-class {
+ opacity: 0.7;
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/vue.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/vue.scss"
new file mode 100644
index 000000000..bdbefdda1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/css/vue.scss"
@@ -0,0 +1,40 @@
+// 历遍生成4个方向的底部安全区
+@each $d in top, right, bottom, left {
+ .uv-safe-area-inset-#{$d} {
+ padding-#{$d}: 0;
+ padding-#{$d}: constant(safe-area-inset-#{$d});
+ padding-#{$d}: env(safe-area-inset-#{$d});
+ }
+}
+
+//提升H5端uni.toast()的层级,避免被uvui的modal等遮盖
+/* #ifdef H5 */
+uni-toast {
+ z-index: 10090;
+}
+uni-toast .uni-toast {
+ z-index: 10090;
+}
+/* #endif */
+
+// 隐藏scroll-view的滚动条
+::-webkit-scrollbar {
+ display: none;
+ width: 0 !important;
+ height: 0 !important;
+ -webkit-appearance: none;
+ background: transparent;
+}
+
+$uvui-nvue-style: true !default;
+@if $uvui-nvue-style == false {
+ view, scroll-view, swiper-item {
+ display: flex;
+ flex-direction: column;
+ flex-shrink: 0;
+ flex-grow: 0;
+ flex-basis: auto;
+ align-items: stretch;
+ align-content: flex-start;
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/colorGradient.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/colorGradient.js"
new file mode 100644
index 000000000..55c188fc2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/colorGradient.js"
@@ -0,0 +1,134 @@
+/**
+ * 求两个颜色之间的渐变值
+ * @param {string} startColor 开始的颜色
+ * @param {string} endColor 结束的颜色
+ * @param {number} step 颜色等分的份额
+ * */
+function colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {
+ const startRGB = hexToRgb(startColor, false) // 转换为rgb数组模式
+ const startR = startRGB[0]
+ const startG = startRGB[1]
+ const startB = startRGB[2]
+
+ const endRGB = hexToRgb(endColor, false)
+ const endR = endRGB[0]
+ const endG = endRGB[1]
+ const endB = endRGB[2]
+
+ const sR = (endR - startR) / step // 总差值
+ const sG = (endG - startG) / step
+ const sB = (endB - startB) / step
+ const colorArr = []
+ for (let i = 0; i < step; i++) {
+ // 计算每一步的hex值
+ let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB
+ * i + startB))})`)
+ // 确保第一个颜色值为startColor的值
+ if (i === 0) hex = rgbToHex(startColor)
+ // 确保最后一个颜色值为endColor的值
+ if (i === step - 1) hex = rgbToHex(endColor)
+ colorArr.push(hex)
+ }
+ return colorArr
+}
+
+// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
+function hexToRgb(sColor, str = true) {
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+ sColor = String(sColor).toLowerCase()
+ if (sColor && reg.test(sColor)) {
+ if (sColor.length === 4) {
+ let sColorNew = '#'
+ for (let i = 1; i < 4; i += 1) {
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
+ }
+ sColor = sColorNew
+ }
+ // 处理六位的颜色值
+ const sColorChange = []
+ for (let i = 1; i < 7; i += 2) {
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
+ }
+ if (!str) {
+ return sColorChange
+ }
+ return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`
+ } if (/^(rgb|RGB)/.test(sColor)) {
+ const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
+ return arr.map((val) => Number(val))
+ }
+ return sColor
+}
+
+// 将rgb表示方式转换为hex表示方式
+function rgbToHex(rgb) {
+ const _this = rgb
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+ if (/^(rgb|RGB)/.test(_this)) {
+ const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
+ let strHex = '#'
+ for (let i = 0; i < aColor.length; i++) {
+ let hex = Number(aColor[i]).toString(16)
+ hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位
+ if (hex === '0') {
+ hex += hex
+ }
+ strHex += hex
+ }
+ if (strHex.length !== 7) {
+ strHex = _this
+ }
+ return strHex
+ } if (reg.test(_this)) {
+ const aNum = _this.replace(/#/, '').split('')
+ if (aNum.length === 6) {
+ return _this
+ } if (aNum.length === 3) {
+ let numHex = '#'
+ for (let i = 0; i < aNum.length; i += 1) {
+ numHex += (aNum[i] + aNum[i])
+ }
+ return numHex
+ }
+ } else {
+ return _this
+ }
+}
+
+/**
+* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
+* sHex为传入的十六进制的色值
+* alpha为rgba的透明度
+*/
+function colorToRgba(color, alpha) {
+ color = rgbToHex(color)
+ // 十六进制颜色值的正则表达式
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+ /* 16进制颜色转为RGB格式 */
+ let sColor = String(color).toLowerCase()
+ if (sColor && reg.test(sColor)) {
+ if (sColor.length === 4) {
+ let sColorNew = '#'
+ for (let i = 1; i < 4; i += 1) {
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
+ }
+ sColor = sColorNew
+ }
+ // 处理六位的颜色值
+ const sColorChange = []
+ for (let i = 1; i < 7; i += 2) {
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
+ }
+ // return sColorChange.join(',')
+ return `rgba(${sColorChange.join(',')},${alpha})`
+ }
+
+ return sColor
+}
+
+export {
+ colorGradient,
+ hexToRgb,
+ rgbToHex,
+ colorToRgba
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/debounce.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/debounce.js"
new file mode 100644
index 000000000..ad3996bb5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/debounce.js"
@@ -0,0 +1,29 @@
+let timeout = null
+
+/**
+ * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
+ *
+ * @param {Function} func 要执行的回调函数
+ * @param {Number} wait 延时的时间
+ * @param {Boolean} immediate 是否立即执行
+ * @return null
+ */
+function debounce(func, wait = 500, immediate = false) {
+ // 清除定时器
+ if (timeout !== null) clearTimeout(timeout)
+ // 立即执行,此类情况一般用不到
+ if (immediate) {
+ const callNow = !timeout
+ timeout = setTimeout(() => {
+ timeout = null
+ }, wait)
+ if (callNow) typeof func === 'function' && func()
+ } else {
+ // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
+ timeout = setTimeout(() => {
+ typeof func === 'function' && func()
+ }, wait)
+ }
+}
+
+export default debounce
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/digit.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/digit.js"
new file mode 100644
index 000000000..c8260a06e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/digit.js"
@@ -0,0 +1,167 @@
+let _boundaryCheckingState = true; // 是否进行越界检查的全局开关
+
+/**
+ * 把错误的数据转正
+ * @private
+ * @example strip(0.09999999999999998)=0.1
+ */
+function strip(num, precision = 15) {
+ return +parseFloat(Number(num).toPrecision(precision));
+}
+
+/**
+ * Return digits length of a number
+ * @private
+ * @param {*number} num Input number
+ */
+function digitLength(num) {
+ // Get digit length of e
+ const eSplit = num.toString().split(/[eE]/);
+ const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
+ return len > 0 ? len : 0;
+}
+
+/**
+ * 把小数转成整数,如果是小数则放大成整数
+ * @private
+ * @param {*number} num 输入数
+ */
+function float2Fixed(num) {
+ if (num.toString().indexOf('e') === -1) {
+ return Number(num.toString().replace('.', ''));
+ }
+ const dLen = digitLength(num);
+ return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);
+}
+
+/**
+ * 检测数字是否越界,如果越界给出提示
+ * @private
+ * @param {*number} num 输入数
+ */
+function checkBoundary(num) {
+ if (_boundaryCheckingState) {
+ if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {
+ console.warn(`${num} 超出了精度限制,结果可能不正确`);
+ }
+ }
+}
+
+/**
+ * 把递归操作扁平迭代化
+ * @param {number[]} arr 要操作的数字数组
+ * @param {function} operation 迭代操作
+ * @private
+ */
+function iteratorOperation(arr, operation) {
+ const [num1, num2, ...others] = arr;
+ let res = operation(num1, num2);
+
+ others.forEach((num) => {
+ res = operation(res, num);
+ });
+
+ return res;
+}
+
+/**
+ * 高精度乘法
+ * @export
+ */
+export function times(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, times);
+ }
+
+ const [num1, num2] = nums;
+ const num1Changed = float2Fixed(num1);
+ const num2Changed = float2Fixed(num2);
+ const baseNum = digitLength(num1) + digitLength(num2);
+ const leftValue = num1Changed * num2Changed;
+
+ checkBoundary(leftValue);
+
+ return leftValue / Math.pow(10, baseNum);
+}
+
+/**
+ * 高精度加法
+ * @export
+ */
+export function plus(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, plus);
+ }
+
+ const [num1, num2] = nums;
+ // 取最大的小数位
+ const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
+ // 把小数都转为整数然后再计算
+ return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
+}
+
+/**
+ * 高精度减法
+ * @export
+ */
+export function minus(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, minus);
+ }
+
+ const [num1, num2] = nums;
+ const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
+ return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
+}
+
+/**
+ * 高精度除法
+ * @export
+ */
+export function divide(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, divide);
+ }
+
+ const [num1, num2] = nums;
+ const num1Changed = float2Fixed(num1);
+ const num2Changed = float2Fixed(num2);
+ checkBoundary(num1Changed);
+ checkBoundary(num2Changed);
+ // 重要,这里必须用strip进行修正
+ return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
+}
+
+/**
+ * 四舍五入
+ * @export
+ */
+export function round(num, ratio) {
+ const base = Math.pow(10, ratio);
+ let result = divide(Math.round(Math.abs(times(num, base))), base);
+ if (num < 0 && result !== 0) {
+ result = times(result, -1);
+ }
+ // 位数不足则补0
+ return result;
+}
+
+/**
+ * 是否进行边界检查,默认开启
+ * @param flag 标记开关,true 为开启,false 为关闭,默认为 true
+ * @export
+ */
+export function enableBoundaryChecking(flag = true) {
+ _boundaryCheckingState = flag;
+}
+
+
+export default {
+ times,
+ plus,
+ minus,
+ divide,
+ round,
+ enableBoundaryChecking,
+};
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/index.js"
new file mode 100644
index 000000000..b35e0ab67
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/index.js"
@@ -0,0 +1,734 @@
+import { number, empty } from './test.js'
+import { round } from './digit.js'
+/**
+ * @description 如果value小于min,取min;如果value大于max,取max
+ * @param {number} min
+ * @param {number} max
+ * @param {number} value
+ */
+function range(min = 0, max = 0, value = 0) {
+ return Math.max(min, Math.min(max, Number(value)))
+}
+
+/**
+ * @description 用于获取用户传递值的px值 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分,如果是"xxxrpx"还需要用过uni.upx2px进行转换
+ * @param {number|string} value 用户传递值的px值
+ * @param {boolean} unit
+ * @returns {number|string}
+ */
+function getPx(value, unit = false) {
+ if (number(value)) {
+ return unit ? `${value}px` : Number(value)
+ }
+ // 如果带有rpx,先取出其数值部分,再转为px值
+ if (/(rpx|upx)$/.test(value)) {
+ return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value)))
+ }
+ return unit ? `${parseInt(value)}px` : parseInt(value)
+}
+
+/**
+ * @description 进行延时,以达到可以简写代码的目的 比如: await uni.$uv.sleep(20)将会阻塞20ms
+ * @param {number} value 堵塞时间 单位ms 毫秒
+ * @returns {Promise} 返回promise
+ */
+function sleep(value = 30) {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve()
+ }, value)
+ })
+}
+/**
+ * @description 运行期判断平台
+ * @returns {string} 返回所在平台(小写)
+ * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台
+ */
+function os() {
+ return uni.getSystemInfoSync().platform.toLowerCase()
+}
+/**
+ * @description 获取系统信息同步接口
+ * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
+ */
+function sys() {
+ return uni.getSystemInfoSync()
+}
+
+/**
+ * @description 取一个区间数
+ * @param {Number} min 最小值
+ * @param {Number} max 最大值
+ */
+function random(min, max) {
+ if (min >= 0 && max > 0 && max >= min) {
+ const gab = max - min + 1
+ return Math.floor(Math.random() * gab + min)
+ }
+ return 0
+}
+
+/**
+ * @param {Number} len uuid的长度
+ * @param {Boolean} firstU 将返回的首字母置为"u"
+ * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
+ */
+function guid(len = 32, firstU = true, radix = null) {
+ const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
+ const uuid = []
+ radix = radix || chars.length
+
+ if (len) {
+ // 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位
+ for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
+ } else {
+ let r
+ // rfc4122标准要求返回的uuid中,某些位为固定的字符
+ uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
+ uuid[14] = '4'
+
+ for (let i = 0; i < 36; i++) {
+ if (!uuid[i]) {
+ r = 0 | Math.random() * 16
+ uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]
+ }
+ }
+ }
+ // 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
+ if (firstU) {
+ uuid.shift()
+ return `u${uuid.join('')}`
+ }
+ return uuid.join('')
+}
+
+/**
+* @description 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法
+ this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx
+ 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name
+ 值(默认为undefined),就是查找最顶层的$parent
+* @param {string|undefined} name 父组件的参数名
+*/
+function $parent(name = undefined) {
+ let parent = this.$parent
+ // 通过while历遍,这里主要是为了H5需要多层解析的问题
+ while (parent) {
+ // 父组件
+ if (parent.$options && parent.$options.name !== name) {
+ // 如果组件的name不相等,继续上一级寻找
+ parent = parent.$parent
+ } else {
+ return parent
+ }
+ }
+ return false
+}
+
+/**
+ * @description 样式转换
+ * 对象转字符串,或者字符串转对象
+ * @param {object | string} customStyle 需要转换的目标
+ * @param {String} target 转换的目的,object-转为对象,string-转为字符串
+ * @returns {object|string}
+ */
+function addStyle(customStyle, target = 'object') {
+ // 字符串转字符串,对象转对象情形,直接返回
+ if (empty(customStyle) || typeof(customStyle) === 'object' && target === 'object' || target === 'string' &&
+ typeof(customStyle) === 'string') {
+ return customStyle
+ }
+ // 字符串转对象
+ if (target === 'object') {
+ // 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的
+ customStyle = trim(customStyle)
+ // 根据";"将字符串转为数组形式
+ const styleArray = customStyle.split(';')
+ const style = {}
+ // 历遍数组,拼接成对象
+ for (let i = 0; i < styleArray.length; i++) {
+ // 'font-size:20px;color:red;',如此最后字符串有";"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤
+ if (styleArray[i]) {
+ const item = styleArray[i].split(':')
+ style[trim(item[0])] = trim(item[1])
+ }
+ }
+ return style
+ }
+ // 这里为对象转字符串形式
+ let string = ''
+ for (const i in customStyle) {
+ // 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名
+ const key = i.replace(/([A-Z])/g, '-$1').toLowerCase()
+ string += `${key}:${customStyle[i]};`
+ }
+ // 去除两端空格
+ return trim(string)
+}
+
+/**
+ * @description 添加单位,如果有rpx,upx,%,px等单位结尾或者值为auto,直接返回,否则加上px单位结尾
+ * @param {string|number} value 需要添加单位的值
+ * @param {string} unit 添加的单位名 比如px
+ */
+function addUnit(value = 'auto', unit = uni?.$uv?.config?.unit ? uni?.$uv?.config?.unit : 'px') {
+ value = String(value)
+ // 用uvui内置验证规则中的number判断是否为数值
+ return number(value) ? `${value}${unit}` : value
+}
+
+/**
+ * @description 深度克隆
+ * @param {object} obj 需要深度克隆的对象
+ * @param cache 缓存
+ * @returns {*} 克隆后的对象或者原值(不是对象)
+ */
+function deepClone(obj, cache = new WeakMap()) {
+ if (obj === null || typeof obj !== 'object') return obj;
+ if (cache.has(obj)) return cache.get(obj);
+ let clone;
+ if (obj instanceof Date) {
+ clone = new Date(obj.getTime());
+ } else if (obj instanceof RegExp) {
+ clone = new RegExp(obj);
+ } else if (obj instanceof Map) {
+ clone = new Map(Array.from(obj, ([key, value]) => [key, deepClone(value, cache)]));
+ } else if (obj instanceof Set) {
+ clone = new Set(Array.from(obj, value => deepClone(value, cache)));
+ } else if (Array.isArray(obj)) {
+ clone = obj.map(value => deepClone(value, cache));
+ } else if (Object.prototype.toString.call(obj) === '[object Object]') {
+ clone = Object.create(Object.getPrototypeOf(obj));
+ cache.set(obj, clone);
+ for (const [key, value] of Object.entries(obj)) {
+ clone[key] = deepClone(value, cache);
+ }
+ } else {
+ clone = Object.assign({}, obj);
+ }
+ cache.set(obj, clone);
+ return clone;
+}
+
+/**
+ * @description JS对象深度合并
+ * @param {object} target 需要拷贝的对象
+ * @param {object} source 拷贝的来源对象
+ * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)
+ */
+function deepMerge(target = {}, source = {}) {
+ target = deepClone(target)
+ if (typeof target !== 'object' || target === null || typeof source !== 'object' || source === null) return target;
+ const merged = Array.isArray(target) ? target.slice() : Object.assign({}, target);
+ for (const prop in source) {
+ if (!source.hasOwnProperty(prop)) continue;
+ const sourceValue = source[prop];
+ const targetValue = merged[prop];
+ if (sourceValue instanceof Date) {
+ merged[prop] = new Date(sourceValue);
+ } else if (sourceValue instanceof RegExp) {
+ merged[prop] = new RegExp(sourceValue);
+ } else if (sourceValue instanceof Map) {
+ merged[prop] = new Map(sourceValue);
+ } else if (sourceValue instanceof Set) {
+ merged[prop] = new Set(sourceValue);
+ } else if (typeof sourceValue === 'object' && sourceValue !== null) {
+ merged[prop] = deepMerge(targetValue, sourceValue);
+ } else {
+ merged[prop] = sourceValue;
+ }
+ }
+ return merged;
+}
+
+/**
+ * @description error提示
+ * @param {*} err 错误内容
+ */
+function error(err) {
+ // 开发环境才提示,生产环境不会提示
+ if (process.env.NODE_ENV === 'development') {
+ console.error(`uvui提示:${err}`)
+ }
+}
+
+/**
+ * @description 打乱数组
+ * @param {array} array 需要打乱的数组
+ * @returns {array} 打乱后的数组
+ */
+function randomArray(array = []) {
+ // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0
+ return array.sort(() => Math.random() - 0.5)
+}
+
+// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序
+// 所以这里做一个兼容polyfill的兼容处理
+if (!String.prototype.padStart) {
+ // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
+ String.prototype.padStart = function(maxLength, fillString = ' ') {
+ if (Object.prototype.toString.call(fillString) !== '[object String]') {
+ throw new TypeError(
+ 'fillString must be String'
+ )
+ }
+ const str = this
+ // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
+ if (str.length >= maxLength) return String(str)
+
+ const fillLength = maxLength - str.length
+ let times = Math.ceil(fillLength / fillString.length)
+ while (times >>= 1) {
+ fillString += fillString
+ if (times === 1) {
+ fillString += fillString
+ }
+ }
+ return fillString.slice(0, fillLength) + str
+ }
+}
+
+/**
+ * @description 格式化时间
+ * @param {String|Number} dateTime 需要格式化的时间戳
+ * @param {String} fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd
+ * @returns {string} 返回格式化后的字符串
+ */
+function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') {
+ let date
+ // 若传入时间为假值,则取当前时间
+ if (!dateTime) {
+ date = new Date()
+ }
+ // 若为unix秒时间戳,则转为毫秒时间戳(逻辑有点奇怪,但不敢改,以保证历史兼容)
+ else if (/^\d{10}$/.test(dateTime?.toString().trim())) {
+ date = new Date(dateTime * 1000)
+ }
+ // 若用户传入字符串格式时间戳,new Date无法解析,需做兼容
+ else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) {
+ date = new Date(Number(dateTime))
+ }
+ // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间
+ // 处理 '2022-07-10 01:02:03',跳过 '2022-07-10T01:02:03'
+ else if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) {
+ date = new Date(dateTime.replace(/-/g, '/'))
+ }
+ // 其他都认为符合 RFC 2822 规范
+ else {
+ date = new Date(dateTime)
+ }
+
+ const timeSource = {
+ 'y': date.getFullYear().toString(), // 年
+ 'm': (date.getMonth() + 1).toString().padStart(2, '0'), // 月
+ 'd': date.getDate().toString().padStart(2, '0'), // 日
+ 'h': date.getHours().toString().padStart(2, '0'), // 时
+ 'M': date.getMinutes().toString().padStart(2, '0'), // 分
+ 's': date.getSeconds().toString().padStart(2, '0') // 秒
+ // 有其他格式化字符需求可以继续添加,必须转化成字符串
+ }
+
+ for (const key in timeSource) {
+ const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
+ if (ret) {
+ // 年可能只需展示两位
+ const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
+ formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
+ }
+ }
+
+ return formatStr
+}
+
+/**
+ * @description 时间戳转为多久之前
+ * @param {String|Number} timestamp 时间戳
+ * @param {String|Boolean} format
+ * 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;
+ * 如果为布尔值false,无论什么时间,都返回多久以前的格式
+ * @returns {string} 转化后的内容
+ */
+function timeFrom(timestamp = null, format = 'yyyy-mm-dd') {
+ if (timestamp == null) timestamp = Number(new Date())
+ timestamp = parseInt(timestamp)
+ // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)
+ if (timestamp.toString().length == 10) timestamp *= 1000
+ let timer = (new Date()).getTime() - timestamp
+ timer = parseInt(timer / 1000)
+ // 如果小于5分钟,则返回"刚刚",其他以此类推
+ let tips = ''
+ switch (true) {
+ case timer < 300:
+ tips = '刚刚'
+ break
+ case timer >= 300 && timer < 3600:
+ tips = `${parseInt(timer / 60)}分钟前`
+ break
+ case timer >= 3600 && timer < 86400:
+ tips = `${parseInt(timer / 3600)}小时前`
+ break
+ case timer >= 86400 && timer < 2592000:
+ tips = `${parseInt(timer / 86400)}天前`
+ break
+ default:
+ // 如果format为false,则无论什么时间戳,都显示xx之前
+ if (format === false) {
+ if (timer >= 2592000 && timer < 365 * 86400) {
+ tips = `${parseInt(timer / (86400 * 30))}个月前`
+ } else {
+ tips = `${parseInt(timer / (86400 * 365))}年前`
+ }
+ } else {
+ tips = timeFormat(timestamp, format)
+ }
+ }
+ return tips
+}
+
+/**
+ * @description 去除空格
+ * @param String str 需要去除空格的字符串
+ * @param String pos both(左右)|left|right|all 默认both
+ */
+function trim(str, pos = 'both') {
+ str = String(str)
+ if (pos == 'both') {
+ return str.replace(/^\s+|\s+$/g, '')
+ }
+ if (pos == 'left') {
+ return str.replace(/^\s*/, '')
+ }
+ if (pos == 'right') {
+ return str.replace(/(\s*$)/g, '')
+ }
+ if (pos == 'all') {
+ return str.replace(/\s+/g, '')
+ }
+ return str
+}
+
+/**
+ * @description 对象转url参数
+ * @param {object} data,对象
+ * @param {Boolean} isPrefix,是否自动加上"?"
+ * @param {string} arrayFormat 规则 indices|brackets|repeat|comma
+ */
+function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
+ const prefix = isPrefix ? '?' : ''
+ const _result = []
+ if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets'
+ for (const key in data) {
+ const value = data[key]
+ // 去掉为空的参数
+ if (['', undefined, null].indexOf(value) >= 0) {
+ continue
+ }
+ // 如果值为数组,另行处理
+ if (value.constructor === Array) {
+ // e.g. {ids: [1, 2, 3]}
+ switch (arrayFormat) {
+ case 'indices':
+ // 结果: ids[0]=1&ids[1]=2&ids[2]=3
+ for (let i = 0; i < value.length; i++) {
+ _result.push(`${key}[${i}]=${value[i]}`)
+ }
+ break
+ case 'brackets':
+ // 结果: ids[]=1&ids[]=2&ids[]=3
+ value.forEach((_value) => {
+ _result.push(`${key}[]=${_value}`)
+ })
+ break
+ case 'repeat':
+ // 结果: ids=1&ids=2&ids=3
+ value.forEach((_value) => {
+ _result.push(`${key}=${_value}`)
+ })
+ break
+ case 'comma':
+ // 结果: ids=1,2,3
+ let commaStr = ''
+ value.forEach((_value) => {
+ commaStr += (commaStr ? ',' : '') + _value
+ })
+ _result.push(`${key}=${commaStr}`)
+ break
+ default:
+ value.forEach((_value) => {
+ _result.push(`${key}[]=${_value}`)
+ })
+ }
+ } else {
+ _result.push(`${key}=${value}`)
+ }
+ }
+ return _result.length ? prefix + _result.join('&') : ''
+}
+
+/**
+ * 显示消息提示框
+ * @param {String} title 提示的内容,长度与 icon 取值有关。
+ * @param {Number} duration 提示的延迟时间,单位毫秒,默认:2000
+ */
+function toast(title, duration = 2000) {
+ uni.showToast({
+ title: String(title),
+ icon: 'none',
+ duration
+ })
+}
+
+/**
+ * @description 根据主题type值,获取对应的图标
+ * @param {String} type 主题名称,primary|info|error|warning|success
+ * @param {boolean} fill 是否使用fill填充实体的图标
+ */
+function type2icon(type = 'success', fill = false) {
+ // 如果非预置值,默认为success
+ if (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success'
+ let iconName = ''
+ // 目前(2019-12-12),info和primary使用同一个图标
+ switch (type) {
+ case 'primary':
+ iconName = 'info-circle'
+ break
+ case 'info':
+ iconName = 'info-circle'
+ break
+ case 'error':
+ iconName = 'close-circle'
+ break
+ case 'warning':
+ iconName = 'error-circle'
+ break
+ case 'success':
+ iconName = 'checkmark-circle'
+ break
+ default:
+ iconName = 'checkmark-circle'
+ }
+ // 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的
+ if (fill) iconName += '-fill'
+ return iconName
+}
+
+/**
+ * @description 数字格式化
+ * @param {number|string} number 要格式化的数字
+ * @param {number} decimals 保留几位小数
+ * @param {string} decimalPoint 小数点符号
+ * @param {string} thousandsSeparator 千分位符号
+ * @returns {string} 格式化后的数字
+ */
+function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') {
+ number = (`${number}`).replace(/[^0-9+-Ee.]/g, '')
+ const n = !isFinite(+number) ? 0 : +number
+ const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
+ const sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator
+ const dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint
+ let s = ''
+
+ s = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.')
+ const re = /(-?\d+)(\d{3})/
+ while (re.test(s[0])) {
+ s[0] = s[0].replace(re, `$1${sep}$2`)
+ }
+
+ if ((s[1] || '').length < prec) {
+ s[1] = s[1] || ''
+ s[1] += new Array(prec - s[1].length + 1).join('0')
+ }
+ return s.join(dec)
+}
+
+/**
+ * @description 获取duration值
+ * 如果带有ms或者s直接返回,如果大于一定值,认为是ms单位,小于一定值,认为是s单位
+ * 比如以30位阈值,那么300大于30,可以理解为用户想要的是300ms,而不是想花300s去执行一个动画
+ * @param {String|number} value 比如: "1s"|"100ms"|1|100
+ * @param {boolean} unit 提示: 如果是false 默认返回number
+ * @return {string|number}
+ */
+function getDuration(value, unit = true) {
+ const valueNum = parseInt(value)
+ if (unit) {
+ if (/s$/.test(value)) return value
+ return value > 30 ? `${value}ms` : `${value}s`
+ }
+ if (/ms$/.test(value)) return valueNum
+ if (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000
+ return valueNum
+}
+
+/**
+ * @description 日期的月或日补零操作
+ * @param {String} value 需要补零的值
+ */
+function padZero(value) {
+ return `00${value}`.slice(-2)
+}
+
+/**
+ * @description 在uv-form的子组件内容发生变化,或者失去焦点时,尝试通知uv-form执行校验方法
+ * @param {*} instance
+ * @param {*} event
+ */
+function formValidate(instance, event) {
+ const formItem = $parent.call(instance, 'uv-form-item')
+ const form = $parent.call(instance, 'uv-form')
+ // 如果发生变化的input或者textarea等,其父组件中有uv-form-item或者uv-form等,就执行form的validate方法
+ // 同时将form-item的pros传递给form,让其进行精确对象验证
+ if (formItem && form) {
+ form.validateField(formItem.prop, () => {}, event)
+ }
+}
+
+/**
+ * @description 获取某个对象下的属性,用于通过类似'a.b.c'的形式去获取一个对象的的属性的形式
+ * @param {object} obj 对象
+ * @param {string} key 需要获取的属性字段
+ * @returns {*}
+ */
+function getProperty(obj, key) {
+ if (!obj) {
+ return
+ }
+ if (typeof key !== 'string' || key === '') {
+ return ''
+ }
+ if (key.indexOf('.') !== -1) {
+ const keys = key.split('.')
+ let firstObj = obj[keys[0]] || {}
+
+ for (let i = 1; i < keys.length; i++) {
+ if (firstObj) {
+ firstObj = firstObj[keys[i]]
+ }
+ }
+ return firstObj
+ }
+ return obj[key]
+}
+
+/**
+ * @description 设置对象的属性值,如果'a.b.c'的形式进行设置
+ * @param {object} obj 对象
+ * @param {string} key 需要设置的属性
+ * @param {string} value 设置的值
+ */
+function setProperty(obj, key, value) {
+ if (!obj) {
+ return
+ }
+ // 递归赋值
+ const inFn = function(_obj, keys, v) {
+ // 最后一个属性key
+ if (keys.length === 1) {
+ _obj[keys[0]] = v
+ return
+ }
+ // 0~length-1个key
+ while (keys.length > 1) {
+ const k = keys[0]
+ if (!_obj[k] || (typeof _obj[k] !== 'object')) {
+ _obj[k] = {}
+ }
+ const key = keys.shift()
+ // 自调用判断是否存在属性,不存在则自动创建对象
+ inFn(_obj[k], keys, v)
+ }
+ }
+
+ if (typeof key !== 'string' || key === '') {
+
+ } else if (key.indexOf('.') !== -1) { // 支持多层级赋值操作
+ const keys = key.split('.')
+ inFn(obj, keys, value)
+ } else {
+ obj[key] = value
+ }
+}
+
+/**
+ * @description 获取当前页面路径
+ */
+function page() {
+ const pages = getCurrentPages();
+ const route = pages[pages.length - 1]?.route;
+ // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
+ return `/${route ? route : ''}`
+}
+
+/**
+ * @description 获取当前路由栈实例数组
+ */
+function pages() {
+ const pages = getCurrentPages()
+ return pages
+}
+
+/**
+ * 获取页面历史栈指定层实例
+ * @param back {number} [0] - 0或者负数,表示获取历史栈的哪一层,0表示获取当前页面实例,-1 表示获取上一个页面实例。默认0。
+ */
+function getHistoryPage(back = 0) {
+ const pages = getCurrentPages()
+ const len = pages.length
+ return pages[len - 1 + back]
+}
+
+
+
+/**
+ * @description 修改uvui内置属性值
+ * @param {object} props 修改内置props属性
+ * @param {object} config 修改内置config属性
+ * @param {object} color 修改内置color属性
+ * @param {object} zIndex 修改内置zIndex属性
+ */
+function setConfig({
+ props = {},
+ config = {},
+ color = {},
+ zIndex = {}
+}) {
+ const {
+ deepMerge,
+ } = uni.$uv
+ uni.$uv.config = deepMerge(uni.$uv.config, config)
+ uni.$uv.props = deepMerge(uni.$uv.props, props)
+ uni.$uv.color = deepMerge(uni.$uv.color, color)
+ uni.$uv.zIndex = deepMerge(uni.$uv.zIndex, zIndex)
+}
+
+export {
+ range,
+ getPx,
+ sleep,
+ os,
+ sys,
+ random,
+ guid,
+ $parent,
+ addStyle,
+ addUnit,
+ deepClone,
+ deepMerge,
+ error,
+ randomArray,
+ timeFormat,
+ timeFrom,
+ trim,
+ queryParams,
+ toast,
+ type2icon,
+ priceFormat,
+ getDuration,
+ padZero,
+ formValidate,
+ getProperty,
+ setProperty,
+ page,
+ pages,
+ getHistoryPage,
+ setConfig
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/platform.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/platform.js"
new file mode 100644
index 000000000..d6b926ea1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/platform.js"
@@ -0,0 +1,75 @@
+/**
+ * 注意:
+ * 此部分内容,在vue-cli模式下,需要在vue.config.js加入如下内容才有效:
+ * module.exports = {
+ * transpileDependencies: ['uview-v2']
+ * }
+ */
+
+let platform = 'none'
+
+// #ifdef VUE3
+platform = 'vue3'
+// #endif
+
+// #ifdef VUE2
+platform = 'vue2'
+// #endif
+
+// #ifdef APP-PLUS
+platform = 'plus'
+// #endif
+
+// #ifdef APP-NVUE
+platform = 'nvue'
+// #endif
+
+// #ifdef H5
+platform = 'h5'
+// #endif
+
+// #ifdef MP-WEIXIN
+platform = 'weixin'
+// #endif
+
+// #ifdef MP-ALIPAY
+platform = 'alipay'
+// #endif
+
+// #ifdef MP-BAIDU
+platform = 'baidu'
+// #endif
+
+// #ifdef MP-TOUTIAO
+platform = 'toutiao'
+// #endif
+
+// #ifdef MP-QQ
+platform = 'qq'
+// #endif
+
+// #ifdef MP-KUAISHOU
+platform = 'kuaishou'
+// #endif
+
+// #ifdef MP-360
+platform = '360'
+// #endif
+
+// #ifdef MP
+platform = 'mp'
+// #endif
+
+// #ifdef QUICKAPP-WEBVIEW
+platform = 'quickapp-webview'
+// #endif
+
+// #ifdef QUICKAPP-WEBVIEW-HUAWEI
+platform = 'quickapp-webview-huawei'
+// #endif
+
+// #ifdef QUICKAPP-WEBVIEW-UNION
+platform = 'quckapp-webview-union'
+// #endif
+
+export default platform
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/test.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/test.js"
new file mode 100644
index 000000000..7c8b74738
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/test.js"
@@ -0,0 +1,287 @@
+/**
+ * 验证电子邮箱格式
+ */
+function email(value) {
+ return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)
+}
+
+/**
+ * 验证手机格式
+ */
+function mobile(value) {
+ return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value)
+}
+
+/**
+ * 验证URL格式
+ */
+function url(value) {
+ return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/
+ .test(value)
+}
+
+/**
+ * 验证日期格式
+ */
+function date(value) {
+ if (!value) return false
+ // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳
+ if (number(value)) value = +value
+ return !/Invalid|NaN/.test(new Date(value).toString())
+}
+
+/**
+ * 验证ISO类型的日期格式
+ */
+function dateISO(value) {
+ return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)
+}
+
+/**
+ * 验证十进制数字
+ */
+function number(value) {
+ return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
+}
+
+/**
+ * 验证字符串
+ */
+function string(value) {
+ return typeof value === 'string'
+}
+
+/**
+ * 验证整数
+ */
+function digits(value) {
+ return /^\d+$/.test(value)
+}
+
+/**
+ * 验证身份证号码
+ */
+function idCard(value) {
+ return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
+ value
+ )
+}
+
+/**
+ * 是否车牌号
+ */
+function carNo(value) {
+ // 新能源车牌
+ const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/
+ // 旧车牌
+ const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/
+ if (value.length === 7) {
+ return creg.test(value)
+ } if (value.length === 8) {
+ return xreg.test(value)
+ }
+ return false
+}
+
+/**
+ * 金额,只允许2位小数
+ */
+function amount(value) {
+ // 金额,只允许保留两位小数
+ return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value)
+}
+
+/**
+ * 中文
+ */
+function chinese(value) {
+ const reg = /^[\u4e00-\u9fa5]+$/gi
+ return reg.test(value)
+}
+
+/**
+ * 只能输入字母
+ */
+function letter(value) {
+ return /^[a-zA-Z]*$/.test(value)
+}
+
+/**
+ * 只能是字母或者数字
+ */
+function enOrNum(value) {
+ // 英文或者数字
+ const reg = /^[0-9a-zA-Z]*$/g
+ return reg.test(value)
+}
+
+/**
+ * 验证是否包含某个值
+ */
+function contains(value, param) {
+ return value.indexOf(param) >= 0
+}
+
+/**
+ * 验证一个值范围[min, max]
+ */
+function range(value, param) {
+ return value >= param[0] && value <= param[1]
+}
+
+/**
+ * 验证一个长度范围[min, max]
+ */
+function rangeLength(value, param) {
+ return value.length >= param[0] && value.length <= param[1]
+}
+
+/**
+ * 是否固定电话
+ */
+function landline(value) {
+ const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/
+ return reg.test(value)
+}
+
+/**
+ * 判断是否为空
+ */
+function empty(value) {
+ switch (typeof value) {
+ case 'undefined':
+ return true
+ case 'string':
+ if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true
+ break
+ case 'boolean':
+ if (!value) return true
+ break
+ case 'number':
+ if (value === 0 || isNaN(value)) return true
+ break
+ case 'object':
+ if (value === null || value.length === 0) return true
+ for (const i in value) {
+ return false
+ }
+ return true
+ }
+ return false
+}
+
+/**
+ * 是否json字符串
+ */
+function jsonString(value) {
+ if (typeof value === 'string') {
+ try {
+ const obj = JSON.parse(value)
+ if (typeof obj === 'object' && obj) {
+ return true
+ }
+ return false
+ } catch (e) {
+ return false
+ }
+ }
+ return false
+}
+
+/**
+ * 是否数组
+ */
+function array(value) {
+ if (typeof Array.isArray === 'function') {
+ return Array.isArray(value)
+ }
+ return Object.prototype.toString.call(value) === '[object Array]'
+}
+
+/**
+ * 是否对象
+ */
+function object(value) {
+ return Object.prototype.toString.call(value) === '[object Object]'
+}
+
+/**
+ * 是否短信验证码
+ */
+function code(value, len = 6) {
+ return new RegExp(`^\\d{${len}}$`).test(value)
+}
+
+/**
+ * 是否函数方法
+ * @param {Object} value
+ */
+function func(value) {
+ return typeof value === 'function'
+}
+
+/**
+ * 是否promise对象
+ * @param {Object} value
+ */
+function promise(value) {
+ return object(value) && func(value.then) && func(value.catch)
+}
+
+/** 是否图片格式
+ * @param {Object} value
+ */
+function image(value) {
+ const newValue = value.split('?')[0]
+ const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i
+ return IMAGE_REGEXP.test(newValue)
+}
+
+/**
+ * 是否视频格式
+ * @param {Object} value
+ */
+function video(value) {
+ const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i
+ return VIDEO_REGEXP.test(value)
+}
+
+/**
+ * 是否为正则对象
+ * @param {Object}
+ * @return {Boolean}
+ */
+function regExp(o) {
+ return o && Object.prototype.toString.call(o) === '[object RegExp]'
+}
+
+export {
+ email,
+ mobile,
+ url,
+ date,
+ dateISO,
+ number,
+ digits,
+ idCard,
+ carNo,
+ amount,
+ chinese,
+ letter,
+ enOrNum,
+ contains,
+ range,
+ rangeLength,
+ empty,
+ jsonString,
+ landline,
+ object,
+ array,
+ code,
+ func,
+ promise,
+ video,
+ image,
+ regExp,
+ string
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/throttle.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/throttle.js"
new file mode 100644
index 000000000..2f3361127
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/function/throttle.js"
@@ -0,0 +1,30 @@
+let timer; let
+ flag
+/**
+ * 节流原理:在一定时间内,只能触发一次
+ *
+ * @param {Function} func 要执行的回调函数
+ * @param {Number} wait 延时的时间
+ * @param {Boolean} immediate 是否立即执行
+ * @return null
+ */
+function throttle(func, wait = 500, immediate = true) {
+ if (immediate) {
+ if (!flag) {
+ flag = true
+ // 如果是立即执行,则在wait毫秒内开始时执行
+ typeof func === 'function' && func()
+ timer = setTimeout(() => {
+ flag = false
+ }, wait)
+ }
+ } else if (!flag) {
+ flag = true
+ // 如果是非立即执行,则在wait毫秒内的结束处执行
+ timer = setTimeout(() => {
+ flag = false
+ typeof func === 'function' && func()
+ }, wait)
+ }
+}
+export default throttle
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js"
new file mode 100644
index 000000000..31a5cfcf0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js"
@@ -0,0 +1,132 @@
+import buildURL from '../helpers/buildURL'
+import buildFullPath from '../core/buildFullPath'
+import settle from '../core/settle'
+import {isUndefined} from "../utils"
+
+/**
+ * 返回可选值存在的配置
+ * @param {Array} keys - 可选值数组
+ * @param {Object} config2 - 配置
+ * @return {{}} - 存在的配置项
+ */
+const mergeKeys = (keys, config2) => {
+ let config = {}
+ keys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ }
+ })
+ return config
+}
+export default (config) => {
+ return new Promise((resolve, reject) => {
+ let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params, config.paramsSerializer)
+ const _config = {
+ url: fullPath,
+ header: config.header,
+ complete: (response) => {
+ config.fullPath = fullPath
+ response.config = config
+ response.rawData = response.data
+ try {
+ let jsonParseHandle = false
+ const forcedJSONParsingType = typeof config.forcedJSONParsing
+ if (forcedJSONParsingType === 'boolean') {
+ jsonParseHandle = config.forcedJSONParsing
+ } else if (forcedJSONParsingType === 'object') {
+ const includesMethod = config.forcedJSONParsing.include || []
+ jsonParseHandle = includesMethod.includes(config.method)
+ }
+
+ // 对可能字符串不是json 的情况容错
+ if (jsonParseHandle && typeof response.data === 'string') {
+ response.data = JSON.parse(response.data)
+ }
+ // eslint-disable-next-line no-empty
+ } catch (e) {
+ }
+ settle(resolve, reject, response)
+ }
+ }
+ let requestTask
+ if (config.method === 'UPLOAD') {
+ delete _config.header['content-type']
+ delete _config.header['Content-Type']
+ let otherConfig = {
+ // #ifdef MP-ALIPAY
+ fileType: config.fileType,
+ // #endif
+ filePath: config.filePath,
+ name: config.name
+ }
+ const optionalKeys = [
+ // #ifdef APP-PLUS || H5
+ 'files',
+ // #endif
+ // #ifdef H5
+ 'file',
+ // #endif
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ 'formData'
+ ]
+ requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)})
+ } else if (config.method === 'DOWNLOAD') {
+ const optionalKeys = [
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ // #ifdef MP
+ 'filePath',
+ // #endif
+ ]
+ requestTask = uni.downloadFile({..._config, ...mergeKeys(optionalKeys, config)})
+ } else {
+ const optionalKeys = [
+ 'data',
+ 'method',
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ 'timeout',
+ // #endif
+ 'dataType',
+ // #ifndef MP-ALIPAY
+ 'responseType',
+ // #endif
+ // #ifdef APP-PLUS
+ 'sslVerify',
+ // #endif
+ // #ifdef H5
+ 'withCredentials',
+ // #endif
+ // #ifdef APP-PLUS
+ 'firstIpv4',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttp2',
+ 'enableQuic',
+ // #endif
+ // #ifdef MP-TOUTIAO || MP-WEIXIN
+ 'enableCache',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttpDNS',
+ 'httpDNSServiceId',
+ 'enableChunked',
+ 'forceCellularNetwork',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'enableCookie',
+ // #endif
+ // #ifdef MP-BAIDU
+ 'cloudCache',
+ 'defer'
+ // #endif
+ ]
+ requestTask = uni.request({..._config, ...mergeKeys(optionalKeys, config)})
+ }
+ if (config.getTask) {
+ config.getTask(requestTask, config)
+ }
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js"
new file mode 100644
index 000000000..3ea0d5e82
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js"
@@ -0,0 +1,51 @@
+'use strict'
+
+
+function InterceptorManager() {
+ this.handlers = []
+}
+
+/**
+ * Add a new interceptor to the stack
+ *
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
+ *
+ * @return {Number} An ID used to remove interceptor later
+ */
+InterceptorManager.prototype.use = function use(fulfilled, rejected) {
+ this.handlers.push({
+ fulfilled: fulfilled,
+ rejected: rejected
+ })
+ return this.handlers.length - 1
+}
+
+/**
+ * Remove an interceptor from the stack
+ *
+ * @param {Number} id The ID that was returned by `use`
+ */
+InterceptorManager.prototype.eject = function eject(id) {
+ if (this.handlers[id]) {
+ this.handlers[id] = null
+ }
+}
+
+/**
+ * Iterate over all the registered interceptors
+ *
+ * This method is particularly useful for skipping over any
+ * interceptors that may have become `null` calling `eject`.
+ *
+ * @param {Function} fn The function to call for each interceptor
+ */
+InterceptorManager.prototype.forEach = function forEach(fn) {
+ this.handlers.forEach(h => {
+ if (h !== null) {
+ fn(h)
+ }
+ })
+}
+
+export default InterceptorManager
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js"
new file mode 100644
index 000000000..96c89a84d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js"
@@ -0,0 +1,201 @@
+/**
+ * @Class Request
+ * @description luch-request http请求插件
+ * @Author lu-ch
+ * @Email webwork.s@qq.com
+ * 文档: https://www.quanzhan.co/luch-request/
+ * github: https://github.com/lei-mu/luch-request
+ * DCloud: http://ext.dcloud.net.cn/plugin?id=392
+ */
+
+
+import dispatchRequest from './dispatchRequest'
+import InterceptorManager from './InterceptorManager'
+import mergeConfig from './mergeConfig'
+import defaults from './defaults'
+import { isPlainObject } from '../utils'
+import clone from '../utils/clone'
+
+export default class Request {
+ /**
+ * @param {Object} arg - 全局配置
+ * @param {String} arg.baseURL - 全局根路径
+ * @param {Object} arg.header - 全局header
+ * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式
+ * @param {String} arg.dataType = [json] - 全局默认的dataType
+ * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持
+ * @param {Object} arg.custom - 全局默认的自定义参数
+ * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序
+ * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+)
+ * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+)
+ * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)
+ * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300
+ */
+ constructor(arg = {}) {
+ if (!isPlainObject(arg)) {
+ arg = {}
+ console.warn('设置全局参数必须接收一个Object')
+ }
+ this.config = clone({...defaults, ...arg})
+ this.interceptors = {
+ request: new InterceptorManager(),
+ response: new InterceptorManager()
+ }
+ }
+
+ /**
+ * @Function
+ * @param {Request~setConfigCallback} f - 设置全局默认配置
+ */
+ setConfig(f) {
+ this.config = f(this.config)
+ }
+
+ middleware(config) {
+ config = mergeConfig(this.config, config)
+ let chain = [dispatchRequest, undefined]
+ let promise = Promise.resolve(config)
+
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
+ chain.unshift(interceptor.fulfilled, interceptor.rejected)
+ })
+
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
+ chain.push(interceptor.fulfilled, interceptor.rejected)
+ })
+
+ while (chain.length) {
+ promise = promise.then(chain.shift(), chain.shift())
+ }
+
+ return promise
+ }
+
+ /**
+ * @Function
+ * @param {Object} config - 请求配置项
+ * @prop {String} options.url - 请求路径
+ * @prop {Object} options.data - 请求参数
+ * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型
+ * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse
+ * @prop {Object} [options.header = config.header] - 请求header
+ * @prop {Object} [options.method = config.method] - 请求方法
+ * @returns {Promise}
+ */
+ request(config = {}) {
+ return this.middleware(config)
+ }
+
+ get(url, options = {}) {
+ return this.middleware({
+ url,
+ method: 'GET',
+ ...options
+ })
+ }
+
+ post(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'POST',
+ ...options
+ })
+ }
+
+ // #ifndef MP-ALIPAY || MP-KUAISHOU || MP-JD
+ put(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'PUT',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
+ delete(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'DELETE',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN
+ connect(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'CONNECT',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN || MP-BAIDU
+ head(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'HEAD',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
+ options(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'OPTIONS',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN
+ trace(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'TRACE',
+ ...options
+ })
+ }
+
+ // #endif
+
+ upload(url, config = {}) {
+ config.url = url
+ config.method = 'UPLOAD'
+ return this.middleware(config)
+ }
+
+ download(url, config = {}) {
+ config.url = url
+ config.method = 'DOWNLOAD'
+ return this.middleware(config)
+ }
+
+ get version () {
+ return '3.1.0'
+ }
+}
+
+
+/**
+ * setConfig回调
+ * @return {Object} - 返回操作后的config
+ * @callback Request~setConfigCallback
+ * @param {Object} config - 全局默认config
+ */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js"
new file mode 100644
index 000000000..f2852f467
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js"
@@ -0,0 +1,20 @@
+'use strict'
+
+import isAbsoluteURL from '../helpers/isAbsoluteURL'
+import combineURLs from '../helpers/combineURLs'
+
+/**
+ * Creates a new URL by combining the baseURL with the requestedURL,
+ * only when the requestedURL is not already an absolute URL.
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} requestedURL Absolute or relative URL to combine
+ * @returns {string} The combined full path
+ */
+export default function buildFullPath(baseURL, requestedURL) {
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
+ return combineURLs(baseURL, requestedURL)
+ }
+ return requestedURL
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js"
new file mode 100644
index 000000000..db74609f0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js"
@@ -0,0 +1,33 @@
+/**
+ * 默认的全局配置
+ */
+
+
+export default {
+ baseURL: '',
+ header: {},
+ method: 'GET',
+ dataType: 'json',
+ paramsSerializer: null,
+ // #ifndef MP-ALIPAY
+ responseType: 'text',
+ // #endif
+ custom: {},
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ timeout: 60000,
+ // #endif
+ // #ifdef APP-PLUS
+ sslVerify: true,
+ // #endif
+ // #ifdef H5
+ withCredentials: false,
+ // #endif
+ // #ifdef APP-PLUS
+ firstIpv4: false,
+ // #endif
+ validateStatus: function validateStatus(status) {
+ return status >= 200 && status < 300
+ },
+ // 是否尝试将响应数据json化
+ forcedJSONParsing: true
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js"
new file mode 100644
index 000000000..c5f2c85c4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js"
@@ -0,0 +1,6 @@
+import adapter from '../adapters/index'
+
+
+export default (config) => {
+ return adapter(config)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js"
new file mode 100644
index 000000000..99c8ecd92
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js"
@@ -0,0 +1,126 @@
+import {deepMerge, isUndefined} from '../utils'
+
+/**
+ * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局
+ * @param {Array} keys - 配置项
+ * @param {Object} globalsConfig - 当前的全局配置
+ * @param {Object} config2 - 局部配置
+ * @return {{}}
+ */
+const mergeKeys = (keys, globalsConfig, config2) => {
+ let config = {}
+ keys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ } else if (!isUndefined(globalsConfig[prop])) {
+ config[prop] = globalsConfig[prop]
+ }
+ })
+ return config
+}
+/**
+ *
+ * @param globalsConfig - 当前实例的全局配置
+ * @param config2 - 当前的局部配置
+ * @return - 合并后的配置
+ */
+export default (globalsConfig, config2 = {}) => {
+ const method = config2.method || globalsConfig.method || 'GET'
+ let config = {
+ baseURL: config2.baseURL || globalsConfig.baseURL || '',
+ method: method,
+ url: config2.url || '',
+ params: config2.params || {},
+ custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})},
+ header: deepMerge(globalsConfig.header || {}, config2.header || {})
+ }
+ const defaultToConfig2Keys = ['getTask', 'validateStatus', 'paramsSerializer', 'forcedJSONParsing']
+ config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)}
+
+ // eslint-disable-next-line no-empty
+ if (method === 'DOWNLOAD') {
+ const downloadKeys = [
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ // #ifdef MP
+ 'filePath',
+ // #endif
+ ]
+ config = {...config, ...mergeKeys(downloadKeys, globalsConfig, config2)}
+ } else if (method === 'UPLOAD') {
+ delete config.header['content-type']
+ delete config.header['Content-Type']
+ const uploadKeys = [
+ // #ifdef APP-PLUS || H5
+ 'files',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'fileType',
+ // #endif
+ // #ifdef H5
+ 'file',
+ // #endif
+ 'filePath',
+ 'name',
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ 'formData',
+ ]
+ uploadKeys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ }
+ })
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) {
+ config['timeout'] = globalsConfig['timeout']
+ }
+ // #endif
+ } else {
+ const defaultsKeys = [
+ 'data',
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ 'timeout',
+ // #endif
+ 'dataType',
+ // #ifndef MP-ALIPAY
+ 'responseType',
+ // #endif
+ // #ifdef APP-PLUS
+ 'sslVerify',
+ // #endif
+ // #ifdef H5
+ 'withCredentials',
+ // #endif
+ // #ifdef APP-PLUS
+ 'firstIpv4',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttp2',
+ 'enableQuic',
+ // #endif
+ // #ifdef MP-TOUTIAO || MP-WEIXIN
+ 'enableCache',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttpDNS',
+ 'httpDNSServiceId',
+ 'enableChunked',
+ 'forceCellularNetwork',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'enableCookie',
+ // #endif
+ // #ifdef MP-BAIDU
+ 'cloudCache',
+ 'defer'
+ // #endif
+
+ ]
+ config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)}
+ }
+
+ return config
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js"
new file mode 100644
index 000000000..b2f165921
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js"
@@ -0,0 +1,16 @@
+/**
+ * Resolve or reject a Promise based on response status.
+ *
+ * @param {Function} resolve A function that resolves the promise.
+ * @param {Function} reject A function that rejects the promise.
+ * @param {object} response The response.
+ */
+export default function settle(resolve, reject, response) {
+ const validateStatus = response.config.validateStatus
+ const status = response.statusCode
+ if (status && (!validateStatus || validateStatus(status))) {
+ resolve(response)
+ } else {
+ reject(response)
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js"
new file mode 100644
index 000000000..e90b908e2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js"
@@ -0,0 +1,64 @@
+'use strict'
+
+import * as utils from './../utils'
+
+function encode(val) {
+ return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']')
+}
+
+/**
+ * Build a URL by appending params to the end
+ *
+ * @param {string} url The base of the url (e.g., http://www.google.com)
+ * @param {object} [params] The params to be appended
+ * @returns {string} The formatted url
+ */
+export default function buildURL(url, params, paramsSerializer) {
+ /*eslint no-param-reassign:0*/
+ if (!params) {
+ return url
+ }
+
+ var serializedParams
+ if (paramsSerializer) {
+ serializedParams = paramsSerializer(params)
+ } else if (utils.isURLSearchParams(params)) {
+ serializedParams = params.toString()
+ } else {
+ var parts = []
+
+ utils.forEach(params, function serialize(val, key) {
+ if (val === null || typeof val === 'undefined') {
+ return
+ }
+
+ if (utils.isArray(val)) {
+ key = key + '[]'
+ } else {
+ val = [val]
+ }
+
+ utils.forEach(val, function parseValue(v) {
+ if (utils.isDate(v)) {
+ v = v.toISOString()
+ } else if (utils.isObject(v)) {
+ v = JSON.stringify(v)
+ }
+ parts.push(encode(key) + '=' + encode(v))
+ })
+ })
+
+ serializedParams = parts.join('&')
+ }
+
+ if (serializedParams) {
+ var hashmarkIndex = url.indexOf('#')
+ if (hashmarkIndex !== -1) {
+ url = url.slice(0, hashmarkIndex)
+ }
+
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
+ }
+
+ return url
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js"
new file mode 100644
index 000000000..7b9d1efdb
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js"
@@ -0,0 +1,14 @@
+'use strict'
+
+/**
+ * Creates a new URL by combining the specified URLs
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} relativeURL The relative URL
+ * @returns {string} The combined URL
+ */
+export default function combineURLs(baseURL, relativeURL) {
+ return relativeURL
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+ : baseURL
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js"
new file mode 100644
index 000000000..2a82517d6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js"
@@ -0,0 +1,14 @@
+'use strict'
+
+/**
+ * Determines whether the specified URL is absolute
+ *
+ * @param {string} url The URL to test
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
+ */
+export default function isAbsoluteURL(url) {
+ // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).
+ // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
+ // by any combination of letters, digits, plus, period, or hyphen.
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts"
new file mode 100644
index 000000000..62d3fb9e7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts"
@@ -0,0 +1,197 @@
+export type HttpTask = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask;
+
+export type HttpRequestTask = UniApp.RequestTask;
+
+export type HttpUploadTask = UniApp.UploadTask;
+
+export type HttpDownloadTask = UniApp.DownloadTask;
+
+export type HttpMethod =
+ "GET"
+ | "POST"
+ | "PUT"
+ | "DELETE"
+ | "CONNECT"
+ | "HEAD"
+ | "OPTIONS"
+ | "TRACE"
+ | "UPLOAD"
+ | "DOWNLOAD";
+
+export type HttpRequestHeader = Record;
+
+export type HttpParams = Record;
+
+export type HttpData = Record;
+
+export type HttpResponseType = 'arraybuffer' | 'text';
+
+export type HttpCustom = Record;
+
+export type HttpFileType = 'image' | 'video' | 'audio';
+
+export type HttpFormData = Record;
+
+export type HttpResponseHeader = Record & {
+ "set-cookie"?: string[]
+};
+
+export interface HttpRequestConfig {
+ /** @desc 请求服务器接口地址 */
+ url?: string;
+ /** @desc 请求方式,默认为 GET */
+ method?: HttpMethod;
+ /** @desc 请求基地址 */
+ baseURL?: string;
+ /** @desc 请求头信息,不能设置 Referer,App、H5 端会自动带上 cookie,且 H5 端不可手动修改 */
+ header?: HttpRequestHeader;
+ /** @desc 请求查询参数,自动拼接为查询字符串 */
+ params?: HttpParams;
+ /** @desc 请求体参数 */
+ data?: HttpData;
+ /** @desc 超时时间,单位 ms,默认为 60000,仅 H5 (HBuilderX 2.9.9+)、APP (HBuilderX 2.9.9+)、微信小程序 (2.10.0)、支付宝小程序支持 */
+ timeout?: number;
+ /** @desc 跨域请求时是否携带凭证 (cookies),默认为 false,仅 H5 (HBuilderX 2.6.15+) 支持 */
+ withCredentials?: boolean;
+ /** @desc 设置响应的数据类型,支付宝小程序不支持 */
+ responseType?: HttpResponseType;
+ /** @desc 全局自定义验证器 */
+ validateStatus?: ((statusCode: number) => boolean) | null;
+
+
+ /** params 参数自定义处理 */
+ paramsSerializer?: (params: AnyObject) => string | void;
+
+ /** @desc 默认为 json,如果设为 json,会尝试对返回的数据做一次 JSON.parse */
+ dataType?: string;
+ /** @desc DNS 解析时是否优先使用 ipv4,默认为 false,仅 App-Android (HBuilderX 2.8.0+) 支持 */
+ firstIpv4?: boolean;
+ /** @desc 是否验证 SSL 证书,默认为 true,仅 App-Android (HBuilderX 2.3.3+) 支持 */
+ sslVerify?: boolean;
+
+ /** @desc 开启 http2;微信小程序 */
+ enableHttp2?: boolean;
+
+ /** @desc 开启 quic;微信小程序 */
+ enableQuic?: boolean;
+ /** @desc 开启 cache;微信小程序、字节跳动小程序 2.31.0+ */
+ enableCache?: boolean;
+ /** @desc 开启 httpDNS;微信小程序 */
+ enableHttpDNS?: boolean;
+ /** @desc httpDNS 服务商;微信小程序 */
+ httpDNSServiceId?: string;
+ /** @desc 开启 transfer-encoding chunked;微信小程序 */
+ enableChunked?: boolean;
+ /** @desc wifi下使用移动网络发送请求;微信小程序 */
+ forceCellularNetwork?: boolean;
+ /** @desc 开启后可在headers中编辑cookie;支付宝小程序 10.2.33+ */
+ enableCookie?: boolean;
+ /** @desc 是否开启云加速;百度小程序 3.310.11+ */
+ cloudCache?: boolean | object;
+ /** @desc 控制当前请求是否延时至首屏内容渲染后发送;百度小程序 3.310.11+ */
+ defer?: boolean;
+
+ /** @desc 自定义参数 */
+ custom?: HttpCustom;
+
+ /** @desc 返回当前请求的 task 和 options,不要在这里修改 options */
+ getTask?: (task: T, options: HttpRequestConfig) => void;
+
+ /** @desc 需要上传的文件列表,使用 files 时,filePath 和 name 不生效,仅支持 App、H5 (2.6.15+) */
+ files?: { name?: string; file?: File; uri: string; }[];
+ /** @desc 文件类型,仅支付宝小程序支持且为必填项 */
+ fileType?: HttpFileType;
+ /** @desc 要上传的文件对象,仅 H5 (2.6.15+) 支持 */
+ file?: File;
+ /** @desc 要上传文件资源的路径,使用 files 时,filePath 和 name 不生效 */
+ filePath?: string;
+ /** @desc 文件对应的 key,开发者在服务器端通过这个 key 可以获取到文件二进制内容,使用 files 时,filePath 和 name 不生效 */
+ name?: string;
+ /** @desc 请求中其他额外的 form data */
+ formData?: HttpFormData;
+}
+
+export interface HttpResponse {
+ data: T;
+ statusCode: number;
+ header: HttpResponseHeader;
+ config: HttpRequestConfig;
+ cookies: string[];
+ errMsg: string;
+ rawData: any;
+}
+
+export interface HttpUploadResponse {
+ data: T;
+ statusCode: number;
+ config: HttpRequestConfig;
+ errMsg: string;
+ rawData: any;
+}
+
+export interface HttpDownloadResponse extends HttpResponse {
+ tempFilePath: string;
+ apFilePath?: string;
+ filePath?: string;
+ fileContent?: string;
+}
+
+export interface HttpError {
+ data?: T;
+ statusCode?: number;
+ header?: HttpResponseHeader;
+ config: HttpRequestConfig;
+ cookies?: string[];
+ errMsg: string;
+}
+
+export interface HttpPromise extends Promise> {
+}
+
+export interface HttpInterceptorManager {
+ use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: E) => T | Promise): void;
+
+ eject(id: number): void;
+}
+
+export abstract class HttpRequestAbstract {
+ constructor(config?: HttpRequestConfig);
+
+ interceptors: {
+ request: HttpInterceptorManager;
+ response: HttpInterceptorManager;
+ }
+
+ request, D = HttpRequestTask>(config: HttpRequestConfig): Promise;
+
+ get, D = HttpRequestTask>(url: string, config?: HttpRequestConfig): Promise;
+
+ delete, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ head, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ options, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ post, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ put, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ config: HttpRequestConfig;
+
+ setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void;
+
+ connect, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ trace, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ upload, D = HttpUploadTask>(url: string, config?: HttpRequestConfig): Promise;
+
+ download, D = HttpDownloadTask>(url: string, config?: HttpRequestConfig): Promise;
+
+ middleware, D = HttpTask>(config: HttpRequestConfig): Promise;
+}
+
+declare class HttpRequest extends HttpRequestAbstract {
+}
+
+export default HttpRequest;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/index.js"
new file mode 100644
index 000000000..d8fe348fa
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/index.js"
@@ -0,0 +1,2 @@
+import Request from './core/Request'
+export default Request
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/utils.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/utils.js"
new file mode 100644
index 000000000..0b5bf2105
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/utils.js"
@@ -0,0 +1,135 @@
+'use strict'
+
+// utils is a library of generic helper functions non-specific to axios
+
+var toString = Object.prototype.toString
+
+/**
+ * Determine if a value is an Array
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Array, otherwise false
+ */
+export function isArray (val) {
+ return toString.call(val) === '[object Array]'
+}
+
+
+/**
+ * Determine if a value is an Object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Object, otherwise false
+ */
+export function isObject (val) {
+ return val !== null && typeof val === 'object'
+}
+
+/**
+ * Determine if a value is a Date
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Date, otherwise false
+ */
+export function isDate (val) {
+ return toString.call(val) === '[object Date]'
+}
+
+/**
+ * Determine if a value is a URLSearchParams object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a URLSearchParams object, otherwise false
+ */
+export function isURLSearchParams (val) {
+ return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams
+}
+
+
+/**
+ * Iterate over an Array or an Object invoking a function for each item.
+ *
+ * If `obj` is an Array callback will be called passing
+ * the value, index, and complete array for each item.
+ *
+ * If 'obj' is an Object callback will be called passing
+ * the value, key, and complete object for each property.
+ *
+ * @param {Object|Array} obj The object to iterate
+ * @param {Function} fn The callback to invoke for each item
+ */
+export function forEach (obj, fn) {
+ // Don't bother if no value provided
+ if (obj === null || typeof obj === 'undefined') {
+ return
+ }
+
+ // Force an array if not already something iterable
+ if (typeof obj !== 'object') {
+ /*eslint no-param-reassign:0*/
+ obj = [obj]
+ }
+
+ if (isArray(obj)) {
+ // Iterate over array values
+ for (var i = 0, l = obj.length; i < l; i++) {
+ fn.call(null, obj[i], i, obj)
+ }
+ } else {
+ // Iterate over object keys
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ fn.call(null, obj[key], key, obj)
+ }
+ }
+ }
+}
+
+/**
+ * 是否为boolean 值
+ * @param val
+ * @returns {boolean}
+ */
+export function isBoolean(val) {
+ return typeof val === 'boolean'
+}
+
+/**
+ * 是否为真正的对象{} new Object
+ * @param {any} obj - 检测的对象
+ * @returns {boolean}
+ */
+export function isPlainObject(obj) {
+ return Object.prototype.toString.call(obj) === '[object Object]'
+}
+
+
+
+/**
+ * Function equal to merge with the difference being that no reference
+ * to original objects is kept.
+ *
+ * @see merge
+ * @param {Object} obj1 Object to merge
+ * @returns {Object} Result of all merge properties
+ */
+export function deepMerge(/* obj1, obj2, obj3, ... */) {
+ let result = {}
+ function assignValue(val, key) {
+ if (typeof result[key] === 'object' && typeof val === 'object') {
+ result[key] = deepMerge(result[key], val)
+ } else if (typeof val === 'object') {
+ result[key] = deepMerge({}, val)
+ } else {
+ result[key] = val
+ }
+ }
+ for (let i = 0, l = arguments.length; i < l; i++) {
+ forEach(arguments[i], assignValue)
+ }
+ return result
+}
+
+export function isUndefined (val) {
+ return typeof val === 'undefined'
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js"
new file mode 100644
index 000000000..2fee704d0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js"
@@ -0,0 +1,264 @@
+/* eslint-disable */
+var clone = (function() {
+ 'use strict';
+
+ function _instanceof(obj, type) {
+ return type != null && obj instanceof type;
+ }
+
+ var nativeMap;
+ try {
+ nativeMap = Map;
+ } catch(_) {
+ // maybe a reference error because no `Map`. Give it a dummy value that no
+ // value will ever be an instanceof.
+ nativeMap = function() {};
+ }
+
+ var nativeSet;
+ try {
+ nativeSet = Set;
+ } catch(_) {
+ nativeSet = function() {};
+ }
+
+ var nativePromise;
+ try {
+ nativePromise = Promise;
+ } catch(_) {
+ nativePromise = function() {};
+ }
+
+ /**
+ * Clones (copies) an Object using deep copying.
+ *
+ * This function supports circular references by default, but if you are certain
+ * there are no circular references in your object, you can save some CPU time
+ * by calling clone(obj, false).
+ *
+ * Caution: if `circular` is false and `parent` contains circular references,
+ * your program may enter an infinite loop and crash.
+ *
+ * @param `parent` - the object to be cloned
+ * @param `circular` - set to true if the object to be cloned may contain
+ * circular references. (optional - true by default)
+ * @param `depth` - set to a number if the object is only to be cloned to
+ * a particular depth. (optional - defaults to Infinity)
+ * @param `prototype` - sets the prototype to be used when cloning an object.
+ * (optional - defaults to parent prototype).
+ * @param `includeNonEnumerable` - set to true if the non-enumerable properties
+ * should be cloned as well. Non-enumerable properties on the prototype
+ * chain will be ignored. (optional - false by default)
+ */
+ function clone(parent, circular, depth, prototype, includeNonEnumerable) {
+ if (typeof circular === 'object') {
+ depth = circular.depth;
+ prototype = circular.prototype;
+ includeNonEnumerable = circular.includeNonEnumerable;
+ circular = circular.circular;
+ }
+ // maintain two arrays for circular references, where corresponding parents
+ // and children have the same index
+ var allParents = [];
+ var allChildren = [];
+
+ var useBuffer = typeof Buffer != 'undefined';
+
+ if (typeof circular == 'undefined')
+ circular = true;
+
+ if (typeof depth == 'undefined')
+ depth = Infinity;
+
+ // recurse this function so we don't reset allParents and allChildren
+ function _clone(parent, depth) {
+ // cloning null always returns null
+ if (parent === null)
+ return null;
+
+ if (depth === 0)
+ return parent;
+
+ var child;
+ var proto;
+ if (typeof parent != 'object') {
+ return parent;
+ }
+
+ if (_instanceof(parent, nativeMap)) {
+ child = new nativeMap();
+ } else if (_instanceof(parent, nativeSet)) {
+ child = new nativeSet();
+ } else if (_instanceof(parent, nativePromise)) {
+ child = new nativePromise(function (resolve, reject) {
+ parent.then(function(value) {
+ resolve(_clone(value, depth - 1));
+ }, function(err) {
+ reject(_clone(err, depth - 1));
+ });
+ });
+ } else if (clone.__isArray(parent)) {
+ child = [];
+ } else if (clone.__isRegExp(parent)) {
+ child = new RegExp(parent.source, __getRegExpFlags(parent));
+ if (parent.lastIndex) child.lastIndex = parent.lastIndex;
+ } else if (clone.__isDate(parent)) {
+ child = new Date(parent.getTime());
+ } else if (useBuffer && Buffer.isBuffer(parent)) {
+ if (Buffer.from) {
+ // Node.js >= 5.10.0
+ child = Buffer.from(parent);
+ } else {
+ // Older Node.js versions
+ child = new Buffer(parent.length);
+ parent.copy(child);
+ }
+ return child;
+ } else if (_instanceof(parent, Error)) {
+ child = Object.create(parent);
+ } else {
+ if (typeof prototype == 'undefined') {
+ proto = Object.getPrototypeOf(parent);
+ child = Object.create(proto);
+ }
+ else {
+ child = Object.create(prototype);
+ proto = prototype;
+ }
+ }
+
+ if (circular) {
+ var index = allParents.indexOf(parent);
+
+ if (index != -1) {
+ return allChildren[index];
+ }
+ allParents.push(parent);
+ allChildren.push(child);
+ }
+
+ if (_instanceof(parent, nativeMap)) {
+ parent.forEach(function(value, key) {
+ var keyChild = _clone(key, depth - 1);
+ var valueChild = _clone(value, depth - 1);
+ child.set(keyChild, valueChild);
+ });
+ }
+ if (_instanceof(parent, nativeSet)) {
+ parent.forEach(function(value) {
+ var entryChild = _clone(value, depth - 1);
+ child.add(entryChild);
+ });
+ }
+
+ for (var i in parent) {
+ var attrs = Object.getOwnPropertyDescriptor(parent, i);
+ if (attrs) {
+ child[i] = _clone(parent[i], depth - 1);
+ }
+
+ try {
+ var objProperty = Object.getOwnPropertyDescriptor(parent, i);
+ if (objProperty.set === 'undefined') {
+ // no setter defined. Skip cloning this property
+ continue;
+ }
+ child[i] = _clone(parent[i], depth - 1);
+ } catch(e){
+ if (e instanceof TypeError) {
+ // when in strict mode, TypeError will be thrown if child[i] property only has a getter
+ // we can't do anything about this, other than inform the user that this property cannot be set.
+ continue
+ } else if (e instanceof ReferenceError) {
+ //this may happen in non strict mode
+ continue
+ }
+ }
+
+ }
+
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(parent);
+ for (var i = 0; i < symbols.length; i++) {
+ // Don't need to worry about cloning a symbol because it is a primitive,
+ // like a number or string.
+ var symbol = symbols[i];
+ var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);
+ if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
+ continue;
+ }
+ child[symbol] = _clone(parent[symbol], depth - 1);
+ Object.defineProperty(child, symbol, descriptor);
+ }
+ }
+
+ if (includeNonEnumerable) {
+ var allPropertyNames = Object.getOwnPropertyNames(parent);
+ for (var i = 0; i < allPropertyNames.length; i++) {
+ var propertyName = allPropertyNames[i];
+ var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);
+ if (descriptor && descriptor.enumerable) {
+ continue;
+ }
+ child[propertyName] = _clone(parent[propertyName], depth - 1);
+ Object.defineProperty(child, propertyName, descriptor);
+ }
+ }
+
+ return child;
+ }
+
+ return _clone(parent, depth);
+ }
+
+ /**
+ * Simple flat clone using prototype, accepts only objects, usefull for property
+ * override on FLAT configuration object (no nested props).
+ *
+ * USE WITH CAUTION! This may not behave as you wish if you do not know how this
+ * works.
+ */
+ clone.clonePrototype = function clonePrototype(parent) {
+ if (parent === null)
+ return null;
+
+ var c = function () {};
+ c.prototype = parent;
+ return new c();
+ };
+
+// private utility functions
+
+ function __objToStr(o) {
+ return Object.prototype.toString.call(o);
+ }
+ clone.__objToStr = __objToStr;
+
+ function __isDate(o) {
+ return typeof o === 'object' && __objToStr(o) === '[object Date]';
+ }
+ clone.__isDate = __isDate;
+
+ function __isArray(o) {
+ return typeof o === 'object' && __objToStr(o) === '[object Array]';
+ }
+ clone.__isArray = __isArray;
+
+ function __isRegExp(o) {
+ return typeof o === 'object' && __objToStr(o) === '[object RegExp]';
+ }
+ clone.__isRegExp = __isRegExp;
+
+ function __getRegExpFlags(re) {
+ var flags = '';
+ if (re.global) flags += 'g';
+ if (re.ignoreCase) flags += 'i';
+ if (re.multiline) flags += 'm';
+ return flags;
+ }
+ clone.__getRegExpFlags = __getRegExpFlags;
+
+ return clone;
+})();
+
+export default clone
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/button.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/button.js"
new file mode 100644
index 000000000..0c019c2a6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/button.js"
@@ -0,0 +1,13 @@
+export default {
+ props: {
+ lang: String,
+ sessionFrom: String,
+ sendMessageTitle: String,
+ sendMessagePath: String,
+ sendMessageImg: String,
+ showMessageCard: Boolean,
+ appParameter: String,
+ formType: String,
+ openType: String
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mixin.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mixin.js"
new file mode 100644
index 000000000..0dd3b03be
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mixin.js"
@@ -0,0 +1,172 @@
+import * as index from '../function/index.js';
+import * as test from '../function/test.js';
+import route from '../util/route.js';
+import debounce from '../function/debounce.js';
+import throttle from '../function/throttle.js';
+export default {
+ // 定义每个组件都可能需要用到的外部样式以及类名
+ props: {
+ // 每个组件都有的父组件传递的样式,可以为字符串或者对象形式
+ customStyle: {
+ type: [Object, String],
+ default: () => ({})
+ },
+ customClass: {
+ type: String,
+ default: ''
+ },
+ // 跳转的页面路径
+ url: {
+ type: String,
+ default: ''
+ },
+ // 页面跳转的类型
+ linkType: {
+ type: String,
+ default: 'navigateTo'
+ }
+ },
+ data() {
+ return {}
+ },
+ onLoad() {
+ // getRect挂载到$uv上,因为这方法需要使用in(this),所以无法把它独立成一个单独的文件导出
+ this.$uv.getRect = this.$uvGetRect
+ },
+ created() {
+ // 组件当中,只有created声明周期,为了能在组件使用,故也在created中将方法挂载到$uv
+ this.$uv.getRect = this.$uvGetRect
+ },
+ computed: {
+ $uv() {
+ return {
+ ...index,
+ test,
+ route,
+ debounce,
+ throttle,
+ unit: uni?.$uv?.config?.unit
+ }
+ },
+ /**
+ * 生成bem规则类名
+ * 由于微信小程序,H5,nvue之间绑定class的差异,无法通过:class="[bem()]"的形式进行同用
+ * 故采用如下折中做法,最后返回的是数组(一般平台)或字符串(支付宝和字节跳动平台),类似['a', 'b', 'c']或'a b c'的形式
+ * @param {String} name 组件名称
+ * @param {Array} fixed 一直会存在的类名
+ * @param {Array} change 会根据变量值为true或者false而出现或者隐藏的类名
+ * @returns {Array|string}
+ */
+ bem() {
+ return function(name, fixed, change) {
+ // 类名前缀
+ const prefix = `uv-${name}--`
+ const classes = {}
+ if (fixed) {
+ fixed.map((item) => {
+ // 这里的类名,会一直存在
+ classes[prefix + this[item]] = true
+ })
+ }
+ if (change) {
+ change.map((item) => {
+ // 这里的类名,会根据this[item]的值为true或者false,而进行添加或者移除某一个类
+ this[item] ? (classes[prefix + item] = this[item]) : (delete classes[prefix + item])
+ })
+ }
+ return Object.keys(classes)
+ // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效
+ // #ifdef MP-ALIPAY || MP-TOUTIAO || MP-LARK || MP-BAIDU
+ .join(' ')
+ // #endif
+ }
+ }
+ },
+ methods: {
+ // 跳转某一个页面
+ openPage(urlKey = 'url') {
+ const url = this[urlKey]
+ if (url) {
+ // 执行类似uni.navigateTo的方法
+ uni[this.linkType]({
+ url
+ })
+ }
+ },
+ // 查询节点信息
+ // 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21)
+ // 解决办法为在组件根部再套一个没有任何作用的view元素
+ $uvGetRect(selector, all) {
+ return new Promise((resolve) => {
+ uni.createSelectorQuery()
+ .in(this)[all ? 'selectAll' : 'select'](selector)
+ .boundingClientRect((rect) => {
+ if (all && Array.isArray(rect) && rect.length) {
+ resolve(rect)
+ }
+ if (!all && rect) {
+ resolve(rect)
+ }
+ })
+ .exec()
+ })
+ },
+ getParentData(parentName = '') {
+ // 避免在created中去定义parent变量
+ if (!this.parent) this.parent = {}
+ // 这里的本质原理是,通过获取父组件实例(也即类似uv-radio的父组件uv-radio-group的this)
+ // 将父组件this中对应的参数,赋值给本组件(uv-radio的this)的parentData对象中对应的属性
+ // 之所以需要这么做,是因为所有端中,头条小程序不支持通过this.parent.xxx去监听父组件参数的变化
+ // 此处并不会自动更新子组件的数据,而是依赖父组件uv-radio-group去监听data的变化,手动调用更新子组件的方法去重新获取
+ this.parent = this.$uv.$parent.call(this, parentName)
+ if (this.parent.children) {
+ // 如果父组件的children不存在本组件的实例,才将本实例添加到父组件的children中
+ this.parent.children.indexOf(this) === -1 && this.parent.children.push(this)
+ }
+ if (this.parent && this.parentData) {
+ // 历遍parentData中的属性,将parent中的同名属性赋值给parentData
+ Object.keys(this.parentData).map((key) => {
+ this.parentData[key] = this.parent[key]
+ })
+ }
+ },
+ // 阻止事件冒泡
+ preventEvent(e) {
+ e && typeof(e.stopPropagation) === 'function' && e.stopPropagation()
+ },
+ // 空操作
+ noop(e) {
+ this.preventEvent(e)
+ }
+ },
+ onReachBottom() {
+ uni.$emit('uvOnReachBottom')
+ },
+ beforeDestroy() {
+ // 判断当前页面是否存在parent和chldren,一般在checkbox和checkbox-group父子联动的场景会有此情况
+ // 组件销毁时,移除子组件在父组件children数组中的实例,释放资源,避免数据混乱
+ if (this.parent && test.array(this.parent.children)) {
+ // 组件销毁时,移除父组件中的children数组中对应的实例
+ const childrenList = this.parent.children
+ childrenList.map((child, index) => {
+ // 如果相等,则移除
+ if (child === this) {
+ childrenList.splice(index, 1)
+ }
+ })
+ }
+ },
+ // 兼容vue3
+ unmounted() {
+ if (this.parent && test.array(this.parent.children)) {
+ // 组件销毁时,移除父组件中的children数组中对应的实例
+ const childrenList = this.parent.children
+ childrenList.map((child, index) => {
+ // 如果相等,则移除
+ if (child === this) {
+ childrenList.splice(index, 1)
+ }
+ })
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js"
new file mode 100644
index 000000000..90b6903c6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js"
@@ -0,0 +1,8 @@
+export default {
+ // #ifdef MP-WEIXIN
+ // 将自定义节点设置成虚拟的(去掉自定义组件包裹层),更加接近Vue组件的表现,能更好的使用flex属性
+ options: {
+ virtualHost: true
+ }
+ // #endif
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mpShare.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mpShare.js"
new file mode 100644
index 000000000..c9695a03e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/mpShare.js"
@@ -0,0 +1,13 @@
+export default {
+ onLoad() {
+ // 设置默认的转发参数
+ uni.$uv.mpShare = {
+ title: '', // 默认为小程序名称
+ path: '', // 默认为当前页面路径
+ imageUrl: '' // 默认为当前页面的截图
+ }
+ },
+ onShareAppMessage() {
+ return uni.$uv.mpShare
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/openType.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/openType.js"
new file mode 100644
index 000000000..1b94b7e07
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/openType.js"
@@ -0,0 +1,47 @@
+export default {
+ props: {
+ openType: String
+ },
+ emits: ['getphonenumber','getuserinfo','error','opensetting','launchapp','contact','chooseavatar','addgroupapp','chooseaddress','subscribe','login','im'],
+ methods: {
+ onGetPhoneNumber(event) {
+ this.$emit('getphonenumber', event.detail)
+ },
+ onGetUserInfo(event) {
+ this.$emit('getuserinfo', event.detail)
+ },
+ onError(event) {
+ this.$emit('error', event.detail)
+ },
+ onOpenSetting(event) {
+ this.$emit('opensetting', event.detail)
+ },
+ onLaunchApp(event) {
+ this.$emit('launchapp', event.detail)
+ },
+ onContact(event) {
+ this.$emit('contact', event.detail)
+ },
+ onChooseavatar(event) {
+ this.$emit('chooseavatar', event.detail)
+ },
+ onAgreeprivacyauthorization(event) {
+ this.$emit('agreeprivacyauthorization', event.detail)
+ },
+ onAddgroupapp(event) {
+ this.$emit('addgroupapp', event.detail)
+ },
+ onChooseaddress(event) {
+ this.$emit('chooseaddress', event.detail)
+ },
+ onSubscribe(event) {
+ this.$emit('subscribe', event.detail)
+ },
+ onLogin(event) {
+ this.$emit('login', event.detail)
+ },
+ onIm(event) {
+ this.$emit('im', event.detail)
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/touch.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/touch.js"
new file mode 100644
index 000000000..0ecbd88e5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/mixin/touch.js"
@@ -0,0 +1,59 @@
+const MIN_DISTANCE = 10
+
+function getDirection(x, y) {
+ if (x > y && x > MIN_DISTANCE) {
+ return 'horizontal'
+ }
+ if (y > x && y > MIN_DISTANCE) {
+ return 'vertical'
+ }
+ return ''
+}
+
+export default {
+ methods: {
+ getTouchPoint(e) {
+ if (!e) {
+ return {
+ x: 0,
+ y: 0
+ }
+ } if (e.touches && e.touches[0]) {
+ return {
+ x: e.touches[0].pageX,
+ y: e.touches[0].pageY
+ }
+ } if (e.changedTouches && e.changedTouches[0]) {
+ return {
+ x: e.changedTouches[0].pageX,
+ y: e.changedTouches[0].pageY
+ }
+ }
+ return {
+ x: e.clientX || 0,
+ y: e.clientY || 0
+ }
+ },
+ resetTouchStatus() {
+ this.direction = ''
+ this.deltaX = 0
+ this.deltaY = 0
+ this.offsetX = 0
+ this.offsetY = 0
+ },
+ touchStart(event) {
+ this.resetTouchStatus()
+ const touch = this.getTouchPoint(event)
+ this.startX = touch.x
+ this.startY = touch.y
+ },
+ touchMove(event) {
+ const touch = this.getTouchPoint(event)
+ this.deltaX = touch.x - this.startX
+ this.deltaY = touch.y - this.startY
+ this.offsetX = Math.abs(this.deltaX)
+ this.offsetY = Math.abs(this.deltaY)
+ this.direction = this.direction || getDirection(this.offsetX, this.offsetY)
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/util/dayjs.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/util/dayjs.js"
new file mode 100644
index 000000000..c84ab6872
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/util/dayjs.js"
@@ -0,0 +1,216 @@
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+};
+
+var require_dayjs_min = __commonJS({
+ "uvuidayjs"(exports, module) {
+ !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();
+ }(exports, function() {
+ "use strict";
+ var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", f = "month", h = "quarter", c = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|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, M = { 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(t2) {
+ var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
+ return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
+ } }, m = function(t2, e2, n2) {
+ var r2 = String(t2);
+ return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
+ }, v = { s: m, z: function(t2) {
+ var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
+ return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
+ }, m: function t2(e2, n2) {
+ if (e2.date() < n2.date())
+ return -t2(n2, e2);
+ var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, f), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), f);
+ return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
+ }, a: function(t2) {
+ return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
+ }, p: function(t2) {
+ return { M: f, y: c, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: h }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
+ }, u: function(t2) {
+ return void 0 === t2;
+ } }, g = "en", D = {};
+ D[g] = M;
+ var p = function(t2) {
+ return t2 instanceof _;
+ }, S = function t2(e2, n2, r2) {
+ var i2;
+ if (!e2)
+ return g;
+ if ("string" == typeof e2) {
+ var s2 = e2.toLowerCase();
+ D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
+ var u2 = e2.split("-");
+ if (!i2 && u2.length > 1)
+ return t2(u2[0]);
+ } else {
+ var a2 = e2.name;
+ D[a2] = e2, i2 = a2;
+ }
+ return !r2 && i2 && (g = i2), i2 || !r2 && g;
+ }, w = function(t2, e2) {
+ if (p(t2))
+ return t2.clone();
+ var n2 = "object" == typeof e2 ? e2 : {};
+ return n2.date = t2, n2.args = arguments, new _(n2);
+ }, O = v;
+ O.l = S, O.i = p, O.w = function(t2, e2) {
+ return w(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
+ };
+ var _ = function() {
+ function M2(t2) {
+ this.$L = S(t2.locale, null, true), this.parse(t2);
+ }
+ var m2 = M2.prototype;
+ return m2.parse = function(t2) {
+ this.$d = function(t3) {
+ var e2 = t3.date, n2 = t3.utc;
+ if (null === e2)
+ return new Date(NaN);
+ if (O.u(e2))
+ return new Date();
+ if (e2 instanceof Date)
+ return new Date(e2);
+ if ("string" == typeof e2 && !/Z$/i.test(e2)) {
+ var r2 = e2.match($);
+ if (r2) {
+ var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
+ return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
+ }
+ }
+ return new Date(e2);
+ }(t2), this.$x = t2.x || {}, this.init();
+ }, m2.init = function() {
+ var t2 = this.$d;
+ this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
+ }, m2.$utils = function() {
+ return O;
+ }, m2.isValid = function() {
+ return !(this.$d.toString() === l);
+ }, m2.isSame = function(t2, e2) {
+ var n2 = w(t2);
+ return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
+ }, m2.isAfter = function(t2, e2) {
+ return w(t2) < this.startOf(e2);
+ }, m2.isBefore = function(t2, e2) {
+ return this.endOf(e2) < w(t2);
+ }, m2.$g = function(t2, e2, n2) {
+ return O.u(t2) ? this[e2] : this.set(n2, t2);
+ }, m2.unix = function() {
+ return Math.floor(this.valueOf() / 1e3);
+ }, m2.valueOf = function() {
+ return this.$d.getTime();
+ }, m2.startOf = function(t2, e2) {
+ var n2 = this, r2 = !!O.u(e2) || e2, h2 = O.p(t2), l2 = function(t3, e3) {
+ var i2 = O.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
+ return r2 ? i2 : i2.endOf(a);
+ }, $2 = function(t3, e3) {
+ return O.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
+ }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
+ switch (h2) {
+ case c:
+ return r2 ? l2(1, 0) : l2(31, 11);
+ case f:
+ return r2 ? l2(1, M3) : l2(0, M3 + 1);
+ case o:
+ var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
+ return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
+ case a:
+ case d:
+ return $2(v2 + "Hours", 0);
+ case u:
+ return $2(v2 + "Minutes", 1);
+ case s:
+ return $2(v2 + "Seconds", 2);
+ case i:
+ return $2(v2 + "Milliseconds", 3);
+ default:
+ return this.clone();
+ }
+ }, m2.endOf = function(t2) {
+ return this.startOf(t2, false);
+ }, m2.$set = function(t2, e2) {
+ var n2, o2 = O.p(t2), h2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = h2 + "Date", n2[d] = h2 + "Date", n2[f] = h2 + "Month", n2[c] = h2 + "FullYear", n2[u] = h2 + "Hours", n2[s] = h2 + "Minutes", n2[i] = h2 + "Seconds", n2[r] = h2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
+ if (o2 === f || o2 === c) {
+ var y2 = this.clone().set(d, 1);
+ y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
+ } else
+ l2 && this.$d[l2]($2);
+ return this.init(), this;
+ }, m2.set = function(t2, e2) {
+ return this.clone().$set(t2, e2);
+ }, m2.get = function(t2) {
+ return this[O.p(t2)]();
+ }, m2.add = function(r2, h2) {
+ var d2, l2 = this;
+ r2 = Number(r2);
+ var $2 = O.p(h2), y2 = function(t2) {
+ var e2 = w(l2);
+ return O.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
+ };
+ if ($2 === f)
+ return this.set(f, this.$M + r2);
+ if ($2 === c)
+ return this.set(c, this.$y + r2);
+ if ($2 === a)
+ return y2(1);
+ if ($2 === o)
+ return y2(7);
+ var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
+ return O.w(m3, this);
+ }, m2.subtract = function(t2, e2) {
+ return this.add(-1 * t2, e2);
+ }, m2.format = function(t2) {
+ var e2 = this, n2 = this.$locale();
+ if (!this.isValid())
+ return n2.invalidDate || l;
+ var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = O.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, f2 = n2.months, h2 = function(t3, n3, i3, s3) {
+ return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
+ }, c2 = function(t3) {
+ return O.s(s2 % 12 || 12, t3, "0");
+ }, d2 = n2.meridiem || function(t3, e3, n3) {
+ var r3 = t3 < 12 ? "AM" : "PM";
+ return n3 ? r3.toLowerCase() : r3;
+ }, $2 = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a2 + 1, MM: O.s(a2 + 1, 2, "0"), MMM: h2(n2.monthsShort, a2, f2, 3), MMMM: h2(f2, a2), D: this.$D, DD: O.s(this.$D, 2, "0"), d: String(this.$W), dd: h2(n2.weekdaysMin, this.$W, o2, 2), ddd: h2(n2.weekdaysShort, this.$W, o2, 3), dddd: o2[this.$W], H: String(s2), HH: O.s(s2, 2, "0"), h: c2(1), hh: c2(2), a: d2(s2, u2, true), A: d2(s2, u2, false), m: String(u2), mm: O.s(u2, 2, "0"), s: String(this.$s), ss: O.s(this.$s, 2, "0"), SSS: O.s(this.$ms, 3, "0"), Z: i2 };
+ return r2.replace(y, function(t3, e3) {
+ return e3 || $2[t3] || i2.replace(":", "");
+ });
+ }, m2.utcOffset = function() {
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
+ }, m2.diff = function(r2, d2, l2) {
+ var $2, y2 = O.p(d2), M3 = w(r2), m3 = (M3.utcOffset() - this.utcOffset()) * e, v2 = this - M3, g2 = O.m(this, M3);
+ return g2 = ($2 = {}, $2[c] = g2 / 12, $2[f] = g2, $2[h] = g2 / 3, $2[o] = (v2 - m3) / 6048e5, $2[a] = (v2 - m3) / 864e5, $2[u] = v2 / n, $2[s] = v2 / e, $2[i] = v2 / t, $2)[y2] || v2, l2 ? g2 : O.a(g2);
+ }, m2.daysInMonth = function() {
+ return this.endOf(f).$D;
+ }, m2.$locale = function() {
+ return D[this.$L];
+ }, m2.locale = function(t2, e2) {
+ if (!t2)
+ return this.$L;
+ var n2 = this.clone(), r2 = S(t2, e2, true);
+ return r2 && (n2.$L = r2), n2;
+ }, m2.clone = function() {
+ return O.w(this.$d, this);
+ }, m2.toDate = function() {
+ return new Date(this.valueOf());
+ }, m2.toJSON = function() {
+ return this.isValid() ? this.toISOString() : null;
+ }, m2.toISOString = function() {
+ return this.$d.toISOString();
+ }, m2.toString = function() {
+ return this.$d.toUTCString();
+ }, M2;
+ }(), T = _.prototype;
+ return w.prototype = T, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", f], ["$y", c], ["$D", d]].forEach(function(t2) {
+ T[t2[1]] = function(e2) {
+ return this.$g(e2, t2[0], t2[1]);
+ };
+ }), w.extend = function(t2, e2) {
+ return t2.$i || (t2(e2, _, w), t2.$i = true), w;
+ }, w.locale = S, w.isDayjs = p, w.unix = function(t2) {
+ return w(1e3 * t2);
+ }, w.en = D[g], w.Ls = D, w.p = {}, w;
+ });
+ }
+});
+export default require_dayjs_min();
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/util/route.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/util/route.js"
new file mode 100644
index 000000000..80c0afd58
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/libs/util/route.js"
@@ -0,0 +1,126 @@
+/**
+ * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷
+ * 并且带有路由拦截功能
+ */
+import { queryParams, deepMerge, page } from '@/uni_modules/uv-ui-tools/libs/function/index.js'
+class Router {
+ constructor() {
+ // 原始属性定义
+ this.config = {
+ type: 'navigateTo',
+ url: '',
+ delta: 1, // navigateBack页面后退时,回退的层数
+ params: {}, // 传递的参数
+ animationType: 'pop-in', // 窗口动画,只在APP有效
+ animationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效
+ intercept: false ,// 是否需要拦截
+ events: {} // 页面间通信接口,用于监听被打开页面发送到当前页面的数据。hbuilderx 2.8.9+ 开始支持。
+ }
+ // 因为route方法是需要对外赋值给另外的对象使用,同时route内部有使用this,会导致route失去上下文
+ // 这里在构造函数中进行this绑定
+ this.route = this.route.bind(this)
+ }
+
+ // 判断url前面是否有"/",如果没有则加上,否则无法跳转
+ addRootPath(url) {
+ return url[0] === '/' ? url : `/${url}`
+ }
+
+ // 整合路由参数
+ mixinParam(url, params) {
+ url = url && this.addRootPath(url)
+
+ // 使用正则匹配,主要依据是判断是否有"/","?","="等,如“/page/index/index?name=mary"
+ // 如果有url中有get参数,转换后无需带上"?"
+ let query = ''
+ if (/.*\/.*\?.*=.*/.test(url)) {
+ // object对象转为get类型的参数
+ query = queryParams(params, false)
+ // 因为已有get参数,所以后面拼接的参数需要带上"&"隔开
+ return url += `&${query}`
+ }
+ // 直接拼接参数,因为此处url中没有后面的query参数,也就没有"?/&"之类的符号
+ query = queryParams(params)
+ return url += query
+ }
+
+ // 对外的方法名称
+ async route(options = {}, params = {}) {
+ // 合并用户的配置和内部的默认配置
+ let mergeConfig = {}
+
+ if (typeof options === 'string') {
+ // 如果options为字符串,则为route(url, params)的形式
+ mergeConfig.url = this.mixinParam(options, params)
+ mergeConfig.type = 'navigateTo'
+ } else {
+ mergeConfig = deepMerge(this.config, options)
+ // 否则正常使用mergeConfig中的url和params进行拼接
+ mergeConfig.url = this.mixinParam(options.url, options.params)
+ }
+ // 如果本次跳转的路径和本页面路径一致,不执行跳转,防止用户快速点击跳转按钮,造成多次跳转同一个页面的问题
+ if (mergeConfig.url === page()) return
+
+ if (params.intercept) {
+ mergeConfig.intercept = params.intercept
+ }
+ // params参数也带给拦截器
+ mergeConfig.params = params
+ // 合并内外部参数
+ mergeConfig = deepMerge(this.config, mergeConfig)
+ // 判断用户是否定义了拦截器
+ if (typeof mergeConfig.intercept === 'function') {
+ // 定一个promise,根据用户执行resolve(true)或者resolve(false)来决定是否进行路由跳转
+ const isNext = await new Promise((resolve, reject) => {
+ mergeConfig.intercept(mergeConfig, resolve)
+ })
+ // 如果isNext为true,则执行路由跳转
+ isNext && this.openPage(mergeConfig)
+ } else {
+ this.openPage(mergeConfig)
+ }
+ }
+
+ // 执行路由跳转
+ openPage(config) {
+ // 解构参数
+ const {
+ url,
+ type,
+ delta,
+ animationType,
+ animationDuration,
+ events
+ } = config
+ if (config.type == 'navigateTo' || config.type == 'to') {
+ uni.navigateTo({
+ url,
+ animationType,
+ animationDuration,
+ events
+ })
+ }
+ if (config.type == 'redirectTo' || config.type == 'redirect') {
+ uni.redirectTo({
+ url
+ })
+ }
+ if (config.type == 'switchTab' || config.type == 'tab') {
+ uni.switchTab({
+ url
+ })
+ }
+ if (config.type == 'reLaunch' || config.type == 'launch') {
+ uni.reLaunch({
+ url
+ })
+ }
+ if (config.type == 'navigateBack' || config.type == 'back') {
+ uni.navigateBack({
+ delta
+ })
+ }
+ }
+}
+
+export default (new Router()).route
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/package.json"
new file mode 100644
index 000000000..2d940f614
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/package.json"
@@ -0,0 +1,81 @@
+{
+ "id": "uv-ui-tools",
+ "displayName": "uv-ui-tools 工具集 全面兼容vue3+2、app、h5、小程序等多端",
+ "version": "1.1.25",
+ "description": "uv-ui-tools,集成工具库,强大的Http请求封装,清晰的文档说明,开箱即用。方便使用,可以全局使用",
+ "keywords": [
+ "uv-ui-tools,uv-ui组件库,工具集,uvui,uView2.x"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "y",
+ "快手": "y",
+ "飞书": "y",
+ "京东": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/readme.md"
new file mode 100644
index 000000000..79a7df5e7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/readme.md"
@@ -0,0 +1,23 @@
+## uv-ui-tools 工具集
+
+> **组件名:uv-ui-tools**
+
+uv-ui工具集成,包括网络Http请求、便捷工具、节流防抖、对象操作、时间格式化、路由跳转、全局唯一标识符、规则校验等等。
+
+该组件推荐配合[uv-ui组件库](https://www.uvui.cn/components/intro.html)使用,单独下载也可以在自己项目中使用,需要做相应的配置,可查看文档。强烈推荐使用[uv-ui组件库](https://www.uvui.cn/components/intro.html),导入组件都会自动导入`uv-ui-tools`。需要在自己的项目中使用请参考[扩展配置](https://www.uvui.cn/components/setting.html)。
+
+uv-ui破釜沉舟之兼容vue3+2、app、h5、多端小程序的uni-app生态框架,大部分组件基于uView2.x,在经过改进后全面支持vue3,部分组件做了进一步的优化,修复大量BUG,支持单独导入,方便开发者选择导入需要的组件。开箱即用,灵活配置。
+
+# 查看文档
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) (请不要 下载插件ZIP)
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+
+
+
+
+
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/theme.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/theme.scss"
new file mode 100644
index 000000000..cfaae92f5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/uni_modules/uv-ui-tools/theme.scss"
@@ -0,0 +1,43 @@
+// 此文件为uvUI的主题变量,这些变量目前只能通过uni.scss引入才有效,另外由于
+// uni.scss中引入的样式会同时混入到全局样式文件和单独每一个页面的样式中,造成微信程序包太大,
+// 故uni.scss只建议放scss变量名相关样式,其他的样式可以通过main.js或者App.vue引入
+
+$uv-main-color: #303133;
+$uv-content-color: #606266;
+$uv-tips-color: #909193;
+$uv-light-color: #c0c4cc;
+$uv-border-color: #dadbde;
+$uv-bg-color: #f3f4f6;
+$uv-disabled-color: #c8c9cc;
+
+$uv-primary: #3c9cff;
+$uv-primary-dark: #398ade;
+$uv-primary-disabled: #9acafc;
+$uv-primary-light: #ecf5ff;
+
+$uv-warning: #f9ae3d;
+$uv-warning-dark: #f1a532;
+$uv-warning-disabled: #f9d39b;
+$uv-warning-light: #fdf6ec;
+
+$uv-success: #5ac725;
+$uv-success-dark: #53c21d;
+$uv-success-disabled: #a9e08f;
+$uv-success-light: #f5fff0;
+
+$uv-error: #f56c6c;
+$uv-error-dark: #e45656;
+$uv-error-disabled: #f7b2b2;
+$uv-error-light: #fef0f0;
+
+$uv-info: #909399;
+$uv-info-dark: #767a82;
+$uv-info-disabled: #c4c6c9;
+$uv-info-light: #f4f4f5;
+
+@mixin flex($direction: row) {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: $direction;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/common.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/common.js"
new file mode 100644
index 000000000..fe3473f8e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/common.js"
@@ -0,0 +1,34 @@
+export function compareTimestamp(timestamp) {
+ const currentTime = new Date().getTime();
+ const timeDiff = currentTime - timestamp;
+
+ if (timeDiff < 60000) {
+ return '1分钟内';
+ } else if (timeDiff < 3600000) {
+ return Math.floor(timeDiff / 60000) + '分钟';
+ } else if (timeDiff < 86400000) {
+ return Math.floor(timeDiff / 3600000) + '小时';
+ } else if (timeDiff < 2592000000) {
+ return Math.floor(timeDiff / 86400000) + '天';
+ } else if (timeDiff < 7776000000) {
+ return Math.floor(timeDiff / 2592000000) + '月';
+ } else {
+ return null;
+ }
+}
+
+
+export function gotoHome(){
+ uni.showModal({
+ title:"提示",
+ content:"页面有误将返回首页",
+ showCancel:false,
+ success: (res) => {
+ if(res.confirm){
+ uni.reLaunch({
+ url:"/pages/index/index"
+ })
+ }
+ }
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/request.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/request.js"
new file mode 100644
index 000000000..d3f4a2285
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/request.js"
@@ -0,0 +1,45 @@
+
+const BASE_URL = 'https://tea.qingnian8.com/api/bizhi';
+
+export function request(config={}){
+ let {
+ url,
+ data={},
+ method="GET",
+ header={}
+ } = config
+
+ url = BASE_URL+url
+ header['access-key'] = "xxm123321@#"
+
+
+ return new Promise((resolve,reject)=>{
+ uni.request({
+ url,
+ data,
+ method,
+ header,
+ success:res=>{
+ if(res.data.errCode===0){
+ resolve(res.data)
+ }else if(res.data.errCode === 400){
+ uni.showModal({
+ title:"错误提示",
+ content:res.data.errMsg,
+ showCancel:false
+ })
+ reject(res.data)
+ }else{
+ uni.showToast({
+ title:res.data.errMsg,
+ icon:"none"
+ })
+ reject(res.data)
+ }
+ },
+ fail:err=>{
+ reject(err)
+ }
+ })
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/system.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/system.js"
new file mode 100644
index 000000000..3a24eccca
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/wallpaper-kt/utils/system.js"
@@ -0,0 +1,25 @@
+const SYSTEM_INFO = uni.getSystemInfoSync();
+
+export const getStatusBarHeight = ()=> SYSTEM_INFO.statusBarHeight || 15;
+
+export const getTitleBarHeight = ()=>{
+ if(uni.getMenuButtonBoundingClientRect){
+ let {top,height} = uni.getMenuButtonBoundingClientRect();
+ return height + (top - getStatusBarHeight())*2
+ }else{
+ return 40;
+ }
+}
+
+export const getNavBarHeight = ()=> getStatusBarHeight()+getTitleBarHeight();
+
+export const getLeftIconLeft = ()=> {
+ // #ifdef MP-TOUTIAO
+ let {leftIcon:{left,width}} = tt.getCustomButtonBoundingClientRect();
+ return left+ parseInt(width);
+ // #endif
+
+ // #ifndef MP-TOUTIAO
+ return 0
+ // #endif
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/.hbuilderx/launch.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/.hbuilderx/launch.json"
new file mode 100644
index 000000000..19913378a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/.hbuilderx/launch.json"
@@ -0,0 +1,30 @@
+{
+ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version" : "0.0",
+ "configurations" : [
+ {
+ "app-plus" :
+ {
+ "launchtype" : "local"
+ },
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-toutiao" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ },
+ {
+ "playground" : "custom",
+ "type" : "uni-app:app-android"
+ }
+ ]
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/App.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/App.vue"
new file mode 100644
index 000000000..806765aa3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/App.vue"
@@ -0,0 +1,17 @@
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/androidPrivacy.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/androidPrivacy.json"
new file mode 100644
index 000000000..a78485c82
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/androidPrivacy.json"
@@ -0,0 +1,3 @@
+{
+ "prompt" : "none"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/api/apis.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/api/apis.js"
new file mode 100644
index 000000000..24eba7d74
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/api/apis.js"
@@ -0,0 +1,93 @@
+import {request} from "@/utils/request.js"
+
+export function apiGetBanner(){
+ return request({
+ url:"/homeBanner"
+ })
+}
+
+export function apiGetDayRandom(){
+ return request({url:"/randomWall"})
+}
+
+export function apiGetNotice(data={}){
+ return request({
+ url:"/wallNewsList",
+ data
+ })
+}
+
+
+export function apiGetClassify(data={}){
+ return request({
+ url:"/classify",
+ data
+ })
+}
+
+
+
+export function apiGetClassList(data={}){
+ return request({
+ url:"/wallList",
+ data
+ })
+}
+
+
+export function apiGetSetupScore(data={}){
+ return request({
+ url:"/setupScore",
+ data
+ })
+}
+
+
+export function apiWriteDownload(data={}){
+ return request({
+ url:"/downloadWall",
+ data
+ })
+}
+
+
+
+export function apiDetailWall(data={}){
+ return request({
+ url:"/detailWall",
+ data
+ })
+}
+
+
+export function apiUserInfo(data={}){
+ return request({
+ url:"/userInfo",
+ data
+ })
+}
+
+
+export function apiGetHistoryList(data={}){
+ return request({
+ url:"/userWallList",
+ data
+ })
+}
+
+
+
+export function apiNoticeDetail(data={}){
+ return request({
+ url:"/wallNewsDetail",
+ data
+ })
+}
+
+
+export function apiSearchData(data={}){
+ return request({
+ url:"/searchWall",
+ data
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner1.jpg"
new file mode 100644
index 000000000..5f6470eee
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner2.jpg"
new file mode 100644
index 000000000..218ba07b8
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner3.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner3.jpg"
new file mode 100644
index 000000000..c444a9732
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/banner3.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/classify1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/classify1.jpg"
new file mode 100644
index 000000000..040047c8a
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/classify1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/classify2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/classify2.jpg"
new file mode 100644
index 000000000..7de667b60
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/classify2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/more.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/more.jpg"
new file mode 100644
index 000000000..8cc2ff330
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/more.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview1.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview1.jpg"
new file mode 100644
index 000000000..0413ad885
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview1.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview2.jpg"
new file mode 100644
index 000000000..335d86ad9
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview_small.webp" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview_small.webp"
new file mode 100644
index 000000000..716f2cbe6
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/images/preview_small.webp" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/style/base-style.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/style/base-style.scss"
new file mode 100644
index 000000000..c4d5643c6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/style/base-style.scss"
@@ -0,0 +1,9 @@
+$brand-theme-color:#28B389; //品牌主体红色
+
+$border-color:#e0e0e0; //边框颜色
+$border-color-light:#efefef; //边框亮色
+
+$text-font-color-1:#000; //文字主色
+$text-font-color-2:#676767; //副标题颜色
+$text-font-color-3:#a7a7a7; //浅色
+$text-font-color-4:#e4e4e4; //更浅
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/style/common-style.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/style/common-style.scss"
new file mode 100644
index 000000000..e182489e8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/common/style/common-style.scss"
@@ -0,0 +1,19 @@
+view,swiper,swiper-item{
+ box-sizing: border-box;
+}
+
+.pageBg{
+ background:
+ linear-gradient(to bottom,transparent,#fff 400rpx),
+ linear-gradient(to right,#beecd8 20%,#F4E2D8);
+ min-height: 80vh;
+}
+
+.loadingLayout{
+ padding:30rpx 0;
+}
+
+.safe-area-inset-bottom{
+ height: env(safe-area-inset-bottom);
+}
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/common-title/common-title.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/common-title/common-title.vue"
new file mode 100644
index 000000000..f78a4c62b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/common-title/common-title.vue"
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/custom-nav-bar/custom-nav-bar.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/custom-nav-bar/custom-nav-bar.vue"
new file mode 100644
index 000000000..e7adc38b9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/custom-nav-bar/custom-nav-bar.vue"
@@ -0,0 +1,81 @@
+
+
+
+
+
+ {{title}}
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/theme-item/theme-item.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/theme-item/theme-item.vue"
new file mode 100644
index 000000000..a3ca102b2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/components/theme-item/theme-item.vue"
@@ -0,0 +1,96 @@
+
+
+
+
+
+ {{item.name}}
+ {{compareTimestamp(item.updateTime)}}前更新
+
+
+
+
+
+
+ 更多
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/index.html"
new file mode 100644
index 000000000..c3ff205f6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/index.html"
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/main.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/main.js"
new file mode 100644
index 000000000..c1caf3606
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/main.js"
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/manifest.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/manifest.json"
new file mode 100644
index 000000000..1b72055e4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/manifest.json"
@@ -0,0 +1,124 @@
+{
+ "name" : "咸虾米壁纸",
+ "appid" : "__UNI__B8FCDB7",
+ "description" : "",
+ "versionName" : "1.0.1",
+ "versionCode" : 101,
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "abiFilters" : [ "arm64-v8a", "x86" ]
+ },
+ /* ios打包配置 */
+ "ios" : {
+ "dSYMs" : false
+ },
+ /* SDK配置 */
+ "sdkConfigs" : {
+ "ad" : {}
+ },
+ "icons" : {
+ "android" : {
+ "hdpi" : "unpackage/res/icons/72x72.png",
+ "xhdpi" : "unpackage/res/icons/96x96.png",
+ "xxhdpi" : "unpackage/res/icons/144x144.png",
+ "xxxhdpi" : "unpackage/res/icons/192x192.png"
+ },
+ "ios" : {
+ "appstore" : "unpackage/res/icons/1024x1024.png",
+ "ipad" : {
+ "app" : "unpackage/res/icons/76x76.png",
+ "app@2x" : "unpackage/res/icons/152x152.png",
+ "notification" : "unpackage/res/icons/20x20.png",
+ "notification@2x" : "unpackage/res/icons/40x40.png",
+ "proapp@2x" : "unpackage/res/icons/167x167.png",
+ "settings" : "unpackage/res/icons/29x29.png",
+ "settings@2x" : "unpackage/res/icons/58x58.png",
+ "spotlight" : "unpackage/res/icons/40x40.png",
+ "spotlight@2x" : "unpackage/res/icons/80x80.png"
+ },
+ "iphone" : {
+ "app@2x" : "unpackage/res/icons/120x120.png",
+ "app@3x" : "unpackage/res/icons/180x180.png",
+ "notification@2x" : "unpackage/res/icons/40x40.png",
+ "notification@3x" : "unpackage/res/icons/60x60.png",
+ "settings@2x" : "unpackage/res/icons/58x58.png",
+ "settings@3x" : "unpackage/res/icons/87x87.png",
+ "spotlight@2x" : "unpackage/res/icons/80x80.png",
+ "spotlight@3x" : "unpackage/res/icons/120x120.png"
+ }
+ }
+ },
+ "splashscreen" : {
+ "useOriginalMsgbox" : false
+ }
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false,
+ "minified" : true
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true,
+ "appid" : "tt3c564aeba36527e001",
+ "setting" : {
+ "minified" : true
+ }
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3",
+ "h5" : {
+ "title" : "咸虾米壁纸",
+ "router" : {
+ "base" : "/xxmwall/",
+ "mode" : "hash"
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages.json"
new file mode 100644
index 000000000..66fe6ee51
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages.json"
@@ -0,0 +1,99 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/classify/classify",
+ "style" :
+ {
+ "navigationBarTitleText" : "分类",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/user/user",
+ "style" :
+ {
+ "navigationBarTitleText" : "我的",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/classlist/classlist",
+ "style" :
+ {
+ "navigationBarTitleText" : "分类列表",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/preview/preview",
+ "style" :
+ {
+ "navigationBarTitleText" : "预览",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/notice/notice",
+ "style" :
+ {
+ "navigationBarTitleText" : "公告",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/notice/detail",
+ "style" :
+ {
+ "navigationBarTitleText" : "公告详情",
+ "enablePullDownRefresh" : false
+ }
+ },
+ {
+ "path" : "pages/search/search",
+ "style" :
+ {
+ "navigationBarTitleText" : "搜索",
+ "enablePullDownRefresh" : false
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "咸虾米壁纸",
+ "navigationBarBackgroundColor": "#fff",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#9799a5",
+ "selectedColor": "#28B389",
+ "list": [
+ {
+ "text": "推荐",
+ "pagePath": "pages/index/index",
+ "iconPath": "static/images/tabBar/home.png",
+ "selectedIconPath": "static/images/tabBar/home-h.png"
+ },{
+ "text": "分类",
+ "pagePath": "pages/classify/classify",
+ "iconPath": "static/images/tabBar/classify.png",
+ "selectedIconPath": "static/images/tabBar/classify-h.png"
+ },{
+ "text": "我的",
+ "pagePath": "pages/user/user",
+ "iconPath": "static/images/tabBar/user.png",
+ "selectedIconPath": "static/images/tabBar/user-h.png"
+ }
+ ]
+ },
+ "uniIdRouter": {}
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/classify/classify.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/classify/classify.vue"
new file mode 100644
index 000000000..e9cba8f79
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/classify/classify.vue"
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/classlist/classlist.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/classlist/classlist.vue"
new file mode 100644
index 000000000..7148901af
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/classlist/classlist.vue"
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/index/index.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/index/index.vue"
new file mode 100644
index 000000000..a2653cc07
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/index/index.vue"
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 公告
+
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+
+
+
+ 每日推荐
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 专题精选
+
+ More+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/notice/detail.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/notice/detail.vue"
new file mode 100644
index 000000000..e4c92edc3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/notice/detail.vue"
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ {{detail.title}}
+
+
+
+ {{detail.author}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 阅读 {{detail.view_count}}
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/notice/notice.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/notice/notice.vue"
new file mode 100644
index 000000000..852490f13
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/notice/notice.vue"
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/preview/preview.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/preview/preview.vue"
new file mode 100644
index 000000000..963c5c968
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/preview/preview.vue"
@@ -0,0 +1,604 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{currentIndex+1}} / {{classList.length}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/search/search.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/search/search.vue"
new file mode 100644
index 000000000..014008d1d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/search/search.vue"
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+ 最近搜索
+
+
+
+
+
+ {{tab}}
+
+
+
+
+
+ 热门搜索
+
+
+ {{tab}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/user/user.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/user/user.vue"
new file mode 100644
index 000000000..a6f4b0523
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/pages/user/user.vue"
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+ {{userinfo.IP}}
+ 来自于:
+ {{ userinfo.address.city || userinfo.address.province || userinfo.address.country}}
+
+
+
+
+
+
+
+
+
+
+ 我的下载
+
+
+ {{userinfo.downloadSize}}
+
+
+
+
+
+
+
+ 我的评分
+
+
+ {{userinfo.scoreSize}}
+
+
+
+
+
+
+
+ 联系客服
+
+
+
+
+
+
+ 联系客服
+
+
+ 拨打电话
+
+
+
+
+
+
+
+
+
+
+
+
+ 订阅更新
+
+
+
+
+
+
+
+
+
+
+ 常见问题
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/logo2.jpg" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/logo2.jpg"
new file mode 100644
index 000000000..2746e8674
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/logo2.jpg" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/classify-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/classify-h.png"
new file mode 100644
index 000000000..2858107ef
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/classify-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/classify.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/classify.png"
new file mode 100644
index 000000000..d32bc6c75
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/classify.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/home-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/home-h.png"
new file mode 100644
index 000000000..e86e1dd9c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/home-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/home.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/home.png"
new file mode 100644
index 000000000..591aa1a19
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/home.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/user-h.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/user-h.png"
new file mode 100644
index 000000000..fa8b717cf
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/user-h.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/user.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/user.png"
new file mode 100644
index 000000000..6d53fc02c
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/tabBar/user.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/xxmLogo.png" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/xxmLogo.png"
new file mode 100644
index 000000000..d822b165e
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/static/images/xxmLogo.png" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni.promisify.adaptor.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni.promisify.adaptor.js"
new file mode 100644
index 000000000..47fbce111
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni.promisify.adaptor.js"
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni.scss"
new file mode 100644
index 000000000..3f7a4ba0f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni.scss"
@@ -0,0 +1,62 @@
+@import "@/common/style/base-style.scss";
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/README.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/README.md"
new file mode 100644
index 000000000..dcfcc2c6a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/README.md"
@@ -0,0 +1,193 @@
+## 为减小组件包的大小,默认组件包中不包含编辑、latex 公式等扩展功能,需要使用扩展功能的请参考下方的 插件扩展 栏的说明
+
+## 功能介绍
+- 全端支持(含 `v3、NVUE`)
+- 支持丰富的标签(包括 `table`、`video`、`svg` 等)
+- 支持丰富的事件效果(自动预览图片、链接处理等)
+- 支持设置占位图(加载中、出错时、预览时)
+- 支持锚点跳转、长按复制等丰富功能
+- 支持大部分 *html* 实体
+- 丰富的插件(关键词搜索、内容编辑、`latex` 公式等)
+- 效率高、容错性强且轻量化
+
+查看 [功能介绍](https://jin-yufeng.gitee.io/mp-html/#/overview/feature) 了解更多
+
+## 使用方法
+- `uni_modules` 方式
+ 1. 点击右上角的 `使用 HBuilder X 导入插件` 按钮直接导入项目或点击 `下载插件 ZIP` 按钮下载插件包并解压到项目的 `uni_modules/mp-html` 目录下
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+
+ ```
+ ```javascript
+ export default {
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+ 3. 需要更新版本时在 `HBuilder X` 中右键 `uni_modules/mp-html` 目录选择 `从插件市场更新` 即可
+
+- 源码方式
+ 1. 从 [github](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 或 [gitee](https://gitee.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 下载源码
+ 插件市场的 **非 uni_modules 版本** 无法更新,不建议从插件市场获取
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+ ```
+ ```javascript
+ import mpHtml from '@/components/mp-html/mp-html'
+ export default {
+ // HBuilderX 2.5.5+ 可以通过 easycom 自动引入
+ components: {
+ mpHtml
+ },
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+
+- npm 方式
+ 1. 在项目根目录下执行
+ ```bash
+ npm install mp-html
+ ```
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+ ```
+ ```javascript
+ import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
+ export default {
+ // 不可省略
+ components: {
+ mpHtml
+ },
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+ 3. 需要更新版本时执行以下命令即可
+ ```bash
+ npm update mp-html
+ ```
+
+ 使用 *cli* 方式运行的项目,通过 *npm* 方式引入时,需要在 *vue.config.js* 中配置 *transpileDependencies*,详情可见 [#330](https://github.com/jin-yufeng/mp-html/issues/330#issuecomment-913617687)
+ 如果在 **nvue** 中使用还要将 `dist/uni-app/static` 目录下的内容拷贝到项目的 `static` 目录下,否则无法运行
+
+查看 [快速开始](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart) 了解更多
+
+## 组件属性
+
+| 属性 | 类型 | 默认值 | 说明 |
+|:---:|:---:|:---:|---|
+| container-style | String | | 容器的样式([2.1.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v210)) |
+| content | String | | 用于渲染的 html 字符串 |
+| copy-link | Boolean | true | 是否允许外部链接被点击时自动复制 |
+| domain | String | | 主域名(用于链接拼接) |
+| error-img | String | | 图片出错时的占位图链接 |
+| lazy-load | Boolean | false | 是否开启图片懒加载 |
+| loading-img | String | | 图片加载过程中的占位图链接 |
+| pause-video | Boolean | true | 是否在播放一个视频时自动暂停其他视频 |
+| preview-img | Boolean | true | 是否允许图片被点击时自动预览 |
+| scroll-table | Boolean | false | 是否给每个表格添加一个滚动层使其能单独横向滚动 |
+| selectable | Boolean | false | 是否开启文本长按复制 |
+| set-title | Boolean | true | 是否将 title 标签的内容设置到页面标题 |
+| show-img-menu | Boolean | true | 是否允许图片被长按时显示菜单 |
+| tag-style | Object | | 设置标签的默认样式 |
+| use-anchor | Boolean | false | 是否使用锚点链接 |
+
+查看 [属性](https://jin-yufeng.gitee.io/mp-html/#/basic/prop) 了解更多
+
+## 组件事件
+
+| 名称 | 触发时机 |
+|:---:|---|
+| load | dom 树加载完毕时 |
+| ready | 图片加载完毕时 |
+| error | 发生渲染错误时 |
+| imgtap | 图片被点击时 |
+| linktap | 链接被点击时 |
+| play | 音视频播放时 |
+
+查看 [事件](https://jin-yufeng.gitee.io/mp-html/#/basic/event) 了解更多
+
+## api
+组件实例上提供了一些 `api` 方法可供调用
+
+| 名称 | 作用 |
+|:---:|---|
+| in | 将锚点跳转的范围限定在一个 scroll-view 内 |
+| navigateTo | 锚点跳转 |
+| getText | 获取文本内容 |
+| getRect | 获取富文本内容的位置和大小 |
+| setContent | 设置富文本内容 |
+| imgList | 获取所有图片的数组 |
+| pauseMedia | 暂停播放音视频([2.2.2+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v222)) |
+| setPlaybackRate | 设置音视频播放速率([2.4.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v240)) |
+
+查看 [api](https://jin-yufeng.gitee.io/mp-html/#/advanced/api) 了解更多
+
+## 插件扩展
+除基本功能外,本组件还提供了丰富的扩展,可按照需要选用
+
+| 名称 | 作用 |
+|:---:|---|
+| audio | 音乐播放器 |
+| editable | 富文本 **编辑**([示例项目](https://mp-html.oss-cn-hangzhou.aliyuncs.com/editable.zip)) |
+| emoji | 解析 emoji |
+| highlight | 代码块高亮显示 |
+| markdown | 渲染 markdown |
+| search | 关键词搜索 |
+| style | 匹配 style 标签中的样式 |
+| txv-video | 使用腾讯视频 |
+| img-cache | 图片缓存 by [@PentaTea](https://github.com/PentaTea) |
+| latex | 渲染 latex 公式 by [@Zeng-J](https://github.com/Zeng-J) |
+
+从插件市场导入的包中 **不含有** 扩展插件,使用插件需通过微信小程序 `富文本插件` 获取或参考以下方法进行打包:
+1. 获取完整组件包
+ ```bash
+ npm install mp-html
+ ```
+2. 编辑 `tools/config.js` 中的 `plugins` 项,选择需要的插件
+3. 生成新的组件包
+ 在 `node_modules/mp-html` 目录下执行
+ ```bash
+ npm install
+ npm run build:uni-app
+ ```
+4. 拷贝 `dist/uni-app` 中的内容到项目根目录
+
+查看 [插件](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin) 了解更多
+
+## 关于 nvue
+`nvue` 使用原生渲染,不支持部分 `css` 样式,为实现和 `html` 相同的效果,组件内部通过 `web-view` 进行渲染,性能上差于原生,根据 `weex` 官方建议,`web` 标签仅应用在非常规的降级场景。因此,如果通过原生的方式(如 `richtext`)能够满足需要,则不建议使用本组件,如果有较多的富文本内容,则可以直接使用 `vue` 页面
+由于渲染方式与其他端不同,有以下限制:
+1. 不支持 `lazy-load` 属性
+2. 视频不支持全屏播放
+3. 如果在 `flex-direction: row` 的容器中使用,需要给组件设置宽度或设置 `flex: 1` 占满剩余宽度
+
+纯 `nvue` 模式下,[此问题](https://ask.dcloud.net.cn/question/119678) 修复前,不支持通过 `uni_modules` 引入,需要本地引入(将 [dist/uni-app](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 中的内容拷贝到项目根目录下)
+
+## 立即体验
+
+
+## 问题反馈
+遇到问题时,请先查阅 [常见问题](https://jin-yufeng.gitee.io/mp-html/#/question/faq) 和 [issue](https://github.com/jin-yufeng/mp-html/issues) 中是否已有相同的问题
+可通过 [issue](https://github.com/jin-yufeng/mp-html/issues/new/choose) 、插件问答或发送邮件到 [mp_html@126.com](mailto:mp_html@126.com) 提问,不建议在评论区提问(不方便回复)
+提问请严格按照 [issue 模板](https://github.com/jin-yufeng/mp-html/issues/new/choose) ,描述清楚使用环境、`html` 内容或可复现的 `demo` 项目以及复现方式,对于 **描述不清**、**无法复现** 或重复的问题将不予回复
+
+欢迎加入 `QQ` 交流群:
+群1(已满):`699734691`
+群2:`778239129`
+
+查看 [问题反馈](https://jin-yufeng.gitee.io/mp-html/#/question/feedback) 了解更多
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/changelog.md"
new file mode 100644
index 000000000..537357c8e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/changelog.md"
@@ -0,0 +1,138 @@
+## v2.4.3(2024-01-21)
+1. `A` 增加 [card](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#card) 插件 [详细](https://github.com/jin-yufeng/mp-html/pull/533) by [@whoooami](https://github.com/whoooami)
+2. `F` 修复了 `svg` 中包含 `foreignobject` 可能不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/523)
+3. `F` 修复了合并单元格的表格部分情况下显示不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/561)
+4. `F` 修复了 `img` 标签设置 `object-fit` 无效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/567)
+5. `F` 修复了 `latex` 插件公式会换行的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/540)
+6. `F` 修复了 `editable` 和 `audio` 插件共用时点击 `audio` 无法编辑的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/529) by [@whoooami](https://github.com/whoooami)
+7. `F` 修复了微信小程序部分情况下图片会报错 `replace of undefined` 的问题
+8. `F` 修复了快手小程序图片不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/571)
+## v2.4.2(2023-05-14)
+1. `A` `editable` 插件支持修改文字颜色 [详细](https://github.com/jin-yufeng/mp-html/issues/254)
+2. `F` 修复了 `svg` 中有 `style` 不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/505)
+3. `F` 修复了使用旧版编译器可能报错 `Bad attr nodes` 的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/472)
+4. `F` 修复了 `app` 端可能出现无法读取 `lazyLoad` 的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/513)
+5. `F` 修复了 `editable` 插件在点击换图时未拼接 `domain` 的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/497) by [@TwoKe945](https://github.com/TwoKe945)
+6. `F` 修复了 `latex` 插件部分情况下不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/515)
+7. `F` 修复了 `editable` 插件点击音视频时其他标签框不消失的问题
+## v2.4.1(2022-12-25)
+1. `F` 修复了没有图片时 `ready` 事件可能不触发的问题
+2. `F` 修复了加载过程中可能出现 `Root label not found` 错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/470)
+3. `F` 修复了 `audio` 插件退出页面可能会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/457)
+4. `F` 修复了 `vue3` 运行到 `app` 在 `HBuilder X 3.6.10` 以上报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/480)
+5. `F` 修复了 `nvue` 端链接中包含 `%22` 时可能无法显示的问题
+6. `F` 修复了 `vue3` 使用 `highlight` 插件可能报错的问题
+## v2.4.0(2022-08-27)
+1. `A` 增加了 [setPlaybackRate](https://jin-yufeng.gitee.io/mp-html/#/advanced/api#setPlaybackRate) 的 `api`,可以设置音视频的播放速率 [详细](https://github.com/jin-yufeng/mp-html/issues/452)
+2. `A` 示例小程序代码开源 [详细](https://github.com/jin-yufeng/mp-html-demo)
+3. `U` 优化 `ready` 事件触发时机,未设置懒加载的情况下基本可以准确触发 [详细](https://github.com/jin-yufeng/mp-html/issues/195)
+4. `U` `highlight` 插件在编辑状态下不进行高亮处理,便于编辑
+5. `F` 修复了 `flex` 布局下图片大小可能不正确的问题
+6. `F` 修复了 `selectable` 属性没有设置 `force` 也可能出现渲染异常的问题
+7. `F` 修复了表格中的图片大小可能不正确的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/448)
+8. `F` 修复了含有合并单元格的表格可能无法设置竖直对齐的问题
+9. `F` 修复了 `editable` 插件在 `scroll-view` 中使用时工具条位置可能不正确的问题
+10. `F` 修复了 `vue3` 使用 [search](advanced/plugin#search) 插件可能导致错误换行的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/449)
+## v2.3.2(2022-08-13)
+1. `A` 增加 [latex](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#latex) 插件,可以渲染数学公式 [详细](https://github.com/jin-yufeng/mp-html/pull/447) by [@Zeng-J](https://github.com/Zeng-J)
+2. `U` 优化根节点下有很多标签的长内容渲染速度
+3. `U` `highlight` 插件适配 `lang-xxx` 格式
+4. `F` 修复了 `table` 标签设置 `border` 属性后可能无法修改边框样式的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/439) by [@zouxingjie](https://github.com/zouxingjie)
+5. `F` 修复了 `editable` 插件输入连续空格无效的问题
+6. `F` 修复了 `vue3` 图片设置 `inline` 会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/438)
+7. `F` 修复了 `vue3` 使用 `table` 可能报错的问题
+## v2.3.1(2022-05-20)
+1. `U` `app` 端支持使用本地图片
+2. `U` 优化了微信小程序 `selectable` 属性在 `ios` 端的处理 [详细](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable)
+3. `F` 修复了 `editable` 插件不在顶部时 `tooltip` 位置可能错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/430)
+4. `F` 修复了 `vue3` 运行到微信小程序可能报错丢失内容的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/414)
+5. `F` 修复了 `vue3` 部分标签可能被错误换行的问题
+6. `F` 修复了 `editable` 插件 `app` 端插入视频无法预览的问题
+## v2.3.0(2022-04-01)
+1. `A` 增加了 `play` 事件,音视频播放时触发,可用于与页面其他音视频进行互斥播放 [详细](basic/event#play)
+2. `U` `show-img-menu` 属性支持控制预览时是否长按弹出菜单
+3. `U` 优化 `wxs` 处理,提高渲染性能 [详细](https://developers.weixin.qq.com/community/develop/article/doc/0006cc2b204740f601bd43fa25a413)
+4. `U` `video` 标签支持 `object-fit` 属性
+5. `U` 增加支持一些常用实体编码 [详细](https://github.com/jin-yufeng/mp-html/issues/418)
+6. `F` 修复了图片仅设置高度可能不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/410)
+7. `F` 修复了 `video` 标签高度设置为 `auto` 不显示的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/411)
+8. `F` 修复了使用 `grid` 布局时可能样式错误的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/413)
+9. `F` 修复了含有合并单元格的表格部分情况下显示异常的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/417)
+10. `F` 修复了 `editable` 插件连续插入内容时顺序不正确的问题
+11. `F` 修复了 `uni-app` 包 `vue3` 使用 `audio` 插件报错的问题
+12. `F` 修复了 `uni-app` 包 `highlight` 插件使用自定义的 `prism.min.js` 报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/416)
+## v2.2.2(2022-02-26)
+1. `A` 增加了 [pauseMedia](https://jin-yufeng.gitee.io/mp-html/#/advanced/api#pauseMedia) 的 `api`,可用于暂停播放音视频 [详细](https://github.com/jin-yufeng/mp-html/issues/317)
+2. `U` 优化了长内容的加载速度
+3. `U` 适配 `vue3` [#389](https://github.com/jin-yufeng/mp-html/issues/389)、[#398](https://github.com/jin-yufeng/mp-html/pull/398) by [@zhouhuafei](https://github.com/zhouhuafei)、[#400](https://github.com/jin-yufeng/mp-html/issues/400)
+4. `F` 修复了小程序端图片高度设置为百分比时可能不显示的问题
+5. `F` 修复了 `highlight` 插件部分情况下可能显示不完整的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/403)
+## v2.2.1(2021-12-24)
+1. `A` `editable` 插件增加上下移动标签功能
+2. `U` `editable` 插件支持在文本中间光标处插入内容
+3. `F` 修复了 `nvue` 端设置 `margin` 后可能导致高度不正确的问题
+4. `F` 修复了 `highlight` 插件使用压缩版的 `prism.css` 可能导致背景失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/367)
+5. `F` 修复了编辑状态下使用 `emoji` 插件内容为空时可能报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/371)
+6. `F` 修复了使用 `editable` 插件后将 `selectable` 属性设置为 `force` 不生效的问题
+## v2.2.0(2021-10-12)
+1. `A` 增加 `customElements` 配置项,便于添加自定义功能性标签 [详细](https://github.com/jin-yufeng/mp-html/issues/350)
+2. `A` `editable` 插件增加切换音视频自动播放状态的功能 [详细](https://github.com/jin-yufeng/mp-html/pull/341) by [@leeseett](https://github.com/leeseett)
+3. `A` `editable` 插件删除媒体标签时触发 `remove` 事件,便于删除已上传的文件
+4. `U` `editable` 插件 `insertImg` 方法支持同时插入多张图片 [详细](https://github.com/jin-yufeng/mp-html/issues/342)
+5. `U` `editable` 插入图片和音视频时支持拼接 `domian` 主域名
+6. `F` 修复了内部链接参数中包含 `://` 时被认为是外部链接的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/356)
+7. `F` 修复了部分 `svg` 标签名或属性名大小写不正确时不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/351)
+8. `F` 修复了 `nvue` 页面运行到非 `app` 平台时可能样式错误的问题
+## v2.1.5(2021-08-13)
+1. `A` 增加支持标签的 `dir` 属性
+2. `F` 修复了 `ruby` 标签文字与拼音没有居中对齐的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/325)
+3. `F` 修复了音视频标签内有 `a` 标签时可能无法播放的问题
+4. `F` 修复了 `externStyle` 中的 `class` 名包含下划线或数字时可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326)
+5. `F` 修复了 `h5` 端引入 `externStyle` 可能不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326)
+## v2.1.4(2021-07-14)
+1. `F` 修复了 `rt` 标签无法设置样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/318)
+2. `F` 修复了表格中有单元格同时合并行和列时可能显示不正确的问题
+3. `F` 修复了 `app` 端无法关闭图片长按菜单的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/322)
+4. `F` 修复了 `editable` 插件只能添加图片链接不能修改的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/312) by [@leeseett](https://github.com/leeseett)
+## v2.1.3(2021-06-12)
+1. `A` `editable` 插件增加 `insertTable` 方法
+2. `U` `editable` 插件支持编辑表格中的空白单元格 [详细](https://github.com/jin-yufeng/mp-html/issues/310)
+3. `F` 修复了 `externStyle` 中使用伪类可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/298)
+4. `F` 修复了多个组件同时使用时 `tag-style` 属性时可能互相影响的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/305) by [@woodguoyu](https://github.com/woodguoyu)
+5. `F` 修复了包含 `linearGradient` 的 `svg` 可能无法显示的问题
+6. `F` 修复了编译到头条小程序时可能报错的问题
+7. `F` 修复了 `nvue` 端不触发 `click` 事件的问题
+8. `F` 修复了 `editable` 插件尾部插入时无法撤销的问题
+9. `F` 修复了 `editable` 插件的 `insertHtml` 方法只能在末尾插入的问题
+10. `F` 修复了 `editable` 插件插入音频不显示的问题
+## v2.1.2(2021-04-24)
+1. `A` 增加了 [img-cache](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#img-cache) 插件,可以在 `app` 端缓存图片 [详细](https://github.com/jin-yufeng/mp-html/issues/292) by [@PentaTea](https://github.com/PentaTea)
+2. `U` 支持通过 `container-style` 属性设置 `white-space` 来保留连续空格和换行符 [详细](https://jin-yufeng.gitee.io/mp-html/#/question/faq#space)
+3. `U` 代码风格符合 [standard](https://standardjs.com) 标准
+4. `U` `editable` 插件编辑状态下支持预览视频 [详细](https://github.com/jin-yufeng/mp-html/issues/286)
+5. `F` 修复了 `svg` 标签内嵌 `svg` 时无法显示的问题
+6. `F` 修复了编译到支付宝和头条小程序时部分区域不可复制的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/291)
+## v2.1.1(2021-04-09)
+1. 修复了对 `p` 标签设置 `tag-style` 可能不生效的问题
+2. 修复了 `svg` 标签中的文本无法显示的问题
+3. 修复了使用 `editable` 插件编辑表格时可能报错的问题
+4. 修复了使用 `highlight` 插件运行到头条小程序时可能没有样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/280)
+5. 修复了使用 `editable` 插件 `editable` 属性为 `false` 时会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/284)
+6. 修复了 `style` 插件连续子选择器失效的问题
+7. 修复了 `editable` 插件无法修改图片和字体大小的问题
+## v2.1.0.2(2021-03-21)
+修复了 `nvue` 端使用可能报错的问题
+## v2.1.0(2021-03-20)
+1. `A` 增加了 [container-style](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#container-style) 属性 [详细](https://gitee.com/jin-yufeng/mp-html/pulls/1)
+2. `A` 增加支持 `strike` 标签
+3. `A` `editable` 插件增加 `placeholder` 属性 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable)
+4. `A` `editable` 插件增加 `insertHtml` 方法 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable)
+5. `U` 外部样式支持标签名选择器 [详细](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart#setting)
+6. `F` 修复了 `nvue` 端部分情况下可能不显示的问题
+## v2.0.5(2021-03-12)
+1. `U` [linktap](https://jin-yufeng.gitee.io/mp-html/#/basic/event#linktap) 事件增加返回内部文本内容 `innerText` [详细](https://github.com/jin-yufeng/mp-html/issues/271)
+2. `U` [selectable](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable) 属性设置为 `force` 时能够在微信 `iOS` 端生效(文本块会变成 `inline-block`) [详细](https://github.com/jin-yufeng/mp-html/issues/267)
+3. `F` 修复了部分情况下竖向无法滚动的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/182)
+4. `F` 修复了多次修改富文本数据时部分内容可能不显示的问题
+5. `F` 修复了 [腾讯视频](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#txv-video) 插件可能无法播放的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/265)
+6. `F` 修复了 [highlight](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#highlight) 插件没有设置高亮语言时没有应用默认样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/276) by [@fuzui](https://github.com/fuzui)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/mp-html.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/mp-html.vue"
new file mode 100644
index 000000000..ec701157a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/mp-html.vue"
@@ -0,0 +1,498 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/node/node.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/node/node.vue"
new file mode 100644
index 000000000..c5ef09476
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/node/node.vue"
@@ -0,0 +1,579 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{n.text}}
+
+
+ {{n.text}}
+
+ \n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/parser.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/parser.js"
new file mode 100644
index 000000000..e75616598
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/components/mp-html/parser.js"
@@ -0,0 +1,1372 @@
+/**
+ * @fileoverview html 解析器
+ */
+
+// 配置
+const config = {
+ // 信任的标签(保持标签名不变)
+ trustTags: makeMap('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'),
+
+ // 块级标签(转为 div,其他的非信任标签转为 span)
+ blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section'),
+
+ // #ifdef (MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE3
+ // 行内标签
+ inlineTags: makeMap('abbr,b,big,code,del,em,i,ins,label,q,small,span,strong,sub,sup'),
+ // #endif
+
+ // 要移除的标签
+ ignoreTags: makeMap('area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr'),
+
+ // 自闭合的标签
+ voidTags: makeMap('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'),
+
+ // html 实体
+ entities: {
+ lt: '<',
+ gt: '>',
+ quot: '"',
+ apos: "'",
+ ensp: '\u2002',
+ emsp: '\u2003',
+ nbsp: '\xA0',
+ semi: ';',
+ ndash: '–',
+ mdash: '—',
+ middot: '·',
+ lsquo: '‘',
+ rsquo: '’',
+ ldquo: '“',
+ rdquo: '”',
+ bull: '•',
+ hellip: '…',
+ larr: '←',
+ uarr: '↑',
+ rarr: '→',
+ darr: '↓'
+ },
+
+ // 默认的标签样式
+ tagStyle: {
+ // #ifndef APP-PLUS-NVUE
+ address: 'font-style:italic',
+ big: 'display:inline;font-size:1.2em',
+ caption: 'display:table-caption;text-align:center',
+ center: 'text-align:center',
+ cite: 'font-style:italic',
+ dd: 'margin-left:40px',
+ mark: 'background-color:yellow',
+ pre: 'font-family:monospace;white-space:pre',
+ s: 'text-decoration:line-through',
+ small: 'display:inline;font-size:0.8em',
+ strike: 'text-decoration:line-through',
+ u: 'text-decoration:underline'
+ // #endif
+ },
+
+ // svg 大小写对照表
+ svgDict: {
+ animatetransform: 'animateTransform',
+ lineargradient: 'linearGradient',
+ viewbox: 'viewBox',
+ attributename: 'attributeName',
+ repeatcount: 'repeatCount',
+ repeatdur: 'repeatDur',
+ foreignobject: 'foreignObject'
+ }
+}
+const tagSelector={}
+const {
+ windowWidth,
+ // #ifdef MP-WEIXIN
+ system
+ // #endif
+} = uni.getSystemInfoSync()
+const blankChar = makeMap(' ,\r,\n,\t,\f')
+let idIndex = 0
+
+// #ifdef H5 || APP-PLUS
+config.ignoreTags.iframe = undefined
+config.trustTags.iframe = true
+config.ignoreTags.embed = undefined
+config.trustTags.embed = true
+// #endif
+// #ifdef APP-PLUS-NVUE
+config.ignoreTags.source = undefined
+config.ignoreTags.style = undefined
+// #endif
+
+/**
+ * @description 创建 map
+ * @param {String} str 逗号分隔
+ */
+function makeMap (str) {
+ const map = Object.create(null)
+ const list = str.split(',')
+ for (let i = list.length; i--;) {
+ map[list[i]] = true
+ }
+ return map
+}
+
+/**
+ * @description 解码 html 实体
+ * @param {String} str 要解码的字符串
+ * @param {Boolean} amp 要不要解码 &
+ * @returns {String} 解码后的字符串
+ */
+function decodeEntity (str, amp) {
+ let i = str.indexOf('&')
+ while (i !== -1) {
+ const j = str.indexOf(';', i + 3)
+ let code
+ if (j === -1) break
+ if (str[i + 1] === '#') {
+ // { 形式的实体
+ code = parseInt((str[i + 2] === 'x' ? '0' : '') + str.substring(i + 2, j))
+ if (!isNaN(code)) {
+ str = str.substr(0, i) + String.fromCharCode(code) + str.substr(j + 1)
+ }
+ } else {
+ // 形式的实体
+ code = str.substring(i + 1, j)
+ if (config.entities[code] || (code === 'amp' && amp)) {
+ str = str.substr(0, i) + (config.entities[code] || '&') + str.substr(j + 1)
+ }
+ }
+ i = str.indexOf('&', i + 1)
+ }
+ return str
+}
+
+/**
+ * @description 合并多个块级标签,加快长内容渲染
+ * @param {Array} nodes 要合并的标签数组
+ */
+function mergeNodes (nodes) {
+ let i = nodes.length - 1
+ for (let j = i; j >= -1; j--) {
+ if (j === -1 || nodes[j].c || !nodes[j].name || (nodes[j].name !== 'div' && nodes[j].name !== 'p' && nodes[j].name[0] !== 'h') || (nodes[j].attrs.style || '').includes('inline')) {
+ if (i - j >= 5) {
+ nodes.splice(j + 1, i - j, {
+ name: 'div',
+ attrs: {},
+ children: nodes.slice(j + 1, i + 1)
+ })
+ }
+ i = j - 1
+ }
+ }
+}
+
+/**
+ * @description html 解析器
+ * @param {Object} vm 组件实例
+ */
+function Parser (vm) {
+ this.options = vm || {}
+ this.tagStyle = Object.assign({}, config.tagStyle, this.options.tagStyle)
+ this.imgList = vm.imgList || []
+ this.imgList._unloadimgs = 0
+ this.plugins = vm.plugins || []
+ this.attrs = Object.create(null)
+ this.stack = []
+ this.nodes = []
+ this.pre = (this.options.containerStyle || '').includes('white-space') && this.options.containerStyle.includes('pre') ? 2 : 0
+}
+
+/**
+ * @description 执行解析
+ * @param {String} content 要解析的文本
+ */
+Parser.prototype.parse = function (content) {
+ // 插件处理
+ for (let i = this.plugins.length; i--;) {
+ if (this.plugins[i].onUpdate) {
+ content = this.plugins[i].onUpdate(content, config) || content
+ }
+ }
+
+ new Lexer(this).parse(content)
+ // 出栈未闭合的标签
+ while (this.stack.length) {
+ this.popNode()
+ }
+ if (this.nodes.length > 50) {
+ mergeNodes(this.nodes)
+ }
+ return this.nodes
+}
+
+/**
+ * @description 将标签暴露出来(不被 rich-text 包含)
+ */
+Parser.prototype.expose = function () {
+ // #ifndef APP-PLUS-NVUE
+ for (let i = this.stack.length; i--;) {
+ const item = this.stack[i]
+ if (item.c || item.name === 'a' || item.name === 'video' || item.name === 'audio') return
+ item.c = 1
+ }
+ // #endif
+}
+
+/**
+ * @description 处理插件
+ * @param {Object} node 要处理的标签
+ * @returns {Boolean} 是否要移除此标签
+ */
+Parser.prototype.hook = function (node) {
+ for (let i = this.plugins.length; i--;) {
+ if (this.plugins[i].onParse && this.plugins[i].onParse(node, this) === false) {
+ return false
+ }
+ }
+ return true
+}
+
+/**
+ * @description 将链接拼接上主域名
+ * @param {String} url 需要拼接的链接
+ * @returns {String} 拼接后的链接
+ */
+Parser.prototype.getUrl = function (url) {
+ const domain = this.options.domain
+ if (url[0] === '/') {
+ if (url[1] === '/') {
+ // // 开头的补充协议名
+ url = (domain ? domain.split('://')[0] : 'http') + ':' + url
+ } else if (domain) {
+ // 否则补充整个域名
+ url = domain + url
+ } /* #ifdef APP-PLUS */ else {
+ url = plus.io.convertLocalFileSystemURL(url)
+ } /* #endif */
+ } else if (!url.includes('data:') && !url.includes('://')) {
+ if (domain) {
+ url = domain + '/' + url
+ } /* #ifdef APP-PLUS */ else {
+ url = plus.io.convertLocalFileSystemURL(url)
+ } /* #endif */
+ }
+ return url
+}
+
+/**
+ * @description 解析样式表
+ * @param {Object} node 标签
+ * @returns {Object}
+ */
+Parser.prototype.parseStyle = function (node) {
+ const attrs = node.attrs
+ const list = (this.tagStyle[node.name] || '').split(';').concat((attrs.style || '').split(';'))
+ const styleObj = {}
+ let tmp = ''
+
+ if (attrs.id && !this.xml) {
+ // 暴露锚点
+ if (this.options.useAnchor) {
+ this.expose()
+ } else if (node.name !== 'img' && node.name !== 'a' && node.name !== 'video' && node.name !== 'audio') {
+ attrs.id = undefined
+ }
+ }
+
+ // 转换 width 和 height 属性
+ if (attrs.width) {
+ styleObj.width = parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px')
+ attrs.width = undefined
+ }
+ if (attrs.height) {
+ styleObj.height = parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px')
+ attrs.height = undefined
+ }
+
+ for (let i = 0, len = list.length; i < len; i++) {
+ const info = list[i].split(':')
+ if (info.length < 2) continue
+ const key = info.shift().trim().toLowerCase()
+ let value = info.join(':').trim()
+ if ((value[0] === '-' && value.lastIndexOf('-') > 0) || value.includes('safe')) {
+ // 兼容性的 css 不压缩
+ tmp += `;${key}:${value}`
+ } else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) {
+ // 重复的样式进行覆盖
+ if (value.includes('url')) {
+ // 填充链接
+ let j = value.indexOf('(') + 1
+ if (j) {
+ while (value[j] === '"' || value[j] === "'" || blankChar[value[j]]) {
+ j++
+ }
+ value = value.substr(0, j) + this.getUrl(value.substr(j))
+ }
+ } else if (value.includes('rpx')) {
+ // 转换 rpx(rich-text 内部不支持 rpx)
+ value = value.replace(/[0-9.]+\s*rpx/g, $ => parseFloat($) * windowWidth / 750 + 'px')
+ }
+ styleObj[key] = value
+ }
+ }
+
+ node.attrs.style = tmp
+ return styleObj
+}
+
+/**
+ * @description 解析到标签名
+ * @param {String} name 标签名
+ * @private
+ */
+Parser.prototype.onTagName = function (name) {
+ this.tagName = this.xml ? name : name.toLowerCase()
+ if (this.tagName === 'svg') {
+ this.xml = (this.xml || 0) + 1 // svg 标签内大小写敏感
+ config.ignoreTags.style = undefined // svg 标签内 style 可用
+ }
+}
+
+/**
+ * @description 解析到属性名
+ * @param {String} name 属性名
+ * @private
+ */
+Parser.prototype.onAttrName = function (name) {
+ name = this.xml ? name : name.toLowerCase()
+ if (name.substr(0, 5) === 'data-') {
+ if (name === 'data-src' && !this.attrs.src) {
+ // data-src 自动转为 src
+ this.attrName = 'src'
+ } else if (this.tagName === 'img' || this.tagName === 'a') {
+ // a 和 img 标签保留 data- 的属性,可以在 imgtap 和 linktap 事件中使用
+ this.attrName = name
+ } else {
+ // 剩余的移除以减小大小
+ this.attrName = undefined
+ }
+ } else {
+ this.attrName = name
+ this.attrs[name] = 'T' // boolean 型属性缺省设置
+ }
+}
+
+/**
+ * @description 解析到属性值
+ * @param {String} val 属性值
+ * @private
+ */
+Parser.prototype.onAttrVal = function (val) {
+ const name = this.attrName || ''
+ if (name === 'style' || name === 'href') {
+ // 部分属性进行实体解码
+ this.attrs[name] = decodeEntity(val, true)
+ } else if (name.includes('src')) {
+ // 拼接主域名
+ this.attrs[name] = this.getUrl(decodeEntity(val, true))
+ } else if (name) {
+ this.attrs[name] = val
+ }
+}
+
+/**
+ * @description 解析到标签开始
+ * @param {Boolean} selfClose 是否有自闭合标识 />
+ * @private
+ */
+Parser.prototype.onOpenTag = function (selfClose) {
+ // 拼装 node
+ const node = Object.create(null)
+ node.name = this.tagName
+ node.attrs = this.attrs
+ // 避免因为自动 diff 使得 type 被设置为 null 导致部分内容不显示
+ if (this.options.nodes.length) {
+ node.type = 'node'
+ }
+ this.attrs = Object.create(null)
+
+ const attrs = node.attrs
+ const parent = this.stack[this.stack.length - 1]
+ const siblings = parent ? parent.children : this.nodes
+ const close = this.xml ? selfClose : config.voidTags[node.name]
+
+ // 替换标签名选择器
+ if (tagSelector[node.name]) {
+ attrs.class = tagSelector[node.name] + (attrs.class ? ' ' + attrs.class : '')
+ }
+
+ // 转换 embed 标签
+ if (node.name === 'embed') {
+ // #ifndef H5 || APP-PLUS
+ const src = attrs.src || ''
+ // 按照后缀名和 type 将 embed 转为 video 或 audio
+ if (src.includes('.mp4') || src.includes('.3gp') || src.includes('.m3u8') || (attrs.type || '').includes('video')) {
+ node.name = 'video'
+ } else if (src.includes('.mp3') || src.includes('.wav') || src.includes('.aac') || src.includes('.m4a') || (attrs.type || '').includes('audio')) {
+ node.name = 'audio'
+ }
+ if (attrs.autostart) {
+ attrs.autoplay = 'T'
+ }
+ attrs.controls = 'T'
+ // #endif
+ // #ifdef H5 || APP-PLUS
+ this.expose()
+ // #endif
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ // 处理音视频
+ if (node.name === 'video' || node.name === 'audio') {
+ // 设置 id 以便获取 context
+ if (node.name === 'video' && !attrs.id) {
+ attrs.id = 'v' + idIndex++
+ }
+ // 没有设置 controls 也没有设置 autoplay 的自动设置 controls
+ if (!attrs.controls && !attrs.autoplay) {
+ attrs.controls = 'T'
+ }
+ // 用数组存储所有可用的 source
+ node.src = []
+ if (attrs.src) {
+ node.src.push(attrs.src)
+ attrs.src = undefined
+ }
+ this.expose()
+ }
+ // #endif
+
+ // 处理自闭合标签
+ if (close) {
+ if (!this.hook(node) || config.ignoreTags[node.name]) {
+ // 通过 base 标签设置主域名
+ if (node.name === 'base' && !this.options.domain) {
+ this.options.domain = attrs.href
+ } /* #ifndef APP-PLUS-NVUE */ else if (node.name === 'source' && parent && (parent.name === 'video' || parent.name === 'audio') && attrs.src) {
+ // 设置 source 标签(仅父节点为 video 或 audio 时有效)
+ parent.src.push(attrs.src)
+ } /* #endif */
+ return
+ }
+
+ // 解析 style
+ const styleObj = this.parseStyle(node)
+
+ // 处理图片
+ if (node.name === 'img') {
+ if (attrs.src) {
+ // 标记 webp
+ if (attrs.src.includes('webp')) {
+ node.webp = 'T'
+ }
+ // data url 图片如果没有设置 original-src 默认为不可预览的小图片
+ if (attrs.src.includes('data:') && !attrs['original-src']) {
+ attrs.ignore = 'T'
+ }
+ if (!attrs.ignore || node.webp || attrs.src.includes('cloud://')) {
+ for (let i = this.stack.length; i--;) {
+ const item = this.stack[i]
+ if (item.name === 'a') {
+ node.a = item.attrs
+ }
+ if (item.name === 'table' && !node.webp && !attrs.src.includes('cloud://')) {
+ if (!styleObj.display || styleObj.display.includes('inline')) {
+ node.t = 'inline-block'
+ } else {
+ node.t = styleObj.display
+ }
+ styleObj.display = undefined
+ }
+ // #ifndef H5 || APP-PLUS
+ const style = item.attrs.style || ''
+ if (style.includes('flex:') && !style.includes('flex:0') && !style.includes('flex: 0') && (!styleObj.width || parseInt(styleObj.width) > 100)) {
+ styleObj.width = '100% !important'
+ styleObj.height = ''
+ for (let j = i + 1; j < this.stack.length; j++) {
+ this.stack[j].attrs.style = (this.stack[j].attrs.style || '').replace('inline-', '')
+ }
+ } else if (style.includes('flex') && styleObj.width === '100%') {
+ for (let j = i + 1; j < this.stack.length; j++) {
+ const style = this.stack[j].attrs.style || ''
+ if (!style.includes(';width') && !style.includes(' width') && style.indexOf('width') !== 0) {
+ styleObj.width = ''
+ break
+ }
+ }
+ } else if (style.includes('inline-block')) {
+ if (styleObj.width && styleObj.width[styleObj.width.length - 1] === '%') {
+ item.attrs.style += ';max-width:' + styleObj.width
+ styleObj.width = ''
+ } else {
+ item.attrs.style += ';max-width:100%'
+ }
+ }
+ // #endif
+ item.c = 1
+ }
+ attrs.i = this.imgList.length.toString()
+ let src = attrs['original-src'] || attrs.src
+ // #ifndef H5 || MP-ALIPAY || APP-PLUS || MP-360
+ if (this.imgList.includes(src)) {
+ // 如果有重复的链接则对域名进行随机大小写变换避免预览时错位
+ let i = src.indexOf('://')
+ if (i !== -1) {
+ i += 3
+ let newSrc = src.substr(0, i)
+ for (; i < src.length; i++) {
+ if (src[i] === '/') break
+ newSrc += Math.random() > 0.5 ? src[i].toUpperCase() : src[i]
+ }
+ newSrc += src.substr(i)
+ src = newSrc
+ }
+ }
+ // #endif
+ this.imgList.push(src)
+ if (!node.t) {
+ this.imgList._unloadimgs += 1
+ }
+ // #ifdef H5 || APP-PLUS
+ if (this.options.lazyLoad) {
+ attrs['data-src'] = attrs.src
+ attrs.src = undefined
+ }
+ // #endif
+ }
+ }
+ if (styleObj.display === 'inline') {
+ styleObj.display = ''
+ }
+ // #ifndef APP-PLUS-NVUE
+ if (attrs.ignore) {
+ styleObj['max-width'] = styleObj['max-width'] || '100%'
+ attrs.style += ';-webkit-touch-callout:none'
+ }
+ // #endif
+ // 设置的宽度超出屏幕,为避免变形,高度转为自动
+ if (parseInt(styleObj.width) > windowWidth) {
+ styleObj.height = undefined
+ }
+ // 记录是否设置了宽高
+ if (!isNaN(parseInt(styleObj.width))) {
+ node.w = 'T'
+ }
+ if (!isNaN(parseInt(styleObj.height)) && (!styleObj.height.includes('%') || (parent && (parent.attrs.style || '').includes('height')))) {
+ node.h = 'T'
+ }
+ if (node.w && node.h && styleObj['object-fit']) {
+ if (styleObj['object-fit'] === 'contain') {
+ node.m = 'aspectFit'
+ } else if (styleObj['object-fit'] === 'cover') {
+ node.m = 'aspectFill'
+ }
+ }
+ } else if (node.name === 'svg') {
+ siblings.push(node)
+ this.stack.push(node)
+ this.popNode()
+ return
+ }
+ for (const key in styleObj) {
+ if (styleObj[key]) {
+ attrs.style += `;${key}:${styleObj[key].replace(' !important', '')}`
+ }
+ }
+ attrs.style = attrs.style.substr(1) || undefined
+ // #ifdef (MP-WEIXIN || MP-QQ) && VUE3
+ if (!attrs.style) {
+ delete attrs.style
+ }
+ // #endif
+ } else {
+ if ((node.name === 'pre' || ((attrs.style || '').includes('white-space') && attrs.style.includes('pre'))) && this.pre !== 2) {
+ this.pre = node.pre = 1
+ }
+ node.children = []
+ this.stack.push(node)
+ }
+
+ // 加入节点树
+ siblings.push(node)
+}
+
+/**
+ * @description 解析到标签结束
+ * @param {String} name 标签名
+ * @private
+ */
+Parser.prototype.onCloseTag = function (name) {
+ // 依次出栈到匹配为止
+ name = this.xml ? name : name.toLowerCase()
+ let i
+ for (i = this.stack.length; i--;) {
+ if (this.stack[i].name === name) break
+ }
+ if (i !== -1) {
+ while (this.stack.length > i) {
+ this.popNode()
+ }
+ } else if (name === 'p' || name === 'br') {
+ const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
+ siblings.push({
+ name,
+ attrs: {
+ class: tagSelector[name] || '',
+ style: this.tagStyle[name] || ''
+ }
+ })
+ }
+}
+
+/**
+ * @description 处理标签出栈
+ * @private
+ */
+Parser.prototype.popNode = function () {
+ const node = this.stack.pop()
+ let attrs = node.attrs
+ const children = node.children
+ const parent = this.stack[this.stack.length - 1]
+ const siblings = parent ? parent.children : this.nodes
+
+ if (!this.hook(node) || config.ignoreTags[node.name]) {
+ // 获取标题
+ if (node.name === 'title' && children.length && children[0].type === 'text' && this.options.setTitle) {
+ uni.setNavigationBarTitle({
+ title: children[0].text
+ })
+ }
+ siblings.pop()
+ return
+ }
+
+ if (node.pre && this.pre !== 2) {
+ // 是否合并空白符标识
+ this.pre = node.pre = undefined
+ for (let i = this.stack.length; i--;) {
+ if (this.stack[i].pre) {
+ this.pre = 1
+ }
+ }
+ }
+
+ const styleObj = {}
+
+ // 转换 svg
+ if (node.name === 'svg') {
+ if (this.xml > 1) {
+ // 多层 svg 嵌套
+ this.xml--
+ return
+ }
+ // #ifdef APP-PLUS-NVUE
+ (function traversal (node) {
+ if (node.name) {
+ // 调整 svg 的大小写
+ node.name = config.svgDict[node.name] || node.name
+ for (const item in node.attrs) {
+ if (config.svgDict[item]) {
+ node.attrs[config.svgDict[item]] = node.attrs[item]
+ node.attrs[item] = undefined
+ }
+ }
+ for (let i = 0; i < (node.children || []).length; i++) {
+ traversal(node.children[i])
+ }
+ }
+ })(node)
+ // #endif
+ // #ifndef APP-PLUS-NVUE
+ let src = ''
+ const style = attrs.style
+ attrs.style = ''
+ attrs.xmlns = 'http://www.w3.org/2000/svg';
+ (function traversal (node) {
+ if (node.type === 'text') {
+ src += node.text
+ return
+ }
+ const name = config.svgDict[node.name] || node.name
+ if (name === 'foreignObject') {
+ for (const child of (node.children || [])) {
+ if (child.attrs && !child.attrs.xmlns) {
+ child.attrs.xmlns = 'http://www.w3.org/1999/xhtml'
+ break
+ }
+ }
+ }
+ src += '<' + name
+ for (const item in node.attrs) {
+ const val = node.attrs[item]
+ if (val) {
+ src += ` ${config.svgDict[item] || item}="${val}"`
+ }
+ }
+ if (!node.children) {
+ src += '/>'
+ } else {
+ src += '>'
+ for (let i = 0; i < node.children.length; i++) {
+ traversal(node.children[i])
+ }
+ src += '' + name + '>'
+ }
+ })(node)
+ node.name = 'img'
+ node.attrs = {
+ src: 'data:image/svg+xml;utf8,' + src.replace(/#/g, '%23'),
+ style,
+ ignore: 'T'
+ }
+ node.children = undefined
+ // #endif
+ this.xml = false
+ config.ignoreTags.style = true
+ return
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ // 转换 align 属性
+ if (attrs.align) {
+ if (node.name === 'table') {
+ if (attrs.align === 'center') {
+ styleObj['margin-inline-start'] = styleObj['margin-inline-end'] = 'auto'
+ } else {
+ styleObj.float = attrs.align
+ }
+ } else {
+ styleObj['text-align'] = attrs.align
+ }
+ attrs.align = undefined
+ }
+
+ // 转换 dir 属性
+ if (attrs.dir) {
+ styleObj.direction = attrs.dir
+ attrs.dir = undefined
+ }
+
+ // 转换 font 标签的属性
+ if (node.name === 'font') {
+ if (attrs.color) {
+ styleObj.color = attrs.color
+ attrs.color = undefined
+ }
+ if (attrs.face) {
+ styleObj['font-family'] = attrs.face
+ attrs.face = undefined
+ }
+ if (attrs.size) {
+ let size = parseInt(attrs.size)
+ if (!isNaN(size)) {
+ if (size < 1) {
+ size = 1
+ } else if (size > 7) {
+ size = 7
+ }
+ styleObj['font-size'] = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', 'xxx-large'][size - 1]
+ }
+ attrs.size = undefined
+ }
+ }
+ // #endif
+
+ // 一些编辑器的自带 class
+ if ((attrs.class || '').includes('align-center')) {
+ styleObj['text-align'] = 'center'
+ }
+
+ Object.assign(styleObj, this.parseStyle(node))
+
+ if (node.name !== 'table' && parseInt(styleObj.width) > windowWidth) {
+ styleObj['max-width'] = '100%'
+ styleObj['box-sizing'] = 'border-box'
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ if (config.blockTags[node.name]) {
+ node.name = 'div'
+ } else if (!config.trustTags[node.name] && !this.xml) {
+ // 未知标签转为 span,避免无法显示
+ node.name = 'span'
+ }
+
+ if (node.name === 'a' || node.name === 'ad'
+ // #ifdef H5 || APP-PLUS
+ || node.name === 'iframe' // eslint-disable-line
+ // #endif
+ ) {
+ this.expose()
+ } else if (node.name === 'video') {
+ if ((styleObj.height || '').includes('auto')) {
+ styleObj.height = undefined
+ }
+ /* #ifdef APP-PLUS */
+ let str = ''
+ for (let i = 0; i < node.src.length; i++) {
+ str += ''
+ }
+ str += ' '
+ node.html = str
+ /* #endif */
+ } else if ((node.name === 'ul' || node.name === 'ol') && node.c) {
+ // 列表处理
+ const types = {
+ a: 'lower-alpha',
+ A: 'upper-alpha',
+ i: 'lower-roman',
+ I: 'upper-roman'
+ }
+ if (types[attrs.type]) {
+ attrs.style += ';list-style-type:' + types[attrs.type]
+ attrs.type = undefined
+ }
+ for (let i = children.length; i--;) {
+ if (children[i].name === 'li') {
+ children[i].c = 1
+ }
+ }
+ } else if (node.name === 'table') {
+ // 表格处理
+ // cellpadding、cellspacing、border 这几个常用表格属性需要通过转换实现
+ let padding = parseFloat(attrs.cellpadding)
+ let spacing = parseFloat(attrs.cellspacing)
+ const border = parseFloat(attrs.border)
+ const bordercolor = styleObj['border-color']
+ const borderstyle = styleObj['border-style']
+ if (node.c) {
+ // padding 和 spacing 默认 2
+ if (isNaN(padding)) {
+ padding = 2
+ }
+ if (isNaN(spacing)) {
+ spacing = 2
+ }
+ }
+ if (border) {
+ attrs.style += `;border:${border}px ${borderstyle || 'solid'} ${bordercolor || 'gray'}`
+ }
+ if (node.flag && node.c) {
+ // 有 colspan 或 rowspan 且含有链接的表格通过 grid 布局实现
+ styleObj.display = 'grid'
+ if (styleObj['border-collapse'] === 'collapse') {
+ styleObj['border-collapse'] = undefined
+ spacing = 0
+ }
+ if (spacing) {
+ styleObj['grid-gap'] = spacing + 'px'
+ styleObj.padding = spacing + 'px'
+ } else if (border) {
+ // 无间隔的情况下避免边框重叠
+ attrs.style += ';border-left:0;border-top:0'
+ }
+
+ const width = [] // 表格的列宽
+ const trList = [] // tr 列表
+ const cells = [] // 保存新的单元格
+ const map = {}; // 被合并单元格占用的格子
+
+ (function traversal (nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ if (nodes[i].name === 'tr') {
+ trList.push(nodes[i])
+ } else if (nodes[i].name === 'colgroup') {
+ let colI = 1
+ for (const col of (nodes[i].children || [])) {
+ if (col.name === 'col') {
+ const style = col.attrs.style || ''
+ const start = style.indexOf('width') ? style.indexOf(';width') : 0
+ // 提取出宽度
+ if (start !== -1) {
+ let end = style.indexOf(';', start + 6)
+ if (end === -1) {
+ end = style.length
+ }
+ width[colI] = style.substring(start ? start + 7 : 6, end)
+ }
+ colI += 1
+ }
+ }
+ } else {
+ traversal(nodes[i].children || [])
+ }
+ }
+ })(children)
+
+ for (let row = 1; row <= trList.length; row++) {
+ let col = 1
+ for (let j = 0; j < trList[row - 1].children.length; j++) {
+ const td = trList[row - 1].children[j]
+ if (td.name === 'td' || td.name === 'th') {
+ // 这个格子被上面的单元格占用,则列号++
+ while (map[row + '.' + col]) {
+ col++
+ }
+ let style = td.attrs.style || ''
+ let start = style.indexOf('width') ? style.indexOf(';width') : 0
+ // 提取出 td 的宽度
+ if (start !== -1) {
+ let end = style.indexOf(';', start + 6)
+ if (end === -1) {
+ end = style.length
+ }
+ if (!td.attrs.colspan) {
+ width[col] = style.substring(start ? start + 7 : 6, end)
+ }
+ style = style.substr(0, start) + style.substr(end)
+ }
+ // 设置竖直对齐
+ style += ';display:flex'
+ start = style.indexOf('vertical-align')
+ if (start !== -1) {
+ const val = style.substr(start + 15, 10)
+ if (val.includes('middle')) {
+ style += ';align-items:center'
+ } else if (val.includes('bottom')) {
+ style += ';align-items:flex-end'
+ }
+ } else {
+ style += ';align-items:center'
+ }
+ // 设置水平对齐
+ start = style.indexOf('text-align')
+ if (start !== -1) {
+ const val = style.substr(start + 11, 10)
+ if (val.includes('center')) {
+ style += ';justify-content: center'
+ } else if (val.includes('right')) {
+ style += ';justify-content: right'
+ }
+ }
+ style = (border ? `;border:${border}px ${borderstyle || 'solid'} ${bordercolor || 'gray'}` + (spacing ? '' : ';border-right:0;border-bottom:0') : '') + (padding ? `;padding:${padding}px` : '') + ';' + style
+ // 处理列合并
+ if (td.attrs.colspan) {
+ style += `;grid-column-start:${col};grid-column-end:${col + parseInt(td.attrs.colspan)}`
+ if (!td.attrs.rowspan) {
+ style += `;grid-row-start:${row};grid-row-end:${row + 1}`
+ }
+ col += parseInt(td.attrs.colspan) - 1
+ }
+ // 处理行合并
+ if (td.attrs.rowspan) {
+ style += `;grid-row-start:${row};grid-row-end:${row + parseInt(td.attrs.rowspan)}`
+ if (!td.attrs.colspan) {
+ style += `;grid-column-start:${col};grid-column-end:${col + 1}`
+ }
+ // 记录下方单元格被占用
+ for (let rowspan = 1; rowspan < td.attrs.rowspan; rowspan++) {
+ for (let colspan = 0; colspan < (td.attrs.colspan || 1); colspan++) {
+ map[(row + rowspan) + '.' + (col - colspan)] = 1
+ }
+ }
+ }
+ if (style) {
+ td.attrs.style = style
+ }
+ cells.push(td)
+ col++
+ }
+ }
+ if (row === 1) {
+ let temp = ''
+ for (let i = 1; i < col; i++) {
+ temp += (width[i] ? width[i] : 'auto') + ' '
+ }
+ styleObj['grid-template-columns'] = temp
+ }
+ }
+ node.children = cells
+ } else {
+ // 没有使用合并单元格的表格通过 table 布局实现
+ if (node.c) {
+ styleObj.display = 'table'
+ }
+ if (!isNaN(spacing)) {
+ styleObj['border-spacing'] = spacing + 'px'
+ }
+ if (border || padding) {
+ // 遍历
+ (function traversal (nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ const td = nodes[i]
+ if (td.name === 'th' || td.name === 'td') {
+ if (border) {
+ td.attrs.style = `border:${border}px ${borderstyle || 'solid'} ${bordercolor || 'gray'};${td.attrs.style || ''}`
+ }
+ if (padding) {
+ td.attrs.style = `padding:${padding}px;${td.attrs.style || ''}`
+ }
+ } else if (td.children) {
+ traversal(td.children)
+ }
+ }
+ })(children)
+ }
+ }
+ // 给表格添加一个单独的横向滚动层
+ if (this.options.scrollTable && !(attrs.style || '').includes('inline')) {
+ const table = Object.assign({}, node)
+ node.name = 'div'
+ node.attrs = {
+ style: 'overflow:auto'
+ }
+ node.children = [table]
+ attrs = table.attrs
+ }
+ } else if ((node.name === 'td' || node.name === 'th') && (attrs.colspan || attrs.rowspan)) {
+ for (let i = this.stack.length; i--;) {
+ if (this.stack[i].name === 'table') {
+ this.stack[i].flag = 1 // 指示含有合并单元格
+ break
+ }
+ }
+ } else if (node.name === 'ruby') {
+ // 转换 ruby
+ node.name = 'span'
+ for (let i = 0; i < children.length - 1; i++) {
+ if (children[i].type === 'text' && children[i + 1].name === 'rt') {
+ children[i] = {
+ name: 'div',
+ attrs: {
+ style: 'display:inline-block;text-align:center'
+ },
+ children: [{
+ name: 'div',
+ attrs: {
+ style: 'font-size:50%;' + (children[i + 1].attrs.style || '')
+ },
+ children: children[i + 1].children
+ }, children[i]]
+ }
+ children.splice(i + 1, 1)
+ }
+ }
+ } else if (node.c) {
+ (function traversal (node) {
+ node.c = 2
+ for (let i = node.children.length; i--;) {
+ const child = node.children[i]
+ // #ifdef (MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE3
+ if (child.name && (config.inlineTags[child.name] || ((child.attrs.style || '').includes('inline') && child.children)) && !child.c) {
+ traversal(child)
+ }
+ // #endif
+ if (!child.c || child.name === 'table') {
+ node.c = 1
+ }
+ }
+ })(node)
+ }
+
+ if ((styleObj.display || '').includes('flex') && !node.c) {
+ for (let i = children.length; i--;) {
+ const item = children[i]
+ if (item.f) {
+ item.attrs.style = (item.attrs.style || '') + item.f
+ item.f = undefined
+ }
+ }
+ }
+ // flex 布局时部分样式需要提取到 rich-text 外层
+ const flex = parent && ((parent.attrs.style || '').includes('flex') || (parent.attrs.style || '').includes('grid'))
+ // #ifdef MP-WEIXIN
+ // 检查基础库版本 virtualHost 是否可用
+ && !(node.c && wx.getNFCAdapter) // eslint-disable-line
+ // #endif
+ // #ifndef MP-WEIXIN || MP-QQ || MP-BAIDU || MP-TOUTIAO
+ && !node.c // eslint-disable-line
+ // #endif
+ if (flex) {
+ node.f = ';max-width:100%'
+ }
+
+ if (children.length >= 50 && node.c && !(styleObj.display || '').includes('flex')) {
+ mergeNodes(children)
+ }
+ // #endif
+
+ for (const key in styleObj) {
+ if (styleObj[key]) {
+ const val = `;${key}:${styleObj[key].replace(' !important', '')}`
+ /* #ifndef APP-PLUS-NVUE */
+ if (flex && ((key.includes('flex') && key !== 'flex-direction') || key === 'align-self' || key.includes('grid') || styleObj[key][0] === '-' || (key.includes('width') && val.includes('%')))) {
+ node.f += val
+ if (key === 'width') {
+ attrs.style += ';width:100%'
+ }
+ } else /* #endif */ {
+ attrs.style += val
+ }
+ }
+ }
+ attrs.style = attrs.style.substr(1) || undefined
+ // #ifdef (MP-WEIXIN || MP-QQ) && VUE3
+ for (const key in attrs) {
+ if (!attrs[key]) {
+ delete attrs[key]
+ }
+ }
+ // #endif
+}
+
+/**
+ * @description 解析到文本
+ * @param {String} text 文本内容
+ */
+Parser.prototype.onText = function (text) {
+ if (!this.pre) {
+ // 合并空白符
+ let trim = ''
+ let flag
+ for (let i = 0, len = text.length; i < len; i++) {
+ if (!blankChar[text[i]]) {
+ trim += text[i]
+ } else {
+ if (trim[trim.length - 1] !== ' ') {
+ trim += ' '
+ }
+ if (text[i] === '\n' && !flag) {
+ flag = true
+ }
+ }
+ }
+ // 去除含有换行符的空串
+ if (trim === ' ') {
+ if (flag) return
+ // #ifdef VUE3
+ else {
+ const parent = this.stack[this.stack.length - 1]
+ if (parent && parent.name[0] === 't') return
+ }
+ // #endif
+ }
+ text = trim
+ }
+ const node = Object.create(null)
+ node.type = 'text'
+ // #ifdef (MP-BAIDU || MP-ALIPAY || MP-TOUTIAO) && VUE3
+ node.attrs = {}
+ // #endif
+ node.text = decodeEntity(text)
+ if (this.hook(node)) {
+ // #ifdef MP-WEIXIN
+ if (this.options.selectable === 'force' && system.includes('iOS') && !uni.canIUse('rich-text.user-select')) {
+ this.expose()
+ }
+ // #endif
+ const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
+ siblings.push(node)
+ }
+}
+
+/**
+ * @description html 词法分析器
+ * @param {Object} handler 高层处理器
+ */
+function Lexer (handler) {
+ this.handler = handler
+}
+
+/**
+ * @description 执行解析
+ * @param {String} content 要解析的文本
+ */
+Lexer.prototype.parse = function (content) {
+ this.content = content || ''
+ this.i = 0 // 标记解析位置
+ this.start = 0 // 标记一个单词的开始位置
+ this.state = this.text // 当前状态
+ for (let len = this.content.length; this.i !== -1 && this.i < len;) {
+ this.state()
+ }
+}
+
+/**
+ * @description 检查标签是否闭合
+ * @param {String} method 如果闭合要进行的操作
+ * @returns {Boolean} 是否闭合
+ * @private
+ */
+Lexer.prototype.checkClose = function (method) {
+ const selfClose = this.content[this.i] === '/'
+ if (this.content[this.i] === '>' || (selfClose && this.content[this.i + 1] === '>')) {
+ if (method) {
+ this.handler[method](this.content.substring(this.start, this.i))
+ }
+ this.i += selfClose ? 2 : 1
+ this.start = this.i
+ this.handler.onOpenTag(selfClose)
+ if (this.handler.tagName === 'script') {
+ this.i = this.content.indexOf('', this.i)
+ if (this.i !== -1) {
+ this.i += 2
+ this.start = this.i
+ }
+ this.state = this.endTag
+ } else {
+ this.state = this.text
+ }
+ return true
+ }
+ return false
+}
+
+/**
+ * @description 文本状态
+ * @private
+ */
+Lexer.prototype.text = function () {
+ this.i = this.content.indexOf('<', this.i) // 查找最近的标签
+ if (this.i === -1) {
+ // 没有标签了
+ if (this.start < this.content.length) {
+ this.handler.onText(this.content.substring(this.start, this.content.length))
+ }
+ return
+ }
+ const c = this.content[this.i + 1]
+ if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
+ // 标签开头
+ if (this.start !== this.i) {
+ this.handler.onText(this.content.substring(this.start, this.i))
+ }
+ this.start = ++this.i
+ this.state = this.tagName
+ } else if (c === '/' || c === '!' || c === '?') {
+ if (this.start !== this.i) {
+ this.handler.onText(this.content.substring(this.start, this.i))
+ }
+ const next = this.content[this.i + 2]
+ if (c === '/' && ((next >= 'a' && next <= 'z') || (next >= 'A' && next <= 'Z'))) {
+ // 标签结尾
+ this.i += 2
+ this.start = this.i
+ this.state = this.endTag
+ return
+ }
+ // 处理注释
+ let end = '-->'
+ if (c !== '!' || this.content[this.i + 2] !== '-' || this.content[this.i + 3] !== '-') {
+ end = '>'
+ }
+ this.i = this.content.indexOf(end, this.i)
+ if (this.i !== -1) {
+ this.i += end.length
+ this.start = this.i
+ }
+ } else {
+ this.i++
+ }
+}
+
+/**
+ * @description 标签名状态
+ * @private
+ */
+Lexer.prototype.tagName = function () {
+ if (blankChar[this.content[this.i]]) {
+ // 解析到标签名
+ this.handler.onTagName(this.content.substring(this.start, this.i))
+ while (blankChar[this.content[++this.i]]);
+ if (this.i < this.content.length && !this.checkClose()) {
+ this.start = this.i
+ this.state = this.attrName
+ }
+ } else if (!this.checkClose('onTagName')) {
+ this.i++
+ }
+}
+
+/**
+ * @description 属性名状态
+ * @private
+ */
+Lexer.prototype.attrName = function () {
+ let c = this.content[this.i]
+ if (blankChar[c] || c === '=') {
+ // 解析到属性名
+ this.handler.onAttrName(this.content.substring(this.start, this.i))
+ let needVal = c === '='
+ const len = this.content.length
+ while (++this.i < len) {
+ c = this.content[this.i]
+ if (!blankChar[c]) {
+ if (this.checkClose()) return
+ if (needVal) {
+ // 等号后遇到第一个非空字符
+ this.start = this.i
+ this.state = this.attrVal
+ return
+ }
+ if (this.content[this.i] === '=') {
+ needVal = true
+ } else {
+ this.start = this.i
+ this.state = this.attrName
+ return
+ }
+ }
+ }
+ } else if (!this.checkClose('onAttrName')) {
+ this.i++
+ }
+}
+
+/**
+ * @description 属性值状态
+ * @private
+ */
+Lexer.prototype.attrVal = function () {
+ const c = this.content[this.i]
+ const len = this.content.length
+ if (c === '"' || c === "'") {
+ // 有冒号的属性
+ this.start = ++this.i
+ this.i = this.content.indexOf(c, this.i)
+ if (this.i === -1) return
+ this.handler.onAttrVal(this.content.substring(this.start, this.i))
+ } else {
+ // 没有冒号的属性
+ for (; this.i < len; this.i++) {
+ if (blankChar[this.content[this.i]]) {
+ this.handler.onAttrVal(this.content.substring(this.start, this.i))
+ break
+ } else if (this.checkClose('onAttrVal')) return
+ }
+ }
+ while (blankChar[this.content[++this.i]]);
+ if (this.i < len && !this.checkClose()) {
+ this.start = this.i
+ this.state = this.attrName
+ }
+}
+
+/**
+ * @description 结束标签状态
+ * @returns {String} 结束的标签名
+ * @private
+ */
+Lexer.prototype.endTag = function () {
+ const c = this.content[this.i]
+ if (blankChar[c] || c === '>' || c === '/') {
+ this.handler.onCloseTag(this.content.substring(this.start, this.i))
+ if (c !== '>') {
+ this.i = this.content.indexOf('>', this.i)
+ if (this.i === -1) return
+ }
+ this.start = ++this.i
+ this.state = this.text
+ } else {
+ this.i++
+ }
+}
+
+export default Parser
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/package.json"
new file mode 100644
index 000000000..168abccb1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/package.json"
@@ -0,0 +1,76 @@
+{
+ "id": "mp-html",
+ "displayName": "mp-html 富文本组件【全端支持,支持编辑、latex等扩展】",
+ "version": "v2.4.3",
+ "description": "一个强大的富文本组件,高效轻量,功能丰富",
+ "keywords": [
+ "富文本",
+ "编辑器",
+ "html",
+ "rich-text",
+ "editor"
+ ],
+ "repository": "https://github.com/jin-yufeng/mp-html",
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/mp-html",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "u",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/static/app-plus/mp-html/js/handler.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/static/app-plus/mp-html/js/handler.js"
new file mode 100644
index 000000000..1d986bdc0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/mp-html/static/app-plus/mp-html/js/handler.js"
@@ -0,0 +1 @@
+"use strict";function t(t){for(var e=Object.create(null),n=t.attributes.length;n--;)e[t.attributes[n].name]=t.attributes[n].value;return e}function e(){a[1]&&(this.src=a[1],this.onerror=null),this.onclick=null,this.ontouchstart=null,uni.postMessage({data:{action:"onError",source:"img",attrs:t(this)}})}function n(){window.unloadimgs-=1,0===window.unloadimgs&&uni.postMessage({data:{action:"onReady"}})}function o(r,s,c){for(var d=0;d0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;a("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("redirectTo",{url:encodeURI(n)})},getEnv:function(e){window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a("postMessage",e.data||{})}},r=/uni-app/i.test(navigator.userAgent),d=/Html5Plus/i.test(navigator.userAgent),s=/complete|loaded|interactive/;var w=window.my&&navigator.userAgent.indexOf("AlipayClient")>-1;var u=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var c=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var g=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var v=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.qa&&/quickapp/i.test(navigator.userAgent);for(var l,_=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},f=[function(e){if(r||d)return window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&s.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),o},function(e){if(v)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(c)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(w){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(u)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(p){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){return document.addEventListener("DOMContentLoaded",e),o}],m=0;m
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/changelog.md"
new file mode 100644
index 000000000..d551d7b88
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/changelog.md"
@@ -0,0 +1,10 @@
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+## 0.0.5(2021-07-08)
+- 调整 默认时间不再是当前时间,而是显示'-'字符
+## 0.0.4(2021-05-12)
+- 新增 组件示例地址
+## 0.0.3(2021-02-04)
+- 调整为uni_modules目录规范
+- 修复 iOS 平台日期格式化出错的问题
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js"
new file mode 100644
index 000000000..e00d5597e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js"
@@ -0,0 +1,200 @@
+// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型
+function pad(str, length = 2) {
+ str += ''
+ while (str.length < length) {
+ str = '0' + str
+ }
+ return str.slice(-length)
+}
+
+const parser = {
+ yyyy: (dateObj) => {
+ return pad(dateObj.year, 4)
+ },
+ yy: (dateObj) => {
+ return pad(dateObj.year)
+ },
+ MM: (dateObj) => {
+ return pad(dateObj.month)
+ },
+ M: (dateObj) => {
+ return dateObj.month
+ },
+ dd: (dateObj) => {
+ return pad(dateObj.day)
+ },
+ d: (dateObj) => {
+ return dateObj.day
+ },
+ hh: (dateObj) => {
+ return pad(dateObj.hour)
+ },
+ h: (dateObj) => {
+ return dateObj.hour
+ },
+ mm: (dateObj) => {
+ return pad(dateObj.minute)
+ },
+ m: (dateObj) => {
+ return dateObj.minute
+ },
+ ss: (dateObj) => {
+ return pad(dateObj.second)
+ },
+ s: (dateObj) => {
+ return dateObj.second
+ },
+ SSS: (dateObj) => {
+ return pad(dateObj.millisecond, 3)
+ },
+ S: (dateObj) => {
+ return dateObj.millisecond
+ },
+}
+
+// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12
+function getDate(time) {
+ if (time instanceof Date) {
+ return time
+ }
+ switch (typeof time) {
+ case 'string':
+ {
+ // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000
+ if (time.indexOf('T') > -1) {
+ return new Date(time)
+ }
+ return new Date(time.replace(/-/g, '/'))
+ }
+ default:
+ return new Date(time)
+ }
+}
+
+export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') {
+ if (!date && date !== 0) {
+ return ''
+ }
+ date = getDate(date)
+ const dateObj = {
+ year: date.getFullYear(),
+ month: date.getMonth() + 1,
+ day: date.getDate(),
+ hour: date.getHours(),
+ minute: date.getMinutes(),
+ second: date.getSeconds(),
+ millisecond: date.getMilliseconds()
+ }
+ const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/
+ let flag = true
+ let result = format
+ while (flag) {
+ flag = false
+ result = result.replace(tokenRegExp, function(matched) {
+ flag = true
+ return parser[matched](dateObj)
+ })
+ }
+ return result
+}
+
+export function friendlyDate(time, {
+ locale = 'zh',
+ threshold = [60000, 3600000],
+ format = 'yyyy/MM/dd hh:mm:ss'
+}) {
+ if (time === '-') {
+ return time
+ }
+ if (!time && time !== 0) {
+ return ''
+ }
+ const localeText = {
+ zh: {
+ year: '年',
+ month: '月',
+ day: '天',
+ hour: '小时',
+ minute: '分钟',
+ second: '秒',
+ ago: '前',
+ later: '后',
+ justNow: '刚刚',
+ soon: '马上',
+ template: '{num}{unit}{suffix}'
+ },
+ en: {
+ year: 'year',
+ month: 'month',
+ day: 'day',
+ hour: 'hour',
+ minute: 'minute',
+ second: 'second',
+ ago: 'ago',
+ later: 'later',
+ justNow: 'just now',
+ soon: 'soon',
+ template: '{num} {unit} {suffix}'
+ }
+ }
+ const text = localeText[locale] || localeText.zh
+ let date = getDate(time)
+ let ms = date.getTime() - Date.now()
+ let absMs = Math.abs(ms)
+ if (absMs < threshold[0]) {
+ return ms < 0 ? text.justNow : text.soon
+ }
+ if (absMs >= threshold[1]) {
+ return formatDate(date, format)
+ }
+ let num
+ let unit
+ let suffix = text.later
+ if (ms < 0) {
+ suffix = text.ago
+ ms = -ms
+ }
+ const seconds = Math.floor((ms) / 1000)
+ const minutes = Math.floor(seconds / 60)
+ const hours = Math.floor(minutes / 60)
+ const days = Math.floor(hours / 24)
+ const months = Math.floor(days / 30)
+ const years = Math.floor(months / 12)
+ switch (true) {
+ case years > 0:
+ num = years
+ unit = text.year
+ break
+ case months > 0:
+ num = months
+ unit = text.month
+ break
+ case days > 0:
+ num = days
+ unit = text.day
+ break
+ case hours > 0:
+ num = hours
+ unit = text.hour
+ break
+ case minutes > 0:
+ num = minutes
+ unit = text.minute
+ break
+ default:
+ num = seconds
+ unit = text.second
+ break
+ }
+
+ if (locale === 'en') {
+ if (num === 1) {
+ num = 'a'
+ } else {
+ unit += 's'
+ }
+ }
+
+ return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g,
+ suffix)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"
new file mode 100644
index 000000000..c5ed03078
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"
@@ -0,0 +1,88 @@
+
+ {{dateShow}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/package.json"
new file mode 100644
index 000000000..786a670b0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-dateformat",
+ "displayName": "uni-dateformat 日期格式化",
+ "version": "1.0.0",
+ "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "日期格式化",
+ "时间格式化",
+ "格式化时间",
+ ""
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/readme.md"
new file mode 100644
index 000000000..37ddb6ece
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-dateformat/readme.md"
@@ -0,0 +1,11 @@
+
+
+### DateFormat 日期格式化
+> **组件名:uni-dateformat**
+> 代码块: `uDateformat`
+
+
+日期格式化组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/changelog.md"
new file mode 100644
index 000000000..620ab0277
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/changelog.md"
@@ -0,0 +1,40 @@
+## 2.0.9(2024-01-12)
+fix: 修复图标大小默认值错误的问题
+## 2.0.8(2023-12-14)
+- 修复 项目未使用 ts 情况下,打包报错的bug
+## 2.0.7(2023-12-14)
+- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
+## 2.0.6(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.5(2023-12-11)
+- 优化 兼容老版本icon类型,如 top ,bottom 等
+## 2.0.4(2023-12-06)
+- 优化 uni-app x 下示例项目图标排序
+## 2.0.3(2023-12-06)
+- 修复 nvue下引入组件报错的bug
+## 2.0.2(2023-12-05)
+-优化 size 属性支持单位
+## 2.0.1(2023-12-05)
+- 新增 uni-app x 支持定义图标
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
new file mode 100644
index 000000000..398678eea
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue"
@@ -0,0 +1,91 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uni-icons.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
new file mode 100644
index 000000000..7da53560f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"
@@ -0,0 +1,110 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons.css"
new file mode 100644
index 000000000..0a6b6fea1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons.css"
@@ -0,0 +1,664 @@
+
+.uniui-cart-filled:before {
+ content: "\e6d0";
+}
+
+.uniui-gift-filled:before {
+ content: "\e6c4";
+}
+
+.uniui-color:before {
+ content: "\e6cf";
+}
+
+.uniui-wallet:before {
+ content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+ content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+ content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+ content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+ content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+ content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+ content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+ content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+ content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+ content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+ content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+ content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+ content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+ content: "\e6c3";
+}
+
+.uniui-fire-filled:before {
+ content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+ content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+ content: "\e6af";
+}
+
+.uniui-person-filled:before {
+ content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+ content: "\e698";
+}
+
+.uniui-arrowthinleft:before {
+ content: "\e6d2";
+}
+
+.uniui-arrowthinup:before {
+ content: "\e6d3";
+}
+
+.uniui-arrowthindown:before {
+ content: "\e6d4";
+}
+
+.uniui-back:before {
+ content: "\e6b9";
+}
+
+.uniui-forward:before {
+ content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+ content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+ content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+ content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+ content: "\e6be";
+}
+
+.uniui-arrowthinright:before {
+ content: "\e6d1";
+}
+
+.uniui-down:before {
+ content: "\e6b8";
+}
+
+.uniui-bottom:before {
+ content: "\e6b8";
+}
+
+.uniui-arrowright:before {
+ content: "\e6d5";
+}
+
+.uniui-right:before {
+ content: "\e6b5";
+}
+
+.uniui-up:before {
+ content: "\e6b6";
+}
+
+.uniui-top:before {
+ content: "\e6b6";
+}
+
+.uniui-left:before {
+ content: "\e6b7";
+}
+
+.uniui-arrowup:before {
+ content: "\e6d6";
+}
+
+.uniui-eye:before {
+ content: "\e651";
+}
+
+.uniui-eye-filled:before {
+ content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+ content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+ content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+ content: "\e649";
+}
+
+.uniui-reload:before {
+ content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+ content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+ content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+ content: "\e6ad";
+}
+
+.uniui-location:before {
+ content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+ content: "\e683";
+}
+
+.uniui-star:before {
+ content: "\e688";
+}
+
+.uniui-star-filled:before {
+ content: "\e68f";
+}
+
+.uniui-calendar:before {
+ content: "\e6a0";
+}
+
+.uniui-fire:before {
+ content: "\e6a1";
+}
+
+.uniui-medal:before {
+ content: "\e6a2";
+}
+
+.uniui-font:before {
+ content: "\e6a3";
+}
+
+.uniui-gift:before {
+ content: "\e6a4";
+}
+
+.uniui-link:before {
+ content: "\e6a5";
+}
+
+.uniui-notification:before {
+ content: "\e6a6";
+}
+
+.uniui-staff:before {
+ content: "\e6a7";
+}
+
+.uniui-vip:before {
+ content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+ content: "\e6a9";
+}
+
+.uniui-tune:before {
+ content: "\e6aa";
+}
+
+.uniui-auth:before {
+ content: "\e6ab";
+}
+
+.uniui-person:before {
+ content: "\e699";
+}
+
+.uniui-email-filled:before {
+ content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+ content: "\e69b";
+}
+
+.uniui-phone:before {
+ content: "\e69c";
+}
+
+.uniui-email:before {
+ content: "\e69e";
+}
+
+.uniui-personadd:before {
+ content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+ content: "\e692";
+}
+
+.uniui-contact:before {
+ content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+ content: "\e694";
+}
+
+.uniui-contact-filled:before {
+ content: "\e695";
+}
+
+.uniui-chatboxes:before {
+ content: "\e696";
+}
+
+.uniui-chatbubble:before {
+ content: "\e697";
+}
+
+.uniui-upload-filled:before {
+ content: "\e68e";
+}
+
+.uniui-upload:before {
+ content: "\e690";
+}
+
+.uniui-weixin:before {
+ content: "\e691";
+}
+
+.uniui-compose:before {
+ content: "\e67f";
+}
+
+.uniui-qq:before {
+ content: "\e680";
+}
+
+.uniui-download-filled:before {
+ content: "\e681";
+}
+
+.uniui-pyq:before {
+ content: "\e682";
+}
+
+.uniui-sound:before {
+ content: "\e684";
+}
+
+.uniui-trash-filled:before {
+ content: "\e685";
+}
+
+.uniui-sound-filled:before {
+ content: "\e686";
+}
+
+.uniui-trash:before {
+ content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+ content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+ content: "\e68a";
+}
+
+.uniui-weibo:before {
+ content: "\e68b";
+}
+
+.uniui-videocam:before {
+ content: "\e68c";
+}
+
+.uniui-download:before {
+ content: "\e68d";
+}
+
+.uniui-help:before {
+ content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+ content: "\e67a";
+}
+
+.uniui-plusempty:before {
+ content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+ content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+ content: "\e67d";
+}
+
+.uniui-micoff:before {
+ content: "\e67e";
+}
+
+.uniui-closeempty:before {
+ content: "\e66c";
+}
+
+.uniui-clear:before {
+ content: "\e66d";
+}
+
+.uniui-navigate:before {
+ content: "\e66e";
+}
+
+.uniui-minus:before {
+ content: "\e66f";
+}
+
+.uniui-image:before {
+ content: "\e670";
+}
+
+.uniui-mic:before {
+ content: "\e671";
+}
+
+.uniui-paperplane:before {
+ content: "\e672";
+}
+
+.uniui-close:before {
+ content: "\e673";
+}
+
+.uniui-help-filled:before {
+ content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+ content: "\e675";
+}
+
+.uniui-plus:before {
+ content: "\e676";
+}
+
+.uniui-mic-filled:before {
+ content: "\e677";
+}
+
+.uniui-image-filled:before {
+ content: "\e678";
+}
+
+.uniui-locked-filled:before {
+ content: "\e668";
+}
+
+.uniui-info:before {
+ content: "\e669";
+}
+
+.uniui-locked:before {
+ content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+ content: "\e658";
+}
+
+.uniui-chat-filled:before {
+ content: "\e659";
+}
+
+.uniui-camera:before {
+ content: "\e65a";
+}
+
+.uniui-circle:before {
+ content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+ content: "\e65c";
+}
+
+.uniui-chat:before {
+ content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+ content: "\e65e";
+}
+
+.uniui-flag:before {
+ content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+ content: "\e660";
+}
+
+.uniui-gear-filled:before {
+ content: "\e661";
+}
+
+.uniui-home:before {
+ content: "\e662";
+}
+
+.uniui-home-filled:before {
+ content: "\e663";
+}
+
+.uniui-gear:before {
+ content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+ content: "\e665";
+}
+
+.uniui-map-filled:before {
+ content: "\e666";
+}
+
+.uniui-map:before {
+ content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+ content: "\e656";
+}
+
+.uniui-refresh:before {
+ content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+ content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+ content: "\e646";
+}
+
+.uniui-cloud-download:before {
+ content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+ content: "\e648";
+}
+
+.uniui-redo:before {
+ content: "\e64a";
+}
+
+.uniui-images-filled:before {
+ content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+ content: "\e64c";
+}
+
+.uniui-more:before {
+ content: "\e64d";
+}
+
+.uniui-more-filled:before {
+ content: "\e64e";
+}
+
+.uniui-undo:before {
+ content: "\e64f";
+}
+
+.uniui-images:before {
+ content: "\e650";
+}
+
+.uniui-paperclip:before {
+ content: "\e652";
+}
+
+.uniui-settings:before {
+ content: "\e653";
+}
+
+.uniui-search:before {
+ content: "\e654";
+}
+
+.uniui-redo-filled:before {
+ content: "\e655";
+}
+
+.uniui-list:before {
+ content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+ content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+ content: "\e63c";
+}
+
+.uniui-hand-down:before {
+ content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+ content: "\e63e";
+}
+
+.uniui-hand-up:before {
+ content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+ content: "\e641";
+}
+
+.uniui-mail-open:before {
+ content: "\e643";
+}
+
+.uniui-heart:before {
+ content: "\e639";
+}
+
+.uniui-loop:before {
+ content: "\e633";
+}
+
+.uniui-pulldown:before {
+ content: "\e632";
+}
+
+.uniui-scan:before {
+ content: "\e62a";
+}
+
+.uniui-bars:before {
+ content: "\e627";
+}
+
+.uniui-checkbox:before {
+ content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+ content: "\e62c";
+}
+
+.uniui-shop:before {
+ content: "\e62f";
+}
+
+.uniui-headphones:before {
+ content: "\e630";
+}
+
+.uniui-cart:before {
+ content: "\e631";
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons.ttf"
new file mode 100644
index 000000000..14696d038
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons.ttf" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
new file mode 100644
index 000000000..98e93aa0d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts"
@@ -0,0 +1,664 @@
+
+export type IconsData = {
+ id : string
+ name : string
+ font_family : string
+ css_prefix_text : string
+ description : string
+ glyphs : Array
+}
+
+export type IconsDataItem = {
+ font_class : string
+ unicode : string
+}
+
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+] as IconsDataItem[]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
new file mode 100644
index 000000000..1cd11e159
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js"
@@ -0,0 +1,649 @@
+
+export const fontData = [
+ {
+ "font_class": "arrow-down",
+ "unicode": "\ue6be"
+ },
+ {
+ "font_class": "arrow-left",
+ "unicode": "\ue6bc"
+ },
+ {
+ "font_class": "arrow-right",
+ "unicode": "\ue6bb"
+ },
+ {
+ "font_class": "arrow-up",
+ "unicode": "\ue6bd"
+ },
+ {
+ "font_class": "auth",
+ "unicode": "\ue6ab"
+ },
+ {
+ "font_class": "auth-filled",
+ "unicode": "\ue6cc"
+ },
+ {
+ "font_class": "back",
+ "unicode": "\ue6b9"
+ },
+ {
+ "font_class": "bars",
+ "unicode": "\ue627"
+ },
+ {
+ "font_class": "calendar",
+ "unicode": "\ue6a0"
+ },
+ {
+ "font_class": "calendar-filled",
+ "unicode": "\ue6c0"
+ },
+ {
+ "font_class": "camera",
+ "unicode": "\ue65a"
+ },
+ {
+ "font_class": "camera-filled",
+ "unicode": "\ue658"
+ },
+ {
+ "font_class": "cart",
+ "unicode": "\ue631"
+ },
+ {
+ "font_class": "cart-filled",
+ "unicode": "\ue6d0"
+ },
+ {
+ "font_class": "chat",
+ "unicode": "\ue65d"
+ },
+ {
+ "font_class": "chat-filled",
+ "unicode": "\ue659"
+ },
+ {
+ "font_class": "chatboxes",
+ "unicode": "\ue696"
+ },
+ {
+ "font_class": "chatboxes-filled",
+ "unicode": "\ue692"
+ },
+ {
+ "font_class": "chatbubble",
+ "unicode": "\ue697"
+ },
+ {
+ "font_class": "chatbubble-filled",
+ "unicode": "\ue694"
+ },
+ {
+ "font_class": "checkbox",
+ "unicode": "\ue62b"
+ },
+ {
+ "font_class": "checkbox-filled",
+ "unicode": "\ue62c"
+ },
+ {
+ "font_class": "checkmarkempty",
+ "unicode": "\ue65c"
+ },
+ {
+ "font_class": "circle",
+ "unicode": "\ue65b"
+ },
+ {
+ "font_class": "circle-filled",
+ "unicode": "\ue65e"
+ },
+ {
+ "font_class": "clear",
+ "unicode": "\ue66d"
+ },
+ {
+ "font_class": "close",
+ "unicode": "\ue673"
+ },
+ {
+ "font_class": "closeempty",
+ "unicode": "\ue66c"
+ },
+ {
+ "font_class": "cloud-download",
+ "unicode": "\ue647"
+ },
+ {
+ "font_class": "cloud-download-filled",
+ "unicode": "\ue646"
+ },
+ {
+ "font_class": "cloud-upload",
+ "unicode": "\ue645"
+ },
+ {
+ "font_class": "cloud-upload-filled",
+ "unicode": "\ue648"
+ },
+ {
+ "font_class": "color",
+ "unicode": "\ue6cf"
+ },
+ {
+ "font_class": "color-filled",
+ "unicode": "\ue6c9"
+ },
+ {
+ "font_class": "compose",
+ "unicode": "\ue67f"
+ },
+ {
+ "font_class": "contact",
+ "unicode": "\ue693"
+ },
+ {
+ "font_class": "contact-filled",
+ "unicode": "\ue695"
+ },
+ {
+ "font_class": "down",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "bottom",
+ "unicode": "\ue6b8"
+ },
+ {
+ "font_class": "download",
+ "unicode": "\ue68d"
+ },
+ {
+ "font_class": "download-filled",
+ "unicode": "\ue681"
+ },
+ {
+ "font_class": "email",
+ "unicode": "\ue69e"
+ },
+ {
+ "font_class": "email-filled",
+ "unicode": "\ue69a"
+ },
+ {
+ "font_class": "eye",
+ "unicode": "\ue651"
+ },
+ {
+ "font_class": "eye-filled",
+ "unicode": "\ue66a"
+ },
+ {
+ "font_class": "eye-slash",
+ "unicode": "\ue6b3"
+ },
+ {
+ "font_class": "eye-slash-filled",
+ "unicode": "\ue6b4"
+ },
+ {
+ "font_class": "fire",
+ "unicode": "\ue6a1"
+ },
+ {
+ "font_class": "fire-filled",
+ "unicode": "\ue6c5"
+ },
+ {
+ "font_class": "flag",
+ "unicode": "\ue65f"
+ },
+ {
+ "font_class": "flag-filled",
+ "unicode": "\ue660"
+ },
+ {
+ "font_class": "folder-add",
+ "unicode": "\ue6a9"
+ },
+ {
+ "font_class": "folder-add-filled",
+ "unicode": "\ue6c8"
+ },
+ {
+ "font_class": "font",
+ "unicode": "\ue6a3"
+ },
+ {
+ "font_class": "forward",
+ "unicode": "\ue6ba"
+ },
+ {
+ "font_class": "gear",
+ "unicode": "\ue664"
+ },
+ {
+ "font_class": "gear-filled",
+ "unicode": "\ue661"
+ },
+ {
+ "font_class": "gift",
+ "unicode": "\ue6a4"
+ },
+ {
+ "font_class": "gift-filled",
+ "unicode": "\ue6c4"
+ },
+ {
+ "font_class": "hand-down",
+ "unicode": "\ue63d"
+ },
+ {
+ "font_class": "hand-down-filled",
+ "unicode": "\ue63c"
+ },
+ {
+ "font_class": "hand-up",
+ "unicode": "\ue63f"
+ },
+ {
+ "font_class": "hand-up-filled",
+ "unicode": "\ue63e"
+ },
+ {
+ "font_class": "headphones",
+ "unicode": "\ue630"
+ },
+ {
+ "font_class": "heart",
+ "unicode": "\ue639"
+ },
+ {
+ "font_class": "heart-filled",
+ "unicode": "\ue641"
+ },
+ {
+ "font_class": "help",
+ "unicode": "\ue679"
+ },
+ {
+ "font_class": "help-filled",
+ "unicode": "\ue674"
+ },
+ {
+ "font_class": "home",
+ "unicode": "\ue662"
+ },
+ {
+ "font_class": "home-filled",
+ "unicode": "\ue663"
+ },
+ {
+ "font_class": "image",
+ "unicode": "\ue670"
+ },
+ {
+ "font_class": "image-filled",
+ "unicode": "\ue678"
+ },
+ {
+ "font_class": "images",
+ "unicode": "\ue650"
+ },
+ {
+ "font_class": "images-filled",
+ "unicode": "\ue64b"
+ },
+ {
+ "font_class": "info",
+ "unicode": "\ue669"
+ },
+ {
+ "font_class": "info-filled",
+ "unicode": "\ue649"
+ },
+ {
+ "font_class": "left",
+ "unicode": "\ue6b7"
+ },
+ {
+ "font_class": "link",
+ "unicode": "\ue6a5"
+ },
+ {
+ "font_class": "list",
+ "unicode": "\ue644"
+ },
+ {
+ "font_class": "location",
+ "unicode": "\ue6ae"
+ },
+ {
+ "font_class": "location-filled",
+ "unicode": "\ue6af"
+ },
+ {
+ "font_class": "locked",
+ "unicode": "\ue66b"
+ },
+ {
+ "font_class": "locked-filled",
+ "unicode": "\ue668"
+ },
+ {
+ "font_class": "loop",
+ "unicode": "\ue633"
+ },
+ {
+ "font_class": "mail-open",
+ "unicode": "\ue643"
+ },
+ {
+ "font_class": "mail-open-filled",
+ "unicode": "\ue63a"
+ },
+ {
+ "font_class": "map",
+ "unicode": "\ue667"
+ },
+ {
+ "font_class": "map-filled",
+ "unicode": "\ue666"
+ },
+ {
+ "font_class": "map-pin",
+ "unicode": "\ue6ad"
+ },
+ {
+ "font_class": "map-pin-ellipse",
+ "unicode": "\ue6ac"
+ },
+ {
+ "font_class": "medal",
+ "unicode": "\ue6a2"
+ },
+ {
+ "font_class": "medal-filled",
+ "unicode": "\ue6c3"
+ },
+ {
+ "font_class": "mic",
+ "unicode": "\ue671"
+ },
+ {
+ "font_class": "mic-filled",
+ "unicode": "\ue677"
+ },
+ {
+ "font_class": "micoff",
+ "unicode": "\ue67e"
+ },
+ {
+ "font_class": "micoff-filled",
+ "unicode": "\ue6b0"
+ },
+ {
+ "font_class": "minus",
+ "unicode": "\ue66f"
+ },
+ {
+ "font_class": "minus-filled",
+ "unicode": "\ue67d"
+ },
+ {
+ "font_class": "more",
+ "unicode": "\ue64d"
+ },
+ {
+ "font_class": "more-filled",
+ "unicode": "\ue64e"
+ },
+ {
+ "font_class": "navigate",
+ "unicode": "\ue66e"
+ },
+ {
+ "font_class": "navigate-filled",
+ "unicode": "\ue67a"
+ },
+ {
+ "font_class": "notification",
+ "unicode": "\ue6a6"
+ },
+ {
+ "font_class": "notification-filled",
+ "unicode": "\ue6c1"
+ },
+ {
+ "font_class": "paperclip",
+ "unicode": "\ue652"
+ },
+ {
+ "font_class": "paperplane",
+ "unicode": "\ue672"
+ },
+ {
+ "font_class": "paperplane-filled",
+ "unicode": "\ue675"
+ },
+ {
+ "font_class": "person",
+ "unicode": "\ue699"
+ },
+ {
+ "font_class": "person-filled",
+ "unicode": "\ue69d"
+ },
+ {
+ "font_class": "personadd",
+ "unicode": "\ue69f"
+ },
+ {
+ "font_class": "personadd-filled",
+ "unicode": "\ue698"
+ },
+ {
+ "font_class": "personadd-filled-copy",
+ "unicode": "\ue6d1"
+ },
+ {
+ "font_class": "phone",
+ "unicode": "\ue69c"
+ },
+ {
+ "font_class": "phone-filled",
+ "unicode": "\ue69b"
+ },
+ {
+ "font_class": "plus",
+ "unicode": "\ue676"
+ },
+ {
+ "font_class": "plus-filled",
+ "unicode": "\ue6c7"
+ },
+ {
+ "font_class": "plusempty",
+ "unicode": "\ue67b"
+ },
+ {
+ "font_class": "pulldown",
+ "unicode": "\ue632"
+ },
+ {
+ "font_class": "pyq",
+ "unicode": "\ue682"
+ },
+ {
+ "font_class": "qq",
+ "unicode": "\ue680"
+ },
+ {
+ "font_class": "redo",
+ "unicode": "\ue64a"
+ },
+ {
+ "font_class": "redo-filled",
+ "unicode": "\ue655"
+ },
+ {
+ "font_class": "refresh",
+ "unicode": "\ue657"
+ },
+ {
+ "font_class": "refresh-filled",
+ "unicode": "\ue656"
+ },
+ {
+ "font_class": "refreshempty",
+ "unicode": "\ue6bf"
+ },
+ {
+ "font_class": "reload",
+ "unicode": "\ue6b2"
+ },
+ {
+ "font_class": "right",
+ "unicode": "\ue6b5"
+ },
+ {
+ "font_class": "scan",
+ "unicode": "\ue62a"
+ },
+ {
+ "font_class": "search",
+ "unicode": "\ue654"
+ },
+ {
+ "font_class": "settings",
+ "unicode": "\ue653"
+ },
+ {
+ "font_class": "settings-filled",
+ "unicode": "\ue6ce"
+ },
+ {
+ "font_class": "shop",
+ "unicode": "\ue62f"
+ },
+ {
+ "font_class": "shop-filled",
+ "unicode": "\ue6cd"
+ },
+ {
+ "font_class": "smallcircle",
+ "unicode": "\ue67c"
+ },
+ {
+ "font_class": "smallcircle-filled",
+ "unicode": "\ue665"
+ },
+ {
+ "font_class": "sound",
+ "unicode": "\ue684"
+ },
+ {
+ "font_class": "sound-filled",
+ "unicode": "\ue686"
+ },
+ {
+ "font_class": "spinner-cycle",
+ "unicode": "\ue68a"
+ },
+ {
+ "font_class": "staff",
+ "unicode": "\ue6a7"
+ },
+ {
+ "font_class": "staff-filled",
+ "unicode": "\ue6cb"
+ },
+ {
+ "font_class": "star",
+ "unicode": "\ue688"
+ },
+ {
+ "font_class": "star-filled",
+ "unicode": "\ue68f"
+ },
+ {
+ "font_class": "starhalf",
+ "unicode": "\ue683"
+ },
+ {
+ "font_class": "trash",
+ "unicode": "\ue687"
+ },
+ {
+ "font_class": "trash-filled",
+ "unicode": "\ue685"
+ },
+ {
+ "font_class": "tune",
+ "unicode": "\ue6aa"
+ },
+ {
+ "font_class": "tune-filled",
+ "unicode": "\ue6ca"
+ },
+ {
+ "font_class": "undo",
+ "unicode": "\ue64f"
+ },
+ {
+ "font_class": "undo-filled",
+ "unicode": "\ue64c"
+ },
+ {
+ "font_class": "up",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "top",
+ "unicode": "\ue6b6"
+ },
+ {
+ "font_class": "upload",
+ "unicode": "\ue690"
+ },
+ {
+ "font_class": "upload-filled",
+ "unicode": "\ue68e"
+ },
+ {
+ "font_class": "videocam",
+ "unicode": "\ue68c"
+ },
+ {
+ "font_class": "videocam-filled",
+ "unicode": "\ue689"
+ },
+ {
+ "font_class": "vip",
+ "unicode": "\ue6a8"
+ },
+ {
+ "font_class": "vip-filled",
+ "unicode": "\ue6c6"
+ },
+ {
+ "font_class": "wallet",
+ "unicode": "\ue6b1"
+ },
+ {
+ "font_class": "wallet-filled",
+ "unicode": "\ue6c2"
+ },
+ {
+ "font_class": "weibo",
+ "unicode": "\ue68b"
+ },
+ {
+ "font_class": "weixin",
+ "unicode": "\ue691"
+ }
+]
+
+// export const fontData = JSON.parse(fontDataJson)
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/package.json"
new file mode 100644
index 000000000..397be8394
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-icons",
+ "displayName": "uni-icons 图标",
+ "version": "2.0.9",
+ "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "icon",
+ "图标"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.2.14"
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y",
+ "app-uvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "y",
+ "快手": "y",
+ "飞书": "y",
+ "京东": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/readme.md"
new file mode 100644
index 000000000..86234ba1c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-icons/readme.md"
@@ -0,0 +1,8 @@
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+用于展示 icons 图标 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/changelog.md"
new file mode 100644
index 000000000..8f03f1d57
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/changelog.md"
@@ -0,0 +1,19 @@
+## 1.3.3(2022-01-20)
+- 新增 showText属性 ,是否显示文本
+## 1.3.2(2022-01-19)
+- 修复 nvue 平台下不显示文本的bug
+## 1.3.1(2022-01-19)
+- 修复 微信小程序平台样式选择器报警告的问题
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+## 1.2.1(2021-08-24)
+- 新增 支持国际化
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.8(2021-05-12)
+- 新增 组件示例地址
+## 1.1.7(2021-03-30)
+- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug
+## 1.1.6(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json"
new file mode 100644
index 000000000..a4f14a545
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "Pull up to show more",
+ "uni-load-more.contentrefresh": "loading...",
+ "uni-load-more.contentnomore": "No more data"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json"
new file mode 100644
index 000000000..f15d51050
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉显示更多",
+ "uni-load-more.contentrefresh": "正在加载...",
+ "uni-load-more.contentnomore": "没有更多数据了"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json"
new file mode 100644
index 000000000..a255c6ded
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json"
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉顯示更多",
+ "uni-load-more.contentrefresh": "正在加載...",
+ "uni-load-more.contentnomore": "沒有更多數據了"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"
new file mode 100644
index 000000000..e5eff4d65
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ status === 'more' ? contentdownText : status === 'loading' ? contentrefreshText : contentnomoreText }}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/package.json"
new file mode 100644
index 000000000..2fa6f040a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/package.json"
@@ -0,0 +1,86 @@
+{
+ "id": "uni-load-more",
+ "displayName": "uni-load-more 加载更多",
+ "version": "1.3.3",
+ "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "加载更多",
+ "load-more"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/readme.md"
new file mode 100644
index 000000000..54dc1fad2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-load-more/readme.md"
@@ -0,0 +1,14 @@
+
+
+### LoadMore 加载更多
+> **组件名:uni-load-more**
+> 代码块: `uLoadMore`
+
+
+用于列表中,做滚动加载使用,展示 loading 的各种状态。
+
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/changelog.md"
new file mode 100644
index 000000000..98d9d08cc
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/changelog.md"
@@ -0,0 +1,70 @@
+## 1.8.4(2023-11-15)
+- 新增 uni-popup 支持uni-app-x 注意暂时仅支持 `maskClick` `@open` `@close`
+## 1.8.3(2023-04-17)
+- 修复 uni-popup 重复打开时的 bug
+## 1.8.2(2023-02-02)
+- uni-popup-dialog 组件新增 inputType 属性
+## 1.8.1(2022-12-01)
+- 修复 nvue 下 v-show 报错
+## 1.8.0(2022-11-29)
+- 优化 主题样式
+## 1.7.9(2022-04-02)
+- 修复 弹出层内部无法滚动的bug
+## 1.7.8(2022-03-28)
+- 修复 小程序中高度错误的bug
+## 1.7.7(2022-03-17)
+- 修复 快速调用open出现问题的Bug
+## 1.7.6(2022-02-14)
+- 修复 safeArea 属性不能设置为false的bug
+## 1.7.5(2022-01-19)
+- 修复 isMaskClick 失效的bug
+## 1.7.4(2022-01-19)
+- 新增 cancelText \ confirmText 属性 ,可自定义文本
+- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色
+- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题
+## 1.7.3(2022-01-13)
+- 修复 设置 safeArea 属性不生效的bug
+## 1.7.2(2021-11-26)
+- 优化 组件示例
+## 1.7.1(2021-11-26)
+- 修复 vuedoc 文字错误
+## 1.7.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup)
+## 1.6.2(2021-08-24)
+- 新增 支持国际化
+## 1.6.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.6.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.5.0(2021-06-23)
+- 新增 mask-click 遮罩层点击事件
+## 1.4.5(2021-06-22)
+- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.4(2021-06-18)
+- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.3(2021-06-08)
+- 修复 错误的 watch 字段
+- 修复 safeArea 属性不生效的问题
+- 修复 点击内容,再点击遮罩无法关闭的Bug
+## 1.4.2(2021-05-12)
+- 新增 组件示例地址
+## 1.4.1(2021-04-29)
+- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
+## 1.4.0 (2021-04-29)
+- 新增 type 属性的 left\right 值,支持左右弹出
+- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
+- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
+- 新增 safeArea 属性,是否适配底部安全区
+- 修复 App\h5\微信小程序底部安全区占位不对的Bug
+- 修复 App 端弹出等待的Bug
+- 优化 提升低配设备性能,优化动画卡顿问题
+- 优化 更简单的组件自定义方式
+## 1.2.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.2.8(2021-02-05)
+- 调整为uni_modules目录规范
+## 1.2.7(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持 PC 端
+- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js"
new file mode 100644
index 000000000..6ef26a262
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js"
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ this.$once('hook:beforeDestroy', () => {
+ document.removeEventListener('keyup', listener)
+ })
+ },
+ render: () => {}
+}
+// #endif
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"
new file mode 100644
index 000000000..b5eee79a7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"
new file mode 100644
index 000000000..91370a829
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"
@@ -0,0 +1,143 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue"
new file mode 100644
index 000000000..5be76247a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue"
@@ -0,0 +1,187 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/en.json"
new file mode 100644
index 000000000..7f1bd06a0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/en.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "cancel",
+ "uni-popup.ok": "ok",
+ "uni-popup.placeholder": "pleace enter",
+ "uni-popup.title": "Hint",
+ "uni-popup.shareTitle": "Share to"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json"
new file mode 100644
index 000000000..5e3003cab
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "确定",
+ "uni-popup.placeholder": "请输入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json"
new file mode 100644
index 000000000..13e39eba1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json"
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "確定",
+ "uni-popup.placeholder": "請輸入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/keypress.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/keypress.js"
new file mode 100644
index 000000000..62dda461b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/keypress.js"
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ // this.$once('hook:beforeDestroy', () => {
+ // document.removeEventListener('keyup', listener)
+ // })
+ },
+ render: () => {}
+}
+// #endif
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/popup.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/popup.js"
new file mode 100644
index 000000000..c4e5781dd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/popup.js"
@@ -0,0 +1,26 @@
+
+export default {
+ data() {
+ return {
+
+ }
+ },
+ created(){
+ this.popup = this.getParent()
+ },
+ methods:{
+ /**
+ * 获取父元素实例
+ */
+ getParent(name = 'uniPopup') {
+ let parent = this.$parent;
+ let parentName = parent.$options.name;
+ while (parentName !== name) {
+ parent = parent.$parent;
+ if (!parent) return false
+ parentName = parent.$options.name;
+ }
+ return parent;
+ },
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue"
new file mode 100644
index 000000000..5eb8d5be6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue"
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/uni-popup.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"
new file mode 100644
index 000000000..139a05ef7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"
@@ -0,0 +1,473 @@
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/package.json"
new file mode 100644
index 000000000..c3f3d1c9d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-popup",
+ "displayName": "uni-popup 弹出层",
+ "version": "1.8.4",
+ "description": " Popup 组件,提供常用的弹层",
+ "keywords": [
+ "uni-ui",
+ "弹出层",
+ "弹窗",
+ "popup",
+ "弹框"
+ ],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-transition"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/readme.md"
new file mode 100644
index 000000000..fdad4b3d7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-popup/readme.md"
@@ -0,0 +1,17 @@
+
+
+## Popup 弹出层
+> **组件名:uni-popup**
+> 代码块: `uPopup`
+> 关联组件:`uni-transition`
+
+
+弹出层组件,在应用中弹出一个消息提示窗口、提示框等
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/changelog.md"
new file mode 100644
index 000000000..8a98a6127
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/changelog.md"
@@ -0,0 +1,25 @@
+## 1.3.1(2022-02-25)
+- 修复 条件判断 `NaN` 错误的 bug
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate)
+## 1.2.2(2021-09-10)
+- 优化 默认值修改为 0 颗星
+## 1.2.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.2(2021-05-12)
+- 新增 组件示例地址
+## 1.1.1(2021-04-21)
+- 修复 布局变化后 uni-rate 星星计算不准确的 bug
+- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖
+## 1.1.0(2021-04-16)
+- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug
+
+## 1.0.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.8(2021-02-05)
+- 调整为uni_modules目录规范
+- 支持 pc 端
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/components/uni-rate/uni-rate.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/components/uni-rate/uni-rate.vue"
new file mode 100644
index 000000000..857f5f9c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/components/uni-rate/uni-rate.vue"
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/package.json"
new file mode 100644
index 000000000..64e8e3320
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uni-rate",
+ "displayName": "uni-rate 评分",
+ "version": "1.3.1",
+ "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "评分"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/readme.md"
new file mode 100644
index 000000000..eae7b5ced
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-rate/readme.md"
@@ -0,0 +1,12 @@
+
+
+## Rate 评分
+> **组件名:uni-rate**
+> 代码块: `uRate`
+> 关联组件:`uni-icons`
+
+
+评分组件,多用于购买商品后,对商品进行评价等场景
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/changelog.md"
new file mode 100644
index 000000000..b863bb0f5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/changelog.md"
@@ -0,0 +1,8 @@
+## 1.0.3(2022-01-21)
+- 优化 组件示例
+## 1.0.2(2021-11-22)
+- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题
+## 1.0.1(2021-11-22)
+- 修复 vue3中scss语法兼容问题
+## 1.0.0(2021-11-18)
+- init
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/index.scss"
new file mode 100644
index 000000000..1744a5f98
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/index.scss"
@@ -0,0 +1 @@
+@import './styles/index.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/package.json"
new file mode 100644
index 000000000..7cc0ccb73
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/package.json"
@@ -0,0 +1,82 @@
+{
+ "id": "uni-scss",
+ "displayName": "uni-scss 辅助样式",
+ "version": "1.0.3",
+ "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。",
+ "keywords": [
+ "uni-scss",
+ "uni-ui",
+ "辅助样式"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "category": [
+ "JS SDK",
+ "通用 SDK"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "n",
+ "联盟": "n"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/readme.md"
new file mode 100644
index 000000000..b7d1c25f3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/readme.md"
@@ -0,0 +1,4 @@
+`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/index.scss"
new file mode 100644
index 000000000..ffac4fecd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/index.scss"
@@ -0,0 +1,7 @@
+@import './setting/_variables.scss';
+@import './setting/_border.scss';
+@import './setting/_color.scss';
+@import './setting/_space.scss';
+@import './setting/_radius.scss';
+@import './setting/_text.scss';
+@import './setting/_styles.scss';
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_border.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_border.scss"
new file mode 100644
index 000000000..12a11c322
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_border.scss"
@@ -0,0 +1,3 @@
+.uni-border {
+ border: 1px $uni-border-1 solid;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_color.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_color.scss"
new file mode 100644
index 000000000..1ededd94d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_color.scss"
@@ -0,0 +1,66 @@
+
+// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
+// @mixin get-styles($k,$c) {
+// @if $k == size or $k == weight{
+// font-#{$k}:#{$c}
+// }@else{
+// #{$k}:#{$c}
+// }
+// }
+$uni-ui-color:(
+ // 主色
+ primary: $uni-primary,
+ primary-disable: $uni-primary-disable,
+ primary-light: $uni-primary-light,
+ // 辅助色
+ success: $uni-success,
+ success-disable: $uni-success-disable,
+ success-light: $uni-success-light,
+ warning: $uni-warning,
+ warning-disable: $uni-warning-disable,
+ warning-light: $uni-warning-light,
+ error: $uni-error,
+ error-disable: $uni-error-disable,
+ error-light: $uni-error-light,
+ info: $uni-info,
+ info-disable: $uni-info-disable,
+ info-light: $uni-info-light,
+ // 中性色
+ main-color: $uni-main-color,
+ base-color: $uni-base-color,
+ secondary-color: $uni-secondary-color,
+ extra-color: $uni-extra-color,
+ // 背景色
+ bg-color: $uni-bg-color,
+ // 边框颜色
+ border-1: $uni-border-1,
+ border-2: $uni-border-2,
+ border-3: $uni-border-3,
+ border-4: $uni-border-4,
+ // 黑色
+ black:$uni-black,
+ // 白色
+ white:$uni-white,
+ // 透明
+ transparent:$uni-transparent
+) !default;
+@each $key, $child in $uni-ui-color {
+ .uni-#{"" + $key} {
+ color: $child;
+ }
+ .uni-#{"" + $key}-bg {
+ background-color: $child;
+ }
+}
+.uni-shadow-sm {
+ box-shadow: $uni-shadow-sm;
+}
+.uni-shadow-base {
+ box-shadow: $uni-shadow-base;
+}
+.uni-shadow-lg {
+ box-shadow: $uni-shadow-lg;
+}
+.uni-mask {
+ background-color:$uni-mask;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_radius.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_radius.scss"
new file mode 100644
index 000000000..9a0428bb8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_radius.scss"
@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+ $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+ // Key exists within the $uni-radius variable
+ @if (map-has-key($uni-radius, $r) and $d){
+ @if $d == t {
+ border-top-left-radius:$radius-value;
+ border-top-right-radius:$radius-value;
+ }@else if $d == r {
+ border-top-right-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == b {
+ border-bottom-left-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == l {
+ border-top-left-radius:$radius-value;
+ border-bottom-left-radius:$radius-value;
+ }@else if $d == tl {
+ border-top-left-radius:$radius-value;
+ }@else if $d == tr {
+ border-top-right-radius:$radius-value;
+ }@else if $d == br {
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == bl {
+ border-bottom-left-radius:$radius-value;
+ }
+ }@else{
+ border-radius:$radius-value;
+ }
+}
+
+@each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $key} {
+ @include radius($key)
+ }
+ }@else{
+ .uni-radius {
+ @include radius($key)
+ }
+ }
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+ @each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $direction}-#{"" + $key} {
+ @include radius($key,$direction,false)
+ }
+ }@else{
+ .uni-radius-#{$direction} {
+ @include radius($key,$direction,false)
+ }
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_space.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_space.scss"
new file mode 100644
index 000000000..3c8952897
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_space.scss"
@@ -0,0 +1,56 @@
+
+@mixin fn($space,$direction,$size,$n) {
+ @if $n {
+ #{$space}-#{$direction}: #{$size*$uni-space-root}px
+ } @else {
+ #{$space}-#{$direction}: #{-$size*$uni-space-root}px
+ }
+}
+@mixin get-styles($direction,$i,$space,$n){
+ @if $direction == t {
+ @include fn($space, top,$i,$n);
+ }
+ @if $direction == r {
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == b {
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == l {
+ @include fn($space, left,$i,$n);
+ }
+ @if $direction == x {
+ @include fn($space, left,$i,$n);
+ @include fn($space, right,$i,$n);
+ }
+ @if $direction == y {
+ @include fn($space, top,$i,$n);
+ @include fn($space, bottom,$i,$n);
+ }
+ @if $direction == a {
+ @if $n {
+ #{$space}:#{$i*$uni-space-root}px;
+ } @else {
+ #{$space}:#{-$i*$uni-space-root}px;
+ }
+ }
+}
+
+@each $orientation in m,p {
+ $space: margin;
+ @if $orientation == m {
+ $space: margin;
+ } @else {
+ $space: padding;
+ }
+ @for $i from 0 through 16 {
+ @each $direction in t, r, b, l, x, y, a {
+ .uni-#{$orientation}#{$direction}-#{$i} {
+ @include get-styles($direction,$i,$space,true);
+ }
+ .uni-#{$orientation}#{$direction}-n#{$i} {
+ @include get-styles($direction,$i,$space,false);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_styles.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_styles.scss"
new file mode 100644
index 000000000..689afec66
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_styles.scss"
@@ -0,0 +1,167 @@
+/* #ifndef APP-NVUE */
+
+$-color-white:#fff;
+$-color-black:#000;
+@mixin base-style($color) {
+ color: #fff;
+ background-color: $color;
+ border-color: mix($-color-black, $color, 8%);
+ &:not([hover-class]):active {
+ background: mix($-color-black, $color, 10%);
+ border-color: mix($-color-black, $color, 20%);
+ color: $-color-white;
+ outline: none;
+ }
+}
+@mixin is-color($color) {
+ @include base-style($color);
+ &[loading] {
+ @include base-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &[loading],
+ &:not([hover-class]):active {
+ color: $-color-white;
+ border-color: mix(darken($color,10%), $-color-white);
+ background-color: mix($color, $-color-white);
+ }
+ }
+
+}
+@mixin base-plain-style($color) {
+ color:$color;
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 70%);
+ &:not([hover-class]):active {
+ background: mix($-color-white, $color, 80%);
+ color: $color;
+ outline: none;
+ border-color: mix($-color-white, $color, 50%);
+ }
+}
+@mixin is-plain($color){
+ &[plain] {
+ @include base-plain-style($color);
+ &[loading] {
+ @include base-plain-style($color);
+ &::before {
+ margin-right:5px;
+ }
+ }
+ &[disabled] {
+ &,
+ &:active {
+ color: mix($-color-white, $color, 40%);
+ background-color: mix($-color-white, $color, 90%);
+ border-color: mix($-color-white, $color, 80%);
+ }
+ }
+ }
+}
+
+
+.uni-btn {
+ margin: 5px;
+ color: #393939;
+ border:1px solid #ccc;
+ font-size: 16px;
+ font-weight: 200;
+ background-color: #F9F9F9;
+ // TODO 暂时处理边框隐藏一边的问题
+ overflow: visible;
+ &::after{
+ border: none;
+ }
+
+ &:not([type]),&[type=default] {
+ color: #999;
+ &[loading] {
+ background: none;
+ &::before {
+ margin-right:5px;
+ }
+ }
+
+
+
+ &[disabled]{
+ color: mix($-color-white, #999, 60%);
+ &,
+ &[loading],
+ &:active {
+ color: mix($-color-white, #999, 60%);
+ background-color: mix($-color-white,$-color-black , 98%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+
+ &[plain] {
+ color: #999;
+ background: none;
+ border-color: $uni-border-1;
+ &:not([hover-class]):active {
+ background: none;
+ color: mix($-color-white, $-color-black, 80%);
+ border-color: mix($-color-white, $-color-black, 90%);
+ outline: none;
+ }
+ &[disabled]{
+ &,
+ &[loading],
+ &:active {
+ background: none;
+ color: mix($-color-white, #999, 60%);
+ border-color: mix($-color-white, #999, 85%);
+ }
+ }
+ }
+ }
+
+ &:not([hover-class]):active {
+ color: mix($-color-white, $-color-black, 50%);
+ }
+
+ &[size=mini] {
+ font-size: 16px;
+ font-weight: 200;
+ border-radius: 8px;
+ }
+
+
+
+ &.uni-btn-small {
+ font-size: 14px;
+ }
+ &.uni-btn-mini {
+ font-size: 12px;
+ }
+
+ &.uni-btn-radius {
+ border-radius: 999px;
+ }
+ &[type=primary] {
+ @include is-color($uni-primary);
+ @include is-plain($uni-primary)
+ }
+ &[type=success] {
+ @include is-color($uni-success);
+ @include is-plain($uni-success)
+ }
+ &[type=error] {
+ @include is-color($uni-error);
+ @include is-plain($uni-error)
+ }
+ &[type=warning] {
+ @include is-color($uni-warning);
+ @include is-plain($uni-warning)
+ }
+ &[type=info] {
+ @include is-color($uni-info);
+ @include is-plain($uni-info)
+ }
+}
+/* #endif */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_text.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_text.scss"
new file mode 100644
index 000000000..a34d08f3f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_text.scss"
@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+ @if $k == size or $k == weight{
+ font-#{$k}:#{$c}
+ }@else{
+ #{$k}:#{$c}
+ }
+}
+
+@each $key, $child in $uni-headings {
+ /* #ifndef APP-NVUE */
+ .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ .container .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_variables.scss"
new file mode 100644
index 000000000..557d3d7c9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/setting/_variables.scss"
@@ -0,0 +1,146 @@
+// @use "sass:math";
+@import '../tools/functions.scss';
+// 间距基础倍数
+$uni-space-root: 2 !default;
+// 边框半径默认值
+$uni-radius-root:5px !default;
+$uni-radius: () !default;
+// 边框半径断点
+$uni-radius: map-deep-merge(
+ (
+ 0: 0,
+ // TODO 当前版本暂时不支持 sm 属性
+ // 'sm': math.div($uni-radius-root, 2),
+ null: $uni-radius-root,
+ 'lg': $uni-radius-root * 2,
+ 'xl': $uni-radius-root * 6,
+ 'pill': 9999px,
+ 'circle': 50%
+ ),
+ $uni-radius
+);
+// 字体家族
+$body-font-family: 'Roboto', sans-serif !default;
+// 文本
+$heading-font-family: $body-font-family !default;
+$uni-headings: () !default;
+$letterSpacing: -0.01562em;
+$uni-headings: map-deep-merge(
+ (
+ 'h1': (
+ size: 32px,
+ weight: 300,
+ line-height: 50px,
+ // letter-spacing:-0.01562em
+ ),
+ 'h2': (
+ size: 28px,
+ weight: 300,
+ line-height: 40px,
+ // letter-spacing: -0.00833em
+ ),
+ 'h3': (
+ size: 24px,
+ weight: 400,
+ line-height: 32px,
+ // letter-spacing: normal
+ ),
+ 'h4': (
+ size: 20px,
+ weight: 400,
+ line-height: 30px,
+ // letter-spacing: 0.00735em
+ ),
+ 'h5': (
+ size: 16px,
+ weight: 400,
+ line-height: 24px,
+ // letter-spacing: normal
+ ),
+ 'h6': (
+ size: 14px,
+ weight: 500,
+ line-height: 18px,
+ // letter-spacing: 0.0125em
+ ),
+ 'subtitle': (
+ size: 12px,
+ weight: 400,
+ line-height: 20px,
+ // letter-spacing: 0.00937em
+ ),
+ 'body': (
+ font-size: 14px,
+ font-weight: 400,
+ line-height: 22px,
+ // letter-spacing: 0.03125em
+ ),
+ 'caption': (
+ 'size': 12px,
+ 'weight': 400,
+ 'line-height': 20px,
+ // 'letter-spacing': 0.03333em,
+ // 'text-transform': false
+ )
+ ),
+ $uni-headings
+);
+
+
+
+// 主色
+$uni-primary: #2979ff !default;
+$uni-primary-disable:lighten($uni-primary,20%) !default;
+$uni-primary-light: lighten($uni-primary,25%) !default;
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37 !default;
+$uni-success-disable:lighten($uni-success,20%) !default;
+$uni-success-light: lighten($uni-success,25%) !default;
+
+$uni-warning: #f3a73f !default;
+$uni-warning-disable:lighten($uni-warning,20%) !default;
+$uni-warning-light: lighten($uni-warning,25%) !default;
+
+$uni-error: #e43d33 !default;
+$uni-error-disable:lighten($uni-error,20%) !default;
+$uni-error-light: lighten($uni-error,25%) !default;
+
+$uni-info: #8f939c !default;
+$uni-info-disable:lighten($uni-info,20%) !default;
+$uni-info-light: lighten($uni-info,25%) !default;
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a !default; // 主要文字
+$uni-base-color: #6a6a6a !default; // 常规文字
+$uni-secondary-color: #909399 !default; // 次要文字
+$uni-extra-color: #c7c7c7 !default; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0 !default;
+$uni-border-2: #EDEDED !default;
+$uni-border-3: #DCDCDC !default;
+$uni-border-4: #B9B9B9 !default;
+
+// 常规色
+$uni-black: #000000 !default;
+$uni-white: #ffffff !default;
+$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
+
+// 背景色
+$uni-bg-color: #f7f7f7 !default;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px !default;
+$uni-spacing-base: 15px !default;
+$uni-spacing-lg: 30px !default;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/tools/functions.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/tools/functions.scss"
new file mode 100644
index 000000000..ac6f63e53
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/styles/tools/functions.scss"
@@ -0,0 +1,19 @@
+// 合并 map
+@function map-deep-merge($parent-map, $child-map){
+ $result: $parent-map;
+ @each $key, $child in $child-map {
+ $parent-has-key: map-has-key($result, $key);
+ $parent-value: map-get($result, $key);
+ $parent-type: type-of($parent-value);
+ $child-type: type-of($child);
+ $parent-is-map: $parent-type == map;
+ $child-is-map: $child-type == map;
+
+ @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
+ $result: map-merge($result, ( $key: $child ));
+ }@else {
+ $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
+ }
+ }
+ @return $result;
+};
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/theme.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/theme.scss"
new file mode 100644
index 000000000..80ee62f7d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/theme.scss"
@@ -0,0 +1,31 @@
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+// 主色
+$uni-primary: #2979ff;
+// 辅助色
+$uni-success: #4cd964;
+// 警告色
+$uni-warning: #f0ad4e;
+// 错误色
+$uni-error: #dd524d;
+// 描述色
+$uni-info: #909399;
+// 中性色
+$uni-main-color: #303133;
+$uni-base-color: #606266;
+$uni-secondary-color: #909399;
+$uni-extra-color: #C0C4CC;
+// 背景色
+$uni-bg-color: #f5f5f5;
+// 边框颜色
+$uni-border-1: #DCDFE6;
+$uni-border-2: #E4E7ED;
+$uni-border-3: #EBEEF5;
+$uni-border-4: #F2F6FC;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/variables.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/variables.scss"
new file mode 100644
index 000000000..1c062d42b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-scss/variables.scss"
@@ -0,0 +1,62 @@
+@import './styles/setting/_variables.scss';
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+
+// 主色
+$uni-primary: #2979ff;
+$uni-primary-disable:mix(#fff,$uni-primary,50%);
+$uni-primary-light: mix(#fff,$uni-primary,80%);
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37;
+$uni-success-disable:mix(#fff,$uni-success,50%);
+$uni-success-light: mix(#fff,$uni-success,80%);
+
+$uni-warning: #f3a73f;
+$uni-warning-disable:mix(#fff,$uni-warning,50%);
+$uni-warning-light: mix(#fff,$uni-warning,80%);
+
+$uni-error: #e43d33;
+$uni-error-disable:mix(#fff,$uni-error,50%);
+$uni-error-light: mix(#fff,$uni-error,80%);
+
+$uni-info: #8f939c;
+$uni-info-disable:mix(#fff,$uni-info,50%);
+$uni-info-light: mix(#fff,$uni-info,80%);
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a; // 主要文字
+$uni-base-color: #6a6a6a; // 常规文字
+$uni-secondary-color: #909399; // 次要文字
+$uni-extra-color: #c7c7c7; // 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0;
+$uni-border-2: #EDEDED;
+$uni-border-3: #DCDCDC;
+$uni-border-4: #B9B9B9;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
+
+// 背景色
+$uni-bg-color: #f7f7f7;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px;
+$uni-spacing-base: 15px;
+$uni-spacing-lg: 30px;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/changelog.md"
new file mode 100644
index 000000000..ba9b93c06
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/changelog.md"
@@ -0,0 +1,37 @@
+## 1.2.5(2024-01-31)
+- 修复 uni-search-bar居中问题,现在默认居左,并修复样式偏移问题
+## 1.2.4(2023-05-09)
+- 修复 i18n 国际化不正确的 Bug
+## 1.2.3(2022-05-24)
+- 新增 readonly 属性,组件只读
+## 1.2.2(2022-05-06)
+- 修复 vue3 input 事件不生效的bug
+## 1.2.1(2022-05-06)
+- 修复 多余代码导致的bug
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar)
+## 1.1.2(2021-08-30)
+- 修复 value 属性与 modelValue 属性不兼容的Bug
+## 1.1.1(2021-08-24)
+- 新增 支持国际化
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.9(2021-05-12)
+- 新增 项目示例地址
+## 1.0.8(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 1.0.7(2021-04-15)
+- uni-ui 新增 uni-search-bar 的 focus 事件
+
+## 1.0.6(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.5(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持双向绑定
+- 更改 input 事件的返回值,e={value:Number} --> e=value
+- 新增 支持图标插槽
+- 新增 支持 clear、blur 事件
+- 新增 支持 focus 属性
+- 去掉组件背景色
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json"
new file mode 100644
index 000000000..dd083a535
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json"
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "cancel",
+ "uni-search-bar.placeholder": "Search enter content"
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js"
new file mode 100644
index 000000000..de7509c87
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js"
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json"
new file mode 100644
index 000000000..d2a1ced4b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json"
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "取消",
+ "uni-search-bar.placeholder": "请输入搜索内容"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json"
new file mode 100644
index 000000000..f1c96bc46
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json"
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "取消",
+ "uni-search-bar.placeholder": "請輸入搜索內容"
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue"
new file mode 100644
index 000000000..9e81cff08
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue"
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+ {{cancelTextI18n}}
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/package.json"
new file mode 100644
index 000000000..a88abf531
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/package.json"
@@ -0,0 +1,86 @@
+{
+ "id": "uni-search-bar",
+ "displayName": "uni-search-bar 搜索栏",
+ "version": "1.2.5",
+ "description": "搜索栏组件,通常用于搜索商品、文章等",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "搜索框",
+ "搜索栏"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/readme.md"
new file mode 100644
index 000000000..253092f0b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-search-bar/readme.md"
@@ -0,0 +1,14 @@
+
+
+## SearchBar 搜索栏
+
+> **组件名:uni-search-bar**
+> 代码块: `uSearchBar`
+
+
+搜索栏组件
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/changelog.md"
new file mode 100644
index 000000000..c0c5839b1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/changelog.md"
@@ -0,0 +1,21 @@
+## 2.1.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag)
+## 2.0.0(2021-11-09)
+- 新增 提供组件设计资源,组件样式调整
+- 移除 插槽
+- 移除 type 属性的 royal 选项
+## 1.1.1(2021-08-11)
+- type 不是 default 时,size 为 small 字体大小显示不正确
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.7(2021-06-18)
+- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug
+## 1.0.6(2021-06-04)
+- 修复 未定义 sass 变量 "$uni-color-royal" 的bug
+## 1.0.5(2021-05-10)
+- 修复 royal 类型无效的bug
+- 修复 uni-tag 宽度不自适应的bug
+- 新增 uni-tag 支持属性 custom-style 自定义样式
+## 1.0.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/components/uni-tag/uni-tag.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"
new file mode 100644
index 000000000..418c95504
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"
@@ -0,0 +1,252 @@
+
+ {{text}}
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/package.json"
new file mode 100644
index 000000000..187808863
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/package.json"
@@ -0,0 +1,87 @@
+{
+ "id": "uni-tag",
+ "displayName": "uni-tag 标签",
+ "version": "2.1.0",
+ "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "",
+ "tag",
+ "标签"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/readme.md"
new file mode 100644
index 000000000..6e78ff5e4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-tag/readme.md"
@@ -0,0 +1,13 @@
+
+
+## Tag 标签
+> **组件名:uni-tag**
+> 代码块: `uTag`
+
+
+用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/changelog.md"
new file mode 100644
index 000000000..70c1cd4bf
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/changelog.md"
@@ -0,0 +1,22 @@
+## 1.3.2(2023-05-04)
+- 修复 NVUE 平台报错的问题
+## 1.3.1(2021-11-23)
+- 修复 init 方法初始化问题
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition)
+## 1.2.1(2021-09-27)
+- 修复 init 方法不生效的 Bug
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.1(2021-05-12)
+- 新增 示例地址
+- 修复 示例项目缺少组件的 Bug
+## 1.1.0(2021-04-22)
+- 新增 通过方法自定义动画
+- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式
+- 优化 动画触发逻辑,使动画更流畅
+- 优化 支持单独的动画类型
+- 优化 文档示例
+## 1.0.2(2021-02-05)
+- 调整为 uni_modules 目录规范
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/components/uni-transition/createAnimation.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/components/uni-transition/createAnimation.js"
new file mode 100644
index 000000000..8f89b185c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/components/uni-transition/createAnimation.js"
@@ -0,0 +1,131 @@
+// const defaultOption = {
+// duration: 300,
+// timingFunction: 'linear',
+// delay: 0,
+// transformOrigin: '50% 50% 0'
+// }
+// #ifdef APP-NVUE
+const nvueAnimation = uni.requireNativePlugin('animation')
+// #endif
+class MPAnimation {
+ constructor(options, _this) {
+ this.options = options
+ // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误
+ this.animation = uni.createAnimation({
+ ...options
+ })
+ this.currentStepAnimates = {}
+ this.next = 0
+ this.$ = _this
+
+ }
+
+ _nvuePushAnimates(type, args) {
+ let aniObj = this.currentStepAnimates[this.next]
+ let styles = {}
+ if (!aniObj) {
+ styles = {
+ styles: {},
+ config: {}
+ }
+ } else {
+ styles = aniObj
+ }
+ if (animateTypes1.includes(type)) {
+ if (!styles.styles.transform) {
+ styles.styles.transform = ''
+ }
+ let unit = ''
+ if(type === 'rotate'){
+ unit = 'deg'
+ }
+ styles.styles.transform += `${type}(${args+unit}) `
+ } else {
+ styles.styles[type] = `${args}`
+ }
+ this.currentStepAnimates[this.next] = styles
+ }
+ _animateRun(styles = {}, config = {}) {
+ let ref = this.$.$refs['ani'].ref
+ if (!ref) return
+ return new Promise((resolve, reject) => {
+ nvueAnimation.transition(ref, {
+ styles,
+ ...config
+ }, res => {
+ resolve()
+ })
+ })
+ }
+
+ _nvueNextAnimate(animates, step = 0, fn) {
+ let obj = animates[step]
+ if (obj) {
+ let {
+ styles,
+ config
+ } = obj
+ this._animateRun(styles, config).then(() => {
+ step += 1
+ this._nvueNextAnimate(animates, step, fn)
+ })
+ } else {
+ this.currentStepAnimates = {}
+ typeof fn === 'function' && fn()
+ this.isEnd = true
+ }
+ }
+
+ step(config = {}) {
+ // #ifndef APP-NVUE
+ this.animation.step(config)
+ // #endif
+ // #ifdef APP-NVUE
+ this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config)
+ this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin
+ this.next++
+ // #endif
+ return this
+ }
+
+ run(fn) {
+ // #ifndef APP-NVUE
+ this.$.animationData = this.animation.export()
+ this.$.timer = setTimeout(() => {
+ typeof fn === 'function' && fn()
+ }, this.$.durationTime)
+ // #endif
+ // #ifdef APP-NVUE
+ this.isEnd = false
+ let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref
+ if(!ref) return
+ this._nvueNextAnimate(this.currentStepAnimates, 0, fn)
+ this.next = 0
+ // #endif
+ }
+}
+
+
+const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
+ 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
+ 'translateZ'
+]
+const animateTypes2 = ['opacity', 'backgroundColor']
+const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom']
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => {
+ MPAnimation.prototype[type] = function(...args) {
+ // #ifndef APP-NVUE
+ this.animation[type](...args)
+ // #endif
+ // #ifdef APP-NVUE
+ this._nvuePushAnimates(type, args)
+ // #endif
+ return this
+ }
+})
+
+export function createAnimation(option, _this) {
+ if(!_this) return
+ clearTimeout(_this.timer)
+ return new MPAnimation(option, _this)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/components/uni-transition/uni-transition.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"
new file mode 100644
index 000000000..bfbba933c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/package.json"
new file mode 100644
index 000000000..ea995a2a1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/package.json"
@@ -0,0 +1,84 @@
+{
+ "id": "uni-transition",
+ "displayName": "uni-transition 过渡动画",
+ "version": "1.3.2",
+ "description": "元素的简单过渡动画",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "动画",
+ "过渡",
+ "过渡动画"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/readme.md"
new file mode 100644
index 000000000..2f8a77e10
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uni-transition/readme.md"
@@ -0,0 +1,11 @@
+
+
+## Transition 过渡动画
+> **组件名:uni-transition**
+> 代码块: `uTransition`
+
+
+元素过渡动画
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/changelog.md"
new file mode 100644
index 000000000..a1cc2ada8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/changelog.md"
@@ -0,0 +1,13 @@
+## 1.0.5(2023-12-20)
+1. 优化
+## 1.0.4(2023-08-04)
+1. icon支持base64图片
+## 1.0.3(2023-07-17)
+1. 修复 uv-empty 恢复设置mode属性的内置图标
+## 1.0.2(2023-07-03)
+去除插槽判断,避免某些平台不显示的BUG
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-empty 内容为空
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/components/uv-empty/props.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/components/uv-empty/props.js"
new file mode 100644
index 000000000..26c282d6b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/components/uv-empty/props.js"
@@ -0,0 +1,60 @@
+export default {
+ props: {
+ // 内置图标名称,或图片路径,建议绝对路径
+ icon: {
+ type: String,
+ default: ''
+ },
+ // 提示文字
+ text: {
+ type: String,
+ default: ''
+ },
+ // 文字颜色
+ textColor: {
+ type: String,
+ default: '#c0c4cc'
+ },
+ // 文字大小
+ textSize: {
+ type: [String, Number],
+ default: 14
+ },
+ // 图标的颜色
+ iconColor: {
+ type: String,
+ default: '#c0c4cc'
+ },
+ // 图标的大小
+ iconSize: {
+ type: [String, Number],
+ default: 90
+ },
+ // 选择预置的图标类型
+ mode: {
+ type: String,
+ default: 'data'
+ },
+ // 图标宽度,单位px
+ width: {
+ type: [String, Number],
+ default: 160
+ },
+ // 图标高度,单位px
+ height: {
+ type: [String, Number],
+ default: 160
+ },
+ // 是否显示组件
+ show: {
+ type: Boolean,
+ default: true
+ },
+ // 组件距离上一个元素之间的距离,默认px单位
+ marginTop: {
+ type: [String, Number],
+ default: 0
+ },
+ ...uni.$uv?.props?.empty
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/components/uv-empty/uv-empty.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/components/uv-empty/uv-empty.vue"
new file mode 100644
index 000000000..22a9264b7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/components/uv-empty/uv-empty.vue"
@@ -0,0 +1,126 @@
+
+
+
+
+ {{text ? text : icons[mode]}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/package.json"
new file mode 100644
index 000000000..e10f45145
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/package.json"
@@ -0,0 +1,88 @@
+{
+ "id": "uv-empty",
+ "displayName": "uv-empty 内容为空 全面兼容vue3+2、app、h5、小程序等多端",
+ "version": "1.0.5",
+ "description": "该组件用于需要加载内容,但是加载的第一页数据就为空,提示一个 没有内容 的场景, 我们精心挑选了十几个场景的图标,方便您使用。",
+ "keywords": [
+ "empty",
+ "uvui",
+ "uv-ui",
+ "空数据",
+ "暂无数据"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools",
+ "uv-icon"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/readme.md"
new file mode 100644
index 000000000..ecef14d7a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-empty/readme.md"
@@ -0,0 +1,19 @@
+## Empty 内容为空
+
+> **组件名:uv-empty**
+
+该组件用于需要加载内容,但是加载的第一页数据就为空,提示一个"没有内容"的场景, 我们精心挑选了十几个场景的图标,方便您使用。
+
+# 查看文档
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) (请不要 下载插件ZIP)
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+
+
+
+
+
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/changelog.md"
new file mode 100644
index 000000000..c61082785
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/changelog.md"
@@ -0,0 +1,31 @@
+## 1.0.13(2023-12-06)
+1. 优化
+## 1.0.12(2023-12-06)
+1. 阻止事件冒泡处理
+## 1.0.11(2023-10-29)
+1. imgMode默认值改成aspectFit
+## 1.0.10(2023-08-13)
+1. 优化nvue,方便自定义图标
+## 1.0.9(2023-07-28)
+1. 修改几个对应错误图标的BUG
+## 1.0.8(2023-07-24)
+1. 优化 支持base64图片
+## 1.0.7(2023-07-17)
+1. 修复 uv-icon 恢复uv-empty相关的图标
+## 1.0.6(2023-07-13)
+1. 修复icon设置name属性对应图标错误的BUG
+## 1.0.5(2023-07-04)
+1. 更新图标,删除一些不常用的图标
+2. 删除base64,修改成ttf文件引入读取图标
+3. 自定义图标文档说明:https://www.uvui.cn/guide/customIcon.html
+## 1.0.4(2023-07-03)
+1. 修复主题颜色在APP不生效的BUG
+## 1.0.3(2023-05-24)
+1. 将线上ttf字体包替换成base64,避免加载时或者网络差时候显示白色方块
+## 1.0.2(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.1(2023-05-10)
+1. 修复小程序中异常显示
+## 1.0.0(2023-05-04)
+新发版
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/icons.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/icons.js"
new file mode 100644
index 000000000..8469a2dab
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/icons.js"
@@ -0,0 +1,160 @@
+export default {
+ 'uvicon-level': 'e68f',
+ 'uvicon-checkbox-mark': 'e659',
+ 'uvicon-folder': 'e694',
+ 'uvicon-movie': 'e67c',
+ 'uvicon-star-fill': 'e61e',
+ 'uvicon-star': 'e618',
+ 'uvicon-phone-fill': 'e6ac',
+ 'uvicon-phone': 'e6ba',
+ 'uvicon-apple-fill': 'e635',
+ 'uvicon-backspace': 'e64d',
+ 'uvicon-attach': 'e640',
+ 'uvicon-empty-data': 'e671',
+ 'uvicon-empty-address': 'e68a',
+ 'uvicon-empty-favor': 'e662',
+ 'uvicon-empty-car': 'e657',
+ 'uvicon-empty-order': 'e66b',
+ 'uvicon-empty-list': 'e672',
+ 'uvicon-empty-search': 'e677',
+ 'uvicon-empty-permission': 'e67d',
+ 'uvicon-empty-news': 'e67e',
+ 'uvicon-empty-history': 'e685',
+ 'uvicon-empty-coupon': 'e69b',
+ 'uvicon-empty-page': 'e60e',
+ 'uvicon-empty-wifi-off': 'e6cc',
+ 'uvicon-reload': 'e627',
+ 'uvicon-order': 'e695',
+ 'uvicon-server-man': 'e601',
+ 'uvicon-search': 'e632',
+ 'uvicon-more-dot-fill': 'e66f',
+ 'uvicon-scan': 'e631',
+ 'uvicon-map': 'e665',
+ 'uvicon-map-fill': 'e6a8',
+ 'uvicon-tags': 'e621',
+ 'uvicon-tags-fill': 'e613',
+ 'uvicon-eye': 'e664',
+ 'uvicon-eye-fill': 'e697',
+ 'uvicon-eye-off': 'e69c',
+ 'uvicon-eye-off-outline': 'e688',
+ 'uvicon-mic': 'e66d',
+ 'uvicon-mic-off': 'e691',
+ 'uvicon-calendar': 'e65c',
+ 'uvicon-trash': 'e623',
+ 'uvicon-trash-fill': 'e6ce',
+ 'uvicon-play-left': 'e6bf',
+ 'uvicon-play-right': 'e6b3',
+ 'uvicon-minus': 'e614',
+ 'uvicon-plus': 'e625',
+ 'uvicon-info-circle': 'e69f',
+ 'uvicon-info-circle-fill': 'e6a7',
+ 'uvicon-question-circle': 'e622',
+ 'uvicon-question-circle-fill': 'e6bc',
+ 'uvicon-close': 'e65a',
+ 'uvicon-checkmark': 'e64a',
+ 'uvicon-checkmark-circle': 'e643',
+ 'uvicon-checkmark-circle-fill': 'e668',
+ 'uvicon-setting': 'e602',
+ 'uvicon-setting-fill': 'e6d0',
+ 'uvicon-heart': 'e6a2',
+ 'uvicon-heart-fill': 'e68b',
+ 'uvicon-camera': 'e642',
+ 'uvicon-camera-fill': 'e650',
+ 'uvicon-more-circle': 'e69e',
+ 'uvicon-more-circle-fill': 'e684',
+ 'uvicon-chat': 'e656',
+ 'uvicon-chat-fill': 'e63f',
+ 'uvicon-bag': 'e647',
+ 'uvicon-error-circle': 'e66e',
+ 'uvicon-error-circle-fill': 'e655',
+ 'uvicon-close-circle': 'e64e',
+ 'uvicon-close-circle-fill': 'e666',
+ 'uvicon-share': 'e629',
+ 'uvicon-share-fill': 'e6bb',
+ 'uvicon-share-square': 'e6c4',
+ 'uvicon-shopping-cart': 'e6cb',
+ 'uvicon-shopping-cart-fill': 'e630',
+ 'uvicon-bell': 'e651',
+ 'uvicon-bell-fill': 'e604',
+ 'uvicon-list': 'e690',
+ 'uvicon-list-dot': 'e6a9',
+ 'uvicon-zhifubao-circle-fill': 'e617',
+ 'uvicon-weixin-circle-fill': 'e6cd',
+ 'uvicon-weixin-fill': 'e620',
+ 'uvicon-qq-fill': 'e608',
+ 'uvicon-qq-circle-fill': 'e6b9',
+ 'uvicon-moments-circel-fill': 'e6c2',
+ 'uvicon-moments': 'e6a0',
+ 'uvicon-car': 'e64f',
+ 'uvicon-car-fill': 'e648',
+ 'uvicon-warning-fill': 'e6c7',
+ 'uvicon-warning': 'e6c1',
+ 'uvicon-clock-fill': 'e64b',
+ 'uvicon-clock': 'e66c',
+ 'uvicon-edit-pen': 'e65d',
+ 'uvicon-edit-pen-fill': 'e679',
+ 'uvicon-email': 'e673',
+ 'uvicon-email-fill': 'e683',
+ 'uvicon-minus-circle': 'e6a5',
+ 'uvicon-plus-circle': 'e603',
+ 'uvicon-plus-circle-fill': 'e611',
+ 'uvicon-file-text': 'e687',
+ 'uvicon-file-text-fill': 'e67f',
+ 'uvicon-pushpin': 'e6d1',
+ 'uvicon-pushpin-fill': 'e6b6',
+ 'uvicon-grid': 'e68c',
+ 'uvicon-grid-fill': 'e698',
+ 'uvicon-play-circle': 'e6af',
+ 'uvicon-play-circle-fill': 'e62a',
+ 'uvicon-pause-circle-fill': 'e60c',
+ 'uvicon-pause': 'e61c',
+ 'uvicon-pause-circle': 'e696',
+ 'uvicon-gift-fill': 'e6b0',
+ 'uvicon-gift': 'e680',
+ 'uvicon-kefu-ermai': 'e660',
+ 'uvicon-server-fill': 'e610',
+ 'uvicon-coupon-fill': 'e64c',
+ 'uvicon-coupon': 'e65f',
+ 'uvicon-integral': 'e693',
+ 'uvicon-integral-fill': 'e6b1',
+ 'uvicon-home-fill': 'e68e',
+ 'uvicon-home': 'e67b',
+ 'uvicon-account': 'e63a',
+ 'uvicon-account-fill': 'e653',
+ 'uvicon-thumb-down-fill': 'e628',
+ 'uvicon-thumb-down': 'e60a',
+ 'uvicon-thumb-up': 'e612',
+ 'uvicon-thumb-up-fill': 'e62c',
+ 'uvicon-lock-fill': 'e6a6',
+ 'uvicon-lock-open': 'e68d',
+ 'uvicon-lock-opened-fill': 'e6a1',
+ 'uvicon-lock': 'e69d',
+ 'uvicon-red-packet': 'e6c3',
+ 'uvicon-photo-fill': 'e6b4',
+ 'uvicon-photo': 'e60d',
+ 'uvicon-volume-off-fill': 'e6c8',
+ 'uvicon-volume-off': 'e6bd',
+ 'uvicon-volume-fill': 'e624',
+ 'uvicon-volume': 'e605',
+ 'uvicon-download': 'e670',
+ 'uvicon-arrow-up-fill': 'e636',
+ 'uvicon-arrow-down-fill': 'e638',
+ 'uvicon-play-left-fill': 'e6ae',
+ 'uvicon-play-right-fill': 'e6ad',
+ 'uvicon-arrow-downward': 'e634',
+ 'uvicon-arrow-leftward': 'e63b',
+ 'uvicon-arrow-rightward': 'e644',
+ 'uvicon-arrow-upward': 'e641',
+ 'uvicon-arrow-down': 'e63e',
+ 'uvicon-arrow-right': 'e63c',
+ 'uvicon-arrow-left': 'e646',
+ 'uvicon-arrow-up': 'e633',
+ 'uvicon-skip-back-left': 'e6c5',
+ 'uvicon-skip-forward-right': 'e61f',
+ 'uvicon-arrow-left-double': 'e637',
+ 'uvicon-man': 'e675',
+ 'uvicon-woman': 'e626',
+ 'uvicon-en': 'e6b8',
+ 'uvicon-twitte': 'e607',
+ 'uvicon-twitter-circle-fill': 'e6cf'
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/props.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/props.js"
new file mode 100644
index 000000000..7668cf960
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/props.js"
@@ -0,0 +1,90 @@
+export default {
+ props: {
+ // 图标类名
+ name: {
+ type: String,
+ default: ''
+ },
+ // 图标颜色,可接受主题色
+ color: {
+ type: String,
+ default: '#606266'
+ },
+ // 字体大小,单位px
+ size: {
+ type: [String, Number],
+ default: '16px'
+ },
+ // 是否显示粗体
+ bold: {
+ type: Boolean,
+ default: false
+ },
+ // 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
+ index: {
+ type: [String, Number],
+ default: null
+ },
+ // 触摸图标时的类名
+ hoverClass: {
+ type: String,
+ default: ''
+ },
+ // 自定义扩展前缀,方便用户扩展自己的图标库
+ customPrefix: {
+ type: String,
+ default: 'uvicon'
+ },
+ // 图标右边或者下面的文字
+ label: {
+ type: [String, Number],
+ default: ''
+ },
+ // label的位置,只能右边或者下边
+ labelPos: {
+ type: String,
+ default: 'right'
+ },
+ // label的大小
+ labelSize: {
+ type: [String, Number],
+ default: '15px'
+ },
+ // label的颜色
+ labelColor: {
+ type: String,
+ default: '#606266'
+ },
+ // label与图标的距离
+ space: {
+ type: [String, Number],
+ default: '3px'
+ },
+ // 图片的mode
+ imgMode: {
+ type: String,
+ default: 'aspectFit'
+ },
+ // 用于显示图片小图标时,图片的宽度
+ width: {
+ type: [String, Number],
+ default: ''
+ },
+ // 用于显示图片小图标时,图片的高度
+ height: {
+ type: [String, Number],
+ default: ''
+ },
+ // 用于解决某些情况下,让图标垂直居中的用途
+ top: {
+ type: [String, Number],
+ default: 0
+ },
+ // 是否阻止事件传播
+ stop: {
+ type: Boolean,
+ default: false
+ },
+ ...uni.$uv?.props?.icon
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/uv-icon.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/uv-icon.vue"
new file mode 100644
index 000000000..d61c9e5b3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/uv-icon.vue"
@@ -0,0 +1,226 @@
+
+
+
+ {{icon}}
+
+ {{ label }}
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/uvicons.ttf" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/uvicons.ttf"
new file mode 100644
index 000000000..9aedef864
Binary files /dev/null and "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/components/uv-icon/uvicons.ttf" differ
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/package.json"
new file mode 100644
index 000000000..0a838d5bd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/package.json"
@@ -0,0 +1,83 @@
+{
+ "id": "uv-icon",
+ "displayName": "uv-icon 图标 全面兼容vue3+2、app、h5、小程序等多端",
+ "version": "1.0.13",
+ "description": "基于字体的图标集,包含了大多数常见场景的图标,支持自定义,支持自定义图片图标等。可自定义颜色、大小。",
+ "keywords": [
+ "uv-ui,uvui,uv-icon,icon,图标,字体图标"
+],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.1.0"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uv-ui-tools"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/readme.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/readme.md"
new file mode 100644
index 000000000..d526e1a1a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-icon/readme.md"
@@ -0,0 +1,15 @@
+## uv-icon 图标库
+
+> **组件名:uv-icon**
+
+基于字体的图标集,包含了大多数常见场景的图标,支持自定义,支持自定义图片图标等。
+
+# 查看文档
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/changelog.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/changelog.md"
new file mode 100644
index 000000000..998373e4c
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/changelog.md"
@@ -0,0 +1,76 @@
+## 1.1.25(2024-01-20)
+1.1.20版本更新
+## 1.1.24(2023-12-21)
+1. luch-request更新
+## 1.1.23(2023-12-12)
+1. 1.1.19版本
+## 1.1.22(2023-11-28)
+1. 优化
+## 1.1.21(2023-11-10)
+1. 1.1.17版本
+## 1.1.20(2023-10-30)
+1. 1.1.16版本
+## 1.1.19(2023-10-13)
+1. 兼容vue3
+## 1.1.18(2023-10-12)
+1. 1.1.15版本
+## 1.1.17(2023-09-27)
+1. 1.1.14版本发布
+## 1.1.16(2023-09-15)
+1. 1.1.13版本发布
+## 1.1.15(2023-09-15)
+1. 更新button.js相关按钮支持open-type="agreePrivacyAuthorization"
+## 1.1.14(2023-09-14)
+1. 优化dayjs
+## 1.1.13(2023-09-13)
+1. 优化,$uv中增加unit参数,方便组件中使用
+## 1.1.12(2023-09-10)
+1. 升级版本
+## 1.1.11(2023-09-04)
+1. 1.1.11版本
+## 1.1.10(2023-08-31)
+1. 修复customStyle和customClass存在冲突的问题
+## 1.1.9(2023-08-27)
+1. 版本升级
+2. 优化
+## 1.1.8(2023-08-24)
+1. 版本升级
+## 1.1.7(2023-08-22)
+1. 版本升级
+## 1.1.6(2023-08-18)
+uvui版本:1.1.6
+## 1.0.15(2023-08-14)
+1. 更新uvui版本号
+## 1.0.13(2023-08-06)
+1. 优化
+## 1.0.12(2023-08-06)
+1. 修改版本号
+## 1.0.11(2023-08-06)
+1. 路由增加events参数
+2. 路由拦截修复
+## 1.0.10(2023-08-01)
+1. 优化
+## 1.0.9(2023-06-28)
+优化openType.js
+## 1.0.8(2023-06-15)
+1. 修改支付宝报错的BUG
+## 1.0.7(2023-06-07)
+1. 解决微信小程序使用uvui提示 Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors
+2. 解决上述提示,需要在uni.scss配置$uvui-nvue-style: false; 然后在APP.vue下面引入uvui内置的基础样式:@import '@/uni_modules/uv-ui-tools/index.scss';
+## 1.0.6(2023-06-04)
+1. uv-ui-tools 优化工具组件,兼容更多功能
+2. 小程序分享功能优化等
+## 1.0.5(2023-06-02)
+1. 修改扩展使用mixin中方法的问题
+## 1.0.4(2023-05-23)
+1. 兼容百度小程序修改bem函数
+## 1.0.3(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.2(2023-05-10)
+1. 增加Http请求封装
+2. 优化
+## 1.0.1(2023-05-04)
+1. 修改名称及备注
+## 1.0.0(2023-05-04)
+1. uv-ui工具集首次发布
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue"
new file mode 100644
index 000000000..baf45e918
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue"
@@ -0,0 +1,6 @@
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/index.js"
new file mode 100644
index 000000000..71a8b6682
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/index.js"
@@ -0,0 +1,79 @@
+// 全局挂载引入http相关请求拦截插件
+import Request from './libs/luch-request'
+
+// 引入全局mixin
+import mixin from './libs/mixin/mixin.js'
+// 小程序特有的mixin
+import mpMixin from './libs/mixin/mpMixin.js'
+// #ifdef MP
+import mpShare from './libs/mixin/mpShare.js'
+// #endif
+
+// 路由封装
+import route from './libs/util/route.js'
+// 公共工具函数
+import * as index from './libs/function/index.js'
+// 防抖方法
+import debounce from './libs/function/debounce.js'
+// 节流方法
+import throttle from './libs/function/throttle.js'
+// 规则检验
+import * as test from './libs/function/test.js'
+
+// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
+import * as colorGradient from './libs/function/colorGradient.js'
+
+// 配置信息
+import config from './libs/config/config.js'
+// 平台
+import platform from './libs/function/platform'
+
+const $uv = {
+ route,
+ config,
+ test,
+ date: index.timeFormat, // 另名date
+ ...index,
+ colorGradient: colorGradient.colorGradient,
+ hexToRgb: colorGradient.hexToRgb,
+ rgbToHex: colorGradient.rgbToHex,
+ colorToRgba: colorGradient.colorToRgba,
+ http: new Request(),
+ debounce,
+ throttle,
+ platform,
+ mixin,
+ mpMixin
+}
+uni.$uv = $uv;
+const install = (Vue,options={}) => {
+ // #ifndef APP-NVUE
+ const cloneMixin = index.deepClone(mixin);
+ delete cloneMixin?.props?.customClass;
+ delete cloneMixin?.props?.customStyle;
+ Vue.mixin(cloneMixin);
+ // #ifdef MP
+ if(options.mpShare){
+ Vue.mixin(mpShare);
+ }
+ // #endif
+ // #endif
+ // #ifdef VUE2
+ // 时间格式化,同时两个名称,date和timeFormat
+ Vue.filter('timeFormat', (timestamp, format) => uni.$uv.timeFormat(timestamp, format));
+ Vue.filter('date', (timestamp, format) => uni.$uv.timeFormat(timestamp, format));
+ // 将多久以前的方法,注入到全局过滤器
+ Vue.filter('timeFrom', (timestamp, format) => uni.$uv.timeFrom(timestamp, format));
+ // 同时挂载到uni和Vue.prototype中
+ // #ifndef APP-NVUE
+ // 只有vue,挂载到Vue.prototype才有意义,因为nvue中全局Vue.prototype和Vue.mixin是无效的
+ Vue.prototype.$uv = $uv;
+ // #endif
+ // #endif
+ // #ifdef VUE3
+ Vue.config.globalProperties.$uv = $uv;
+ // #endif
+}
+export default {
+ install
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/index.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/index.scss"
new file mode 100644
index 000000000..8d05b8da9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/index.scss"
@@ -0,0 +1,7 @@
+// 引入公共基础类
+@import "./libs/css/common.scss";
+
+// 非nvue的样式
+/* #ifndef APP-NVUE */
+@import "./libs/css/vue.scss";
+/* #endif */
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/config/config.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/config/config.js"
new file mode 100644
index 000000000..f18ae7405
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/config/config.js"
@@ -0,0 +1,34 @@
+// 此版本发布于2024-01-20
+const version = '1.1.20'
+
+// 开发环境才提示,生产环境不会提示
+if (process.env.NODE_ENV === 'development') {
+ console.log(`\n %c uvui V${version} https://www.uvui.cn/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;');
+}
+
+export default {
+ v: version,
+ version,
+ // 主题名称
+ type: [
+ 'primary',
+ 'success',
+ 'info',
+ 'error',
+ 'warning'
+ ],
+ // 颜色部分,本来可以通过scss的:export导出供js使用,但是奈何nvue不支持
+ color: {
+ 'uv-primary': '#2979ff',
+ 'uv-warning': '#ff9900',
+ 'uv-success': '#19be6b',
+ 'uv-error': '#fa3534',
+ 'uv-info': '#909399',
+ 'uv-main-color': '#303133',
+ 'uv-content-color': '#606266',
+ 'uv-tips-color': '#909399',
+ 'uv-light-color': '#c0c4cc'
+ },
+ // 默认单位,可以通过配置为rpx,那么在用于传入组件大小参数为数值时,就默认为rpx
+ unit: 'px'
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/color.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/color.scss"
new file mode 100644
index 000000000..ce6574343
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/color.scss"
@@ -0,0 +1,32 @@
+$uv-main-color: #303133 !default;
+$uv-content-color: #606266 !default;
+$uv-tips-color: #909193 !default;
+$uv-light-color: #c0c4cc !default;
+$uv-border-color: #dadbde !default;
+$uv-bg-color: #f3f4f6 !default;
+$uv-disabled-color: #c8c9cc !default;
+
+$uv-primary: #3c9cff !default;
+$uv-primary-dark: #398ade !default;
+$uv-primary-disabled: #9acafc !default;
+$uv-primary-light: #ecf5ff !default;
+
+$uv-warning: #f9ae3d !default;
+$uv-warning-dark: #f1a532 !default;
+$uv-warning-disabled: #f9d39b !default;
+$uv-warning-light: #fdf6ec !default;
+
+$uv-success: #5ac725 !default;
+$uv-success-dark: #53c21d !default;
+$uv-success-disabled: #a9e08f !default;
+$uv-success-light: #f5fff0;
+
+$uv-error: #f56c6c !default;
+$uv-error-dark: #e45656 !default;
+$uv-error-disabled: #f7b2b2 !default;
+$uv-error-light: #fef0f0 !default;
+
+$uv-info: #909399 !default;
+$uv-info-dark: #767a82 !default;
+$uv-info-disabled: #c4c6c9 !default;
+$uv-info-light: #f4f4f5 !default;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/common.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/common.scss"
new file mode 100644
index 000000000..7ab99f8e8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/common.scss"
@@ -0,0 +1,100 @@
+// 超出行数,自动显示行尾省略号,最多5行
+// 来自uvui的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】
+@for $i from 1 through 5 {
+ .uv-line-#{$i} {
+ /* #ifdef APP-NVUE */
+ // nvue下,可以直接使用lines属性,这是weex特有样式
+ lines: $i;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex: 1;
+ /* #endif */
+
+ /* #ifndef APP-NVUE */
+ // vue下,单行和多行显示省略号需要单独处理
+ @if $i == '1' {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ } @else {
+ display: -webkit-box!important;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-break: break-all;
+ -webkit-line-clamp: $i;
+ -webkit-box-orient: vertical!important;
+ }
+ /* #endif */
+ }
+}
+$uv-bordercolor: #dadbde;
+@if variable-exists(uv-border-color) {
+ $uv-bordercolor: $uv-border-color;
+}
+
+// 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时,
+// App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效
+// 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important
+// 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现
+.uv-border {
+ border-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-style: solid;
+}
+
+.uv-border-top {
+ border-top-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+}
+
+.uv-border-left {
+ border-left-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-left-style: solid;
+}
+
+.uv-border-right {
+ border-right-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-right-style: solid;
+}
+
+.uv-border-bottom {
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-bottom-style: solid;
+}
+
+.uv-border-top-bottom {
+ border-top-width: 0.5px!important;
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+ border-bottom-style: solid;
+}
+
+// 去除button的所有默认样式,让其表现跟普通的view、text元素一样
+.uv-reset-button {
+ padding: 0;
+ background-color: transparent;
+ /* #ifndef APP-PLUS */
+ font-size: inherit;
+ line-height: inherit;
+ color: inherit;
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ border-width: 0;
+ /* #endif */
+}
+
+/* #ifndef APP-NVUE */
+.uv-reset-button::after {
+ border: none;
+}
+/* #endif */
+
+.uv-hover-class {
+ opacity: 0.7;
+}
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/components.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/components.scss"
new file mode 100644
index 000000000..81ce15d78
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/components.scss"
@@ -0,0 +1,23 @@
+@mixin flex($direction: row) {
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ flex-direction: $direction;
+}
+
+/* #ifndef APP-NVUE */
+// 由于uvui是基于nvue环境进行开发的,此环境中普通元素默认为flex-direction: column;
+// 所以在非nvue中,需要对元素进行重置为flex-direction: column; 否则可能会表现异常
+$uvui-nvue-style: true !default;
+@if $uvui-nvue-style == true {
+ view, scroll-view, swiper-item {
+ display: flex;
+ flex-direction: column;
+ flex-shrink: 0;
+ flex-grow: 0;
+ flex-basis: auto;
+ align-items: stretch;
+ align-content: flex-start;
+ }
+}
+/* #endif */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/variable.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/variable.scss"
new file mode 100644
index 000000000..63903c974
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/variable.scss"
@@ -0,0 +1,111 @@
+// 超出行数,自动显示行尾省略号,最多5行
+// 来自uvui的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】
+@if variable-exists(show-lines) {
+ @for $i from 1 through 5 {
+ .uv-line-#{$i} {
+ /* #ifdef APP-NVUE */
+ // nvue下,可以直接使用lines属性,这是weex特有样式
+ lines: $i;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ flex: 1;
+ /* #endif */
+
+ /* #ifndef APP-NVUE */
+ // vue下,单行和多行显示省略号需要单独处理
+ @if $i == '1' {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ } @else {
+ display: -webkit-box!important;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-break: break-all;
+ -webkit-line-clamp: $i;
+ -webkit-box-orient: vertical!important;
+ }
+ /* #endif */
+ }
+ }
+}
+@if variable-exists(show-border) {
+ $uv-bordercolor: #dadbde;
+ @if variable-exists(uv-border-color) {
+ $uv-bordercolor: $uv-border-color;
+ }
+ // 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时,
+ // App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效
+ // 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important
+ // 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现
+ @if variable-exists(show-border-surround) {
+ .uv-border {
+ border-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-style: solid;
+ }
+ }
+ @if variable-exists(show-border-top) {
+ .uv-border-top {
+ border-top-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+ }
+ }
+ @if variable-exists(show-border-left) {
+ .uv-border-left {
+ border-left-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-left-style: solid;
+ }
+ }
+ @if variable-exists(show-border-right) {
+ .uv-border-right {
+ border-right-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-right-style: solid;
+ }
+ }
+ @if variable-exists(show-border-bottom) {
+ .uv-border-bottom {
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-bottom-style: solid;
+ }
+ }
+ @if variable-exists(show-border-top-bottom) {
+ .uv-border-top-bottom {
+ border-top-width: 0.5px!important;
+ border-bottom-width: 0.5px!important;
+ border-color: $uv-bordercolor!important;
+ border-top-style: solid;
+ border-bottom-style: solid;
+ }
+ }
+}
+@if variable-exists(show-reset-button) {
+ // 去除button的所有默认样式,让其表现跟普通的view、text元素一样
+ .uv-reset-button {
+ padding: 0;
+ background-color: transparent;
+ /* #ifndef APP-PLUS */
+ font-size: inherit;
+ line-height: inherit;
+ color: inherit;
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ border-width: 0;
+ /* #endif */
+ }
+
+ /* #ifndef APP-NVUE */
+ .uv-reset-button::after {
+ border: none;
+ }
+ /* #endif */
+}
+@if variable-exists(show-hover) {
+ .uv-hover-class {
+ opacity: 0.7;
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/vue.scss" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/vue.scss"
new file mode 100644
index 000000000..bdbefdda1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/css/vue.scss"
@@ -0,0 +1,40 @@
+// 历遍生成4个方向的底部安全区
+@each $d in top, right, bottom, left {
+ .uv-safe-area-inset-#{$d} {
+ padding-#{$d}: 0;
+ padding-#{$d}: constant(safe-area-inset-#{$d});
+ padding-#{$d}: env(safe-area-inset-#{$d});
+ }
+}
+
+//提升H5端uni.toast()的层级,避免被uvui的modal等遮盖
+/* #ifdef H5 */
+uni-toast {
+ z-index: 10090;
+}
+uni-toast .uni-toast {
+ z-index: 10090;
+}
+/* #endif */
+
+// 隐藏scroll-view的滚动条
+::-webkit-scrollbar {
+ display: none;
+ width: 0 !important;
+ height: 0 !important;
+ -webkit-appearance: none;
+ background: transparent;
+}
+
+$uvui-nvue-style: true !default;
+@if $uvui-nvue-style == false {
+ view, scroll-view, swiper-item {
+ display: flex;
+ flex-direction: column;
+ flex-shrink: 0;
+ flex-grow: 0;
+ flex-basis: auto;
+ align-items: stretch;
+ align-content: flex-start;
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/colorGradient.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/colorGradient.js"
new file mode 100644
index 000000000..55c188fc2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/colorGradient.js"
@@ -0,0 +1,134 @@
+/**
+ * 求两个颜色之间的渐变值
+ * @param {string} startColor 开始的颜色
+ * @param {string} endColor 结束的颜色
+ * @param {number} step 颜色等分的份额
+ * */
+function colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {
+ const startRGB = hexToRgb(startColor, false) // 转换为rgb数组模式
+ const startR = startRGB[0]
+ const startG = startRGB[1]
+ const startB = startRGB[2]
+
+ const endRGB = hexToRgb(endColor, false)
+ const endR = endRGB[0]
+ const endG = endRGB[1]
+ const endB = endRGB[2]
+
+ const sR = (endR - startR) / step // 总差值
+ const sG = (endG - startG) / step
+ const sB = (endB - startB) / step
+ const colorArr = []
+ for (let i = 0; i < step; i++) {
+ // 计算每一步的hex值
+ let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB
+ * i + startB))})`)
+ // 确保第一个颜色值为startColor的值
+ if (i === 0) hex = rgbToHex(startColor)
+ // 确保最后一个颜色值为endColor的值
+ if (i === step - 1) hex = rgbToHex(endColor)
+ colorArr.push(hex)
+ }
+ return colorArr
+}
+
+// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
+function hexToRgb(sColor, str = true) {
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+ sColor = String(sColor).toLowerCase()
+ if (sColor && reg.test(sColor)) {
+ if (sColor.length === 4) {
+ let sColorNew = '#'
+ for (let i = 1; i < 4; i += 1) {
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
+ }
+ sColor = sColorNew
+ }
+ // 处理六位的颜色值
+ const sColorChange = []
+ for (let i = 1; i < 7; i += 2) {
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
+ }
+ if (!str) {
+ return sColorChange
+ }
+ return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`
+ } if (/^(rgb|RGB)/.test(sColor)) {
+ const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
+ return arr.map((val) => Number(val))
+ }
+ return sColor
+}
+
+// 将rgb表示方式转换为hex表示方式
+function rgbToHex(rgb) {
+ const _this = rgb
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+ if (/^(rgb|RGB)/.test(_this)) {
+ const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
+ let strHex = '#'
+ for (let i = 0; i < aColor.length; i++) {
+ let hex = Number(aColor[i]).toString(16)
+ hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位
+ if (hex === '0') {
+ hex += hex
+ }
+ strHex += hex
+ }
+ if (strHex.length !== 7) {
+ strHex = _this
+ }
+ return strHex
+ } if (reg.test(_this)) {
+ const aNum = _this.replace(/#/, '').split('')
+ if (aNum.length === 6) {
+ return _this
+ } if (aNum.length === 3) {
+ let numHex = '#'
+ for (let i = 0; i < aNum.length; i += 1) {
+ numHex += (aNum[i] + aNum[i])
+ }
+ return numHex
+ }
+ } else {
+ return _this
+ }
+}
+
+/**
+* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
+* sHex为传入的十六进制的色值
+* alpha为rgba的透明度
+*/
+function colorToRgba(color, alpha) {
+ color = rgbToHex(color)
+ // 十六进制颜色值的正则表达式
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
+ /* 16进制颜色转为RGB格式 */
+ let sColor = String(color).toLowerCase()
+ if (sColor && reg.test(sColor)) {
+ if (sColor.length === 4) {
+ let sColorNew = '#'
+ for (let i = 1; i < 4; i += 1) {
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
+ }
+ sColor = sColorNew
+ }
+ // 处理六位的颜色值
+ const sColorChange = []
+ for (let i = 1; i < 7; i += 2) {
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
+ }
+ // return sColorChange.join(',')
+ return `rgba(${sColorChange.join(',')},${alpha})`
+ }
+
+ return sColor
+}
+
+export {
+ colorGradient,
+ hexToRgb,
+ rgbToHex,
+ colorToRgba
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/debounce.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/debounce.js"
new file mode 100644
index 000000000..ad3996bb5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/debounce.js"
@@ -0,0 +1,29 @@
+let timeout = null
+
+/**
+ * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
+ *
+ * @param {Function} func 要执行的回调函数
+ * @param {Number} wait 延时的时间
+ * @param {Boolean} immediate 是否立即执行
+ * @return null
+ */
+function debounce(func, wait = 500, immediate = false) {
+ // 清除定时器
+ if (timeout !== null) clearTimeout(timeout)
+ // 立即执行,此类情况一般用不到
+ if (immediate) {
+ const callNow = !timeout
+ timeout = setTimeout(() => {
+ timeout = null
+ }, wait)
+ if (callNow) typeof func === 'function' && func()
+ } else {
+ // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
+ timeout = setTimeout(() => {
+ typeof func === 'function' && func()
+ }, wait)
+ }
+}
+
+export default debounce
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/digit.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/digit.js"
new file mode 100644
index 000000000..c8260a06e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/digit.js"
@@ -0,0 +1,167 @@
+let _boundaryCheckingState = true; // 是否进行越界检查的全局开关
+
+/**
+ * 把错误的数据转正
+ * @private
+ * @example strip(0.09999999999999998)=0.1
+ */
+function strip(num, precision = 15) {
+ return +parseFloat(Number(num).toPrecision(precision));
+}
+
+/**
+ * Return digits length of a number
+ * @private
+ * @param {*number} num Input number
+ */
+function digitLength(num) {
+ // Get digit length of e
+ const eSplit = num.toString().split(/[eE]/);
+ const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
+ return len > 0 ? len : 0;
+}
+
+/**
+ * 把小数转成整数,如果是小数则放大成整数
+ * @private
+ * @param {*number} num 输入数
+ */
+function float2Fixed(num) {
+ if (num.toString().indexOf('e') === -1) {
+ return Number(num.toString().replace('.', ''));
+ }
+ const dLen = digitLength(num);
+ return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);
+}
+
+/**
+ * 检测数字是否越界,如果越界给出提示
+ * @private
+ * @param {*number} num 输入数
+ */
+function checkBoundary(num) {
+ if (_boundaryCheckingState) {
+ if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {
+ console.warn(`${num} 超出了精度限制,结果可能不正确`);
+ }
+ }
+}
+
+/**
+ * 把递归操作扁平迭代化
+ * @param {number[]} arr 要操作的数字数组
+ * @param {function} operation 迭代操作
+ * @private
+ */
+function iteratorOperation(arr, operation) {
+ const [num1, num2, ...others] = arr;
+ let res = operation(num1, num2);
+
+ others.forEach((num) => {
+ res = operation(res, num);
+ });
+
+ return res;
+}
+
+/**
+ * 高精度乘法
+ * @export
+ */
+export function times(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, times);
+ }
+
+ const [num1, num2] = nums;
+ const num1Changed = float2Fixed(num1);
+ const num2Changed = float2Fixed(num2);
+ const baseNum = digitLength(num1) + digitLength(num2);
+ const leftValue = num1Changed * num2Changed;
+
+ checkBoundary(leftValue);
+
+ return leftValue / Math.pow(10, baseNum);
+}
+
+/**
+ * 高精度加法
+ * @export
+ */
+export function plus(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, plus);
+ }
+
+ const [num1, num2] = nums;
+ // 取最大的小数位
+ const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
+ // 把小数都转为整数然后再计算
+ return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
+}
+
+/**
+ * 高精度减法
+ * @export
+ */
+export function minus(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, minus);
+ }
+
+ const [num1, num2] = nums;
+ const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
+ return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
+}
+
+/**
+ * 高精度除法
+ * @export
+ */
+export function divide(...nums) {
+ if (nums.length > 2) {
+ return iteratorOperation(nums, divide);
+ }
+
+ const [num1, num2] = nums;
+ const num1Changed = float2Fixed(num1);
+ const num2Changed = float2Fixed(num2);
+ checkBoundary(num1Changed);
+ checkBoundary(num2Changed);
+ // 重要,这里必须用strip进行修正
+ return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
+}
+
+/**
+ * 四舍五入
+ * @export
+ */
+export function round(num, ratio) {
+ const base = Math.pow(10, ratio);
+ let result = divide(Math.round(Math.abs(times(num, base))), base);
+ if (num < 0 && result !== 0) {
+ result = times(result, -1);
+ }
+ // 位数不足则补0
+ return result;
+}
+
+/**
+ * 是否进行边界检查,默认开启
+ * @param flag 标记开关,true 为开启,false 为关闭,默认为 true
+ * @export
+ */
+export function enableBoundaryChecking(flag = true) {
+ _boundaryCheckingState = flag;
+}
+
+
+export default {
+ times,
+ plus,
+ minus,
+ divide,
+ round,
+ enableBoundaryChecking,
+};
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/index.js"
new file mode 100644
index 000000000..b35e0ab67
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/index.js"
@@ -0,0 +1,734 @@
+import { number, empty } from './test.js'
+import { round } from './digit.js'
+/**
+ * @description 如果value小于min,取min;如果value大于max,取max
+ * @param {number} min
+ * @param {number} max
+ * @param {number} value
+ */
+function range(min = 0, max = 0, value = 0) {
+ return Math.max(min, Math.min(max, Number(value)))
+}
+
+/**
+ * @description 用于获取用户传递值的px值 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分,如果是"xxxrpx"还需要用过uni.upx2px进行转换
+ * @param {number|string} value 用户传递值的px值
+ * @param {boolean} unit
+ * @returns {number|string}
+ */
+function getPx(value, unit = false) {
+ if (number(value)) {
+ return unit ? `${value}px` : Number(value)
+ }
+ // 如果带有rpx,先取出其数值部分,再转为px值
+ if (/(rpx|upx)$/.test(value)) {
+ return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value)))
+ }
+ return unit ? `${parseInt(value)}px` : parseInt(value)
+}
+
+/**
+ * @description 进行延时,以达到可以简写代码的目的 比如: await uni.$uv.sleep(20)将会阻塞20ms
+ * @param {number} value 堵塞时间 单位ms 毫秒
+ * @returns {Promise} 返回promise
+ */
+function sleep(value = 30) {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve()
+ }, value)
+ })
+}
+/**
+ * @description 运行期判断平台
+ * @returns {string} 返回所在平台(小写)
+ * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台
+ */
+function os() {
+ return uni.getSystemInfoSync().platform.toLowerCase()
+}
+/**
+ * @description 获取系统信息同步接口
+ * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
+ */
+function sys() {
+ return uni.getSystemInfoSync()
+}
+
+/**
+ * @description 取一个区间数
+ * @param {Number} min 最小值
+ * @param {Number} max 最大值
+ */
+function random(min, max) {
+ if (min >= 0 && max > 0 && max >= min) {
+ const gab = max - min + 1
+ return Math.floor(Math.random() * gab + min)
+ }
+ return 0
+}
+
+/**
+ * @param {Number} len uuid的长度
+ * @param {Boolean} firstU 将返回的首字母置为"u"
+ * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
+ */
+function guid(len = 32, firstU = true, radix = null) {
+ const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
+ const uuid = []
+ radix = radix || chars.length
+
+ if (len) {
+ // 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位
+ for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
+ } else {
+ let r
+ // rfc4122标准要求返回的uuid中,某些位为固定的字符
+ uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
+ uuid[14] = '4'
+
+ for (let i = 0; i < 36; i++) {
+ if (!uuid[i]) {
+ r = 0 | Math.random() * 16
+ uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]
+ }
+ }
+ }
+ // 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
+ if (firstU) {
+ uuid.shift()
+ return `u${uuid.join('')}`
+ }
+ return uuid.join('')
+}
+
+/**
+* @description 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法
+ this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx
+ 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name
+ 值(默认为undefined),就是查找最顶层的$parent
+* @param {string|undefined} name 父组件的参数名
+*/
+function $parent(name = undefined) {
+ let parent = this.$parent
+ // 通过while历遍,这里主要是为了H5需要多层解析的问题
+ while (parent) {
+ // 父组件
+ if (parent.$options && parent.$options.name !== name) {
+ // 如果组件的name不相等,继续上一级寻找
+ parent = parent.$parent
+ } else {
+ return parent
+ }
+ }
+ return false
+}
+
+/**
+ * @description 样式转换
+ * 对象转字符串,或者字符串转对象
+ * @param {object | string} customStyle 需要转换的目标
+ * @param {String} target 转换的目的,object-转为对象,string-转为字符串
+ * @returns {object|string}
+ */
+function addStyle(customStyle, target = 'object') {
+ // 字符串转字符串,对象转对象情形,直接返回
+ if (empty(customStyle) || typeof(customStyle) === 'object' && target === 'object' || target === 'string' &&
+ typeof(customStyle) === 'string') {
+ return customStyle
+ }
+ // 字符串转对象
+ if (target === 'object') {
+ // 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的
+ customStyle = trim(customStyle)
+ // 根据";"将字符串转为数组形式
+ const styleArray = customStyle.split(';')
+ const style = {}
+ // 历遍数组,拼接成对象
+ for (let i = 0; i < styleArray.length; i++) {
+ // 'font-size:20px;color:red;',如此最后字符串有";"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤
+ if (styleArray[i]) {
+ const item = styleArray[i].split(':')
+ style[trim(item[0])] = trim(item[1])
+ }
+ }
+ return style
+ }
+ // 这里为对象转字符串形式
+ let string = ''
+ for (const i in customStyle) {
+ // 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名
+ const key = i.replace(/([A-Z])/g, '-$1').toLowerCase()
+ string += `${key}:${customStyle[i]};`
+ }
+ // 去除两端空格
+ return trim(string)
+}
+
+/**
+ * @description 添加单位,如果有rpx,upx,%,px等单位结尾或者值为auto,直接返回,否则加上px单位结尾
+ * @param {string|number} value 需要添加单位的值
+ * @param {string} unit 添加的单位名 比如px
+ */
+function addUnit(value = 'auto', unit = uni?.$uv?.config?.unit ? uni?.$uv?.config?.unit : 'px') {
+ value = String(value)
+ // 用uvui内置验证规则中的number判断是否为数值
+ return number(value) ? `${value}${unit}` : value
+}
+
+/**
+ * @description 深度克隆
+ * @param {object} obj 需要深度克隆的对象
+ * @param cache 缓存
+ * @returns {*} 克隆后的对象或者原值(不是对象)
+ */
+function deepClone(obj, cache = new WeakMap()) {
+ if (obj === null || typeof obj !== 'object') return obj;
+ if (cache.has(obj)) return cache.get(obj);
+ let clone;
+ if (obj instanceof Date) {
+ clone = new Date(obj.getTime());
+ } else if (obj instanceof RegExp) {
+ clone = new RegExp(obj);
+ } else if (obj instanceof Map) {
+ clone = new Map(Array.from(obj, ([key, value]) => [key, deepClone(value, cache)]));
+ } else if (obj instanceof Set) {
+ clone = new Set(Array.from(obj, value => deepClone(value, cache)));
+ } else if (Array.isArray(obj)) {
+ clone = obj.map(value => deepClone(value, cache));
+ } else if (Object.prototype.toString.call(obj) === '[object Object]') {
+ clone = Object.create(Object.getPrototypeOf(obj));
+ cache.set(obj, clone);
+ for (const [key, value] of Object.entries(obj)) {
+ clone[key] = deepClone(value, cache);
+ }
+ } else {
+ clone = Object.assign({}, obj);
+ }
+ cache.set(obj, clone);
+ return clone;
+}
+
+/**
+ * @description JS对象深度合并
+ * @param {object} target 需要拷贝的对象
+ * @param {object} source 拷贝的来源对象
+ * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)
+ */
+function deepMerge(target = {}, source = {}) {
+ target = deepClone(target)
+ if (typeof target !== 'object' || target === null || typeof source !== 'object' || source === null) return target;
+ const merged = Array.isArray(target) ? target.slice() : Object.assign({}, target);
+ for (const prop in source) {
+ if (!source.hasOwnProperty(prop)) continue;
+ const sourceValue = source[prop];
+ const targetValue = merged[prop];
+ if (sourceValue instanceof Date) {
+ merged[prop] = new Date(sourceValue);
+ } else if (sourceValue instanceof RegExp) {
+ merged[prop] = new RegExp(sourceValue);
+ } else if (sourceValue instanceof Map) {
+ merged[prop] = new Map(sourceValue);
+ } else if (sourceValue instanceof Set) {
+ merged[prop] = new Set(sourceValue);
+ } else if (typeof sourceValue === 'object' && sourceValue !== null) {
+ merged[prop] = deepMerge(targetValue, sourceValue);
+ } else {
+ merged[prop] = sourceValue;
+ }
+ }
+ return merged;
+}
+
+/**
+ * @description error提示
+ * @param {*} err 错误内容
+ */
+function error(err) {
+ // 开发环境才提示,生产环境不会提示
+ if (process.env.NODE_ENV === 'development') {
+ console.error(`uvui提示:${err}`)
+ }
+}
+
+/**
+ * @description 打乱数组
+ * @param {array} array 需要打乱的数组
+ * @returns {array} 打乱后的数组
+ */
+function randomArray(array = []) {
+ // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0
+ return array.sort(() => Math.random() - 0.5)
+}
+
+// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序
+// 所以这里做一个兼容polyfill的兼容处理
+if (!String.prototype.padStart) {
+ // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
+ String.prototype.padStart = function(maxLength, fillString = ' ') {
+ if (Object.prototype.toString.call(fillString) !== '[object String]') {
+ throw new TypeError(
+ 'fillString must be String'
+ )
+ }
+ const str = this
+ // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
+ if (str.length >= maxLength) return String(str)
+
+ const fillLength = maxLength - str.length
+ let times = Math.ceil(fillLength / fillString.length)
+ while (times >>= 1) {
+ fillString += fillString
+ if (times === 1) {
+ fillString += fillString
+ }
+ }
+ return fillString.slice(0, fillLength) + str
+ }
+}
+
+/**
+ * @description 格式化时间
+ * @param {String|Number} dateTime 需要格式化的时间戳
+ * @param {String} fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd
+ * @returns {string} 返回格式化后的字符串
+ */
+function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') {
+ let date
+ // 若传入时间为假值,则取当前时间
+ if (!dateTime) {
+ date = new Date()
+ }
+ // 若为unix秒时间戳,则转为毫秒时间戳(逻辑有点奇怪,但不敢改,以保证历史兼容)
+ else if (/^\d{10}$/.test(dateTime?.toString().trim())) {
+ date = new Date(dateTime * 1000)
+ }
+ // 若用户传入字符串格式时间戳,new Date无法解析,需做兼容
+ else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) {
+ date = new Date(Number(dateTime))
+ }
+ // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间
+ // 处理 '2022-07-10 01:02:03',跳过 '2022-07-10T01:02:03'
+ else if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) {
+ date = new Date(dateTime.replace(/-/g, '/'))
+ }
+ // 其他都认为符合 RFC 2822 规范
+ else {
+ date = new Date(dateTime)
+ }
+
+ const timeSource = {
+ 'y': date.getFullYear().toString(), // 年
+ 'm': (date.getMonth() + 1).toString().padStart(2, '0'), // 月
+ 'd': date.getDate().toString().padStart(2, '0'), // 日
+ 'h': date.getHours().toString().padStart(2, '0'), // 时
+ 'M': date.getMinutes().toString().padStart(2, '0'), // 分
+ 's': date.getSeconds().toString().padStart(2, '0') // 秒
+ // 有其他格式化字符需求可以继续添加,必须转化成字符串
+ }
+
+ for (const key in timeSource) {
+ const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
+ if (ret) {
+ // 年可能只需展示两位
+ const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
+ formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
+ }
+ }
+
+ return formatStr
+}
+
+/**
+ * @description 时间戳转为多久之前
+ * @param {String|Number} timestamp 时间戳
+ * @param {String|Boolean} format
+ * 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;
+ * 如果为布尔值false,无论什么时间,都返回多久以前的格式
+ * @returns {string} 转化后的内容
+ */
+function timeFrom(timestamp = null, format = 'yyyy-mm-dd') {
+ if (timestamp == null) timestamp = Number(new Date())
+ timestamp = parseInt(timestamp)
+ // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)
+ if (timestamp.toString().length == 10) timestamp *= 1000
+ let timer = (new Date()).getTime() - timestamp
+ timer = parseInt(timer / 1000)
+ // 如果小于5分钟,则返回"刚刚",其他以此类推
+ let tips = ''
+ switch (true) {
+ case timer < 300:
+ tips = '刚刚'
+ break
+ case timer >= 300 && timer < 3600:
+ tips = `${parseInt(timer / 60)}分钟前`
+ break
+ case timer >= 3600 && timer < 86400:
+ tips = `${parseInt(timer / 3600)}小时前`
+ break
+ case timer >= 86400 && timer < 2592000:
+ tips = `${parseInt(timer / 86400)}天前`
+ break
+ default:
+ // 如果format为false,则无论什么时间戳,都显示xx之前
+ if (format === false) {
+ if (timer >= 2592000 && timer < 365 * 86400) {
+ tips = `${parseInt(timer / (86400 * 30))}个月前`
+ } else {
+ tips = `${parseInt(timer / (86400 * 365))}年前`
+ }
+ } else {
+ tips = timeFormat(timestamp, format)
+ }
+ }
+ return tips
+}
+
+/**
+ * @description 去除空格
+ * @param String str 需要去除空格的字符串
+ * @param String pos both(左右)|left|right|all 默认both
+ */
+function trim(str, pos = 'both') {
+ str = String(str)
+ if (pos == 'both') {
+ return str.replace(/^\s+|\s+$/g, '')
+ }
+ if (pos == 'left') {
+ return str.replace(/^\s*/, '')
+ }
+ if (pos == 'right') {
+ return str.replace(/(\s*$)/g, '')
+ }
+ if (pos == 'all') {
+ return str.replace(/\s+/g, '')
+ }
+ return str
+}
+
+/**
+ * @description 对象转url参数
+ * @param {object} data,对象
+ * @param {Boolean} isPrefix,是否自动加上"?"
+ * @param {string} arrayFormat 规则 indices|brackets|repeat|comma
+ */
+function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
+ const prefix = isPrefix ? '?' : ''
+ const _result = []
+ if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets'
+ for (const key in data) {
+ const value = data[key]
+ // 去掉为空的参数
+ if (['', undefined, null].indexOf(value) >= 0) {
+ continue
+ }
+ // 如果值为数组,另行处理
+ if (value.constructor === Array) {
+ // e.g. {ids: [1, 2, 3]}
+ switch (arrayFormat) {
+ case 'indices':
+ // 结果: ids[0]=1&ids[1]=2&ids[2]=3
+ for (let i = 0; i < value.length; i++) {
+ _result.push(`${key}[${i}]=${value[i]}`)
+ }
+ break
+ case 'brackets':
+ // 结果: ids[]=1&ids[]=2&ids[]=3
+ value.forEach((_value) => {
+ _result.push(`${key}[]=${_value}`)
+ })
+ break
+ case 'repeat':
+ // 结果: ids=1&ids=2&ids=3
+ value.forEach((_value) => {
+ _result.push(`${key}=${_value}`)
+ })
+ break
+ case 'comma':
+ // 结果: ids=1,2,3
+ let commaStr = ''
+ value.forEach((_value) => {
+ commaStr += (commaStr ? ',' : '') + _value
+ })
+ _result.push(`${key}=${commaStr}`)
+ break
+ default:
+ value.forEach((_value) => {
+ _result.push(`${key}[]=${_value}`)
+ })
+ }
+ } else {
+ _result.push(`${key}=${value}`)
+ }
+ }
+ return _result.length ? prefix + _result.join('&') : ''
+}
+
+/**
+ * 显示消息提示框
+ * @param {String} title 提示的内容,长度与 icon 取值有关。
+ * @param {Number} duration 提示的延迟时间,单位毫秒,默认:2000
+ */
+function toast(title, duration = 2000) {
+ uni.showToast({
+ title: String(title),
+ icon: 'none',
+ duration
+ })
+}
+
+/**
+ * @description 根据主题type值,获取对应的图标
+ * @param {String} type 主题名称,primary|info|error|warning|success
+ * @param {boolean} fill 是否使用fill填充实体的图标
+ */
+function type2icon(type = 'success', fill = false) {
+ // 如果非预置值,默认为success
+ if (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success'
+ let iconName = ''
+ // 目前(2019-12-12),info和primary使用同一个图标
+ switch (type) {
+ case 'primary':
+ iconName = 'info-circle'
+ break
+ case 'info':
+ iconName = 'info-circle'
+ break
+ case 'error':
+ iconName = 'close-circle'
+ break
+ case 'warning':
+ iconName = 'error-circle'
+ break
+ case 'success':
+ iconName = 'checkmark-circle'
+ break
+ default:
+ iconName = 'checkmark-circle'
+ }
+ // 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的
+ if (fill) iconName += '-fill'
+ return iconName
+}
+
+/**
+ * @description 数字格式化
+ * @param {number|string} number 要格式化的数字
+ * @param {number} decimals 保留几位小数
+ * @param {string} decimalPoint 小数点符号
+ * @param {string} thousandsSeparator 千分位符号
+ * @returns {string} 格式化后的数字
+ */
+function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') {
+ number = (`${number}`).replace(/[^0-9+-Ee.]/g, '')
+ const n = !isFinite(+number) ? 0 : +number
+ const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
+ const sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator
+ const dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint
+ let s = ''
+
+ s = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.')
+ const re = /(-?\d+)(\d{3})/
+ while (re.test(s[0])) {
+ s[0] = s[0].replace(re, `$1${sep}$2`)
+ }
+
+ if ((s[1] || '').length < prec) {
+ s[1] = s[1] || ''
+ s[1] += new Array(prec - s[1].length + 1).join('0')
+ }
+ return s.join(dec)
+}
+
+/**
+ * @description 获取duration值
+ * 如果带有ms或者s直接返回,如果大于一定值,认为是ms单位,小于一定值,认为是s单位
+ * 比如以30位阈值,那么300大于30,可以理解为用户想要的是300ms,而不是想花300s去执行一个动画
+ * @param {String|number} value 比如: "1s"|"100ms"|1|100
+ * @param {boolean} unit 提示: 如果是false 默认返回number
+ * @return {string|number}
+ */
+function getDuration(value, unit = true) {
+ const valueNum = parseInt(value)
+ if (unit) {
+ if (/s$/.test(value)) return value
+ return value > 30 ? `${value}ms` : `${value}s`
+ }
+ if (/ms$/.test(value)) return valueNum
+ if (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000
+ return valueNum
+}
+
+/**
+ * @description 日期的月或日补零操作
+ * @param {String} value 需要补零的值
+ */
+function padZero(value) {
+ return `00${value}`.slice(-2)
+}
+
+/**
+ * @description 在uv-form的子组件内容发生变化,或者失去焦点时,尝试通知uv-form执行校验方法
+ * @param {*} instance
+ * @param {*} event
+ */
+function formValidate(instance, event) {
+ const formItem = $parent.call(instance, 'uv-form-item')
+ const form = $parent.call(instance, 'uv-form')
+ // 如果发生变化的input或者textarea等,其父组件中有uv-form-item或者uv-form等,就执行form的validate方法
+ // 同时将form-item的pros传递给form,让其进行精确对象验证
+ if (formItem && form) {
+ form.validateField(formItem.prop, () => {}, event)
+ }
+}
+
+/**
+ * @description 获取某个对象下的属性,用于通过类似'a.b.c'的形式去获取一个对象的的属性的形式
+ * @param {object} obj 对象
+ * @param {string} key 需要获取的属性字段
+ * @returns {*}
+ */
+function getProperty(obj, key) {
+ if (!obj) {
+ return
+ }
+ if (typeof key !== 'string' || key === '') {
+ return ''
+ }
+ if (key.indexOf('.') !== -1) {
+ const keys = key.split('.')
+ let firstObj = obj[keys[0]] || {}
+
+ for (let i = 1; i < keys.length; i++) {
+ if (firstObj) {
+ firstObj = firstObj[keys[i]]
+ }
+ }
+ return firstObj
+ }
+ return obj[key]
+}
+
+/**
+ * @description 设置对象的属性值,如果'a.b.c'的形式进行设置
+ * @param {object} obj 对象
+ * @param {string} key 需要设置的属性
+ * @param {string} value 设置的值
+ */
+function setProperty(obj, key, value) {
+ if (!obj) {
+ return
+ }
+ // 递归赋值
+ const inFn = function(_obj, keys, v) {
+ // 最后一个属性key
+ if (keys.length === 1) {
+ _obj[keys[0]] = v
+ return
+ }
+ // 0~length-1个key
+ while (keys.length > 1) {
+ const k = keys[0]
+ if (!_obj[k] || (typeof _obj[k] !== 'object')) {
+ _obj[k] = {}
+ }
+ const key = keys.shift()
+ // 自调用判断是否存在属性,不存在则自动创建对象
+ inFn(_obj[k], keys, v)
+ }
+ }
+
+ if (typeof key !== 'string' || key === '') {
+
+ } else if (key.indexOf('.') !== -1) { // 支持多层级赋值操作
+ const keys = key.split('.')
+ inFn(obj, keys, value)
+ } else {
+ obj[key] = value
+ }
+}
+
+/**
+ * @description 获取当前页面路径
+ */
+function page() {
+ const pages = getCurrentPages();
+ const route = pages[pages.length - 1]?.route;
+ // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
+ return `/${route ? route : ''}`
+}
+
+/**
+ * @description 获取当前路由栈实例数组
+ */
+function pages() {
+ const pages = getCurrentPages()
+ return pages
+}
+
+/**
+ * 获取页面历史栈指定层实例
+ * @param back {number} [0] - 0或者负数,表示获取历史栈的哪一层,0表示获取当前页面实例,-1 表示获取上一个页面实例。默认0。
+ */
+function getHistoryPage(back = 0) {
+ const pages = getCurrentPages()
+ const len = pages.length
+ return pages[len - 1 + back]
+}
+
+
+
+/**
+ * @description 修改uvui内置属性值
+ * @param {object} props 修改内置props属性
+ * @param {object} config 修改内置config属性
+ * @param {object} color 修改内置color属性
+ * @param {object} zIndex 修改内置zIndex属性
+ */
+function setConfig({
+ props = {},
+ config = {},
+ color = {},
+ zIndex = {}
+}) {
+ const {
+ deepMerge,
+ } = uni.$uv
+ uni.$uv.config = deepMerge(uni.$uv.config, config)
+ uni.$uv.props = deepMerge(uni.$uv.props, props)
+ uni.$uv.color = deepMerge(uni.$uv.color, color)
+ uni.$uv.zIndex = deepMerge(uni.$uv.zIndex, zIndex)
+}
+
+export {
+ range,
+ getPx,
+ sleep,
+ os,
+ sys,
+ random,
+ guid,
+ $parent,
+ addStyle,
+ addUnit,
+ deepClone,
+ deepMerge,
+ error,
+ randomArray,
+ timeFormat,
+ timeFrom,
+ trim,
+ queryParams,
+ toast,
+ type2icon,
+ priceFormat,
+ getDuration,
+ padZero,
+ formValidate,
+ getProperty,
+ setProperty,
+ page,
+ pages,
+ getHistoryPage,
+ setConfig
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/platform.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/platform.js"
new file mode 100644
index 000000000..d6b926ea1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/platform.js"
@@ -0,0 +1,75 @@
+/**
+ * 注意:
+ * 此部分内容,在vue-cli模式下,需要在vue.config.js加入如下内容才有效:
+ * module.exports = {
+ * transpileDependencies: ['uview-v2']
+ * }
+ */
+
+let platform = 'none'
+
+// #ifdef VUE3
+platform = 'vue3'
+// #endif
+
+// #ifdef VUE2
+platform = 'vue2'
+// #endif
+
+// #ifdef APP-PLUS
+platform = 'plus'
+// #endif
+
+// #ifdef APP-NVUE
+platform = 'nvue'
+// #endif
+
+// #ifdef H5
+platform = 'h5'
+// #endif
+
+// #ifdef MP-WEIXIN
+platform = 'weixin'
+// #endif
+
+// #ifdef MP-ALIPAY
+platform = 'alipay'
+// #endif
+
+// #ifdef MP-BAIDU
+platform = 'baidu'
+// #endif
+
+// #ifdef MP-TOUTIAO
+platform = 'toutiao'
+// #endif
+
+// #ifdef MP-QQ
+platform = 'qq'
+// #endif
+
+// #ifdef MP-KUAISHOU
+platform = 'kuaishou'
+// #endif
+
+// #ifdef MP-360
+platform = '360'
+// #endif
+
+// #ifdef MP
+platform = 'mp'
+// #endif
+
+// #ifdef QUICKAPP-WEBVIEW
+platform = 'quickapp-webview'
+// #endif
+
+// #ifdef QUICKAPP-WEBVIEW-HUAWEI
+platform = 'quickapp-webview-huawei'
+// #endif
+
+// #ifdef QUICKAPP-WEBVIEW-UNION
+platform = 'quckapp-webview-union'
+// #endif
+
+export default platform
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/test.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/test.js"
new file mode 100644
index 000000000..7c8b74738
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/test.js"
@@ -0,0 +1,287 @@
+/**
+ * 验证电子邮箱格式
+ */
+function email(value) {
+ return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)
+}
+
+/**
+ * 验证手机格式
+ */
+function mobile(value) {
+ return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value)
+}
+
+/**
+ * 验证URL格式
+ */
+function url(value) {
+ return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/
+ .test(value)
+}
+
+/**
+ * 验证日期格式
+ */
+function date(value) {
+ if (!value) return false
+ // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳
+ if (number(value)) value = +value
+ return !/Invalid|NaN/.test(new Date(value).toString())
+}
+
+/**
+ * 验证ISO类型的日期格式
+ */
+function dateISO(value) {
+ return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)
+}
+
+/**
+ * 验证十进制数字
+ */
+function number(value) {
+ return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
+}
+
+/**
+ * 验证字符串
+ */
+function string(value) {
+ return typeof value === 'string'
+}
+
+/**
+ * 验证整数
+ */
+function digits(value) {
+ return /^\d+$/.test(value)
+}
+
+/**
+ * 验证身份证号码
+ */
+function idCard(value) {
+ return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
+ value
+ )
+}
+
+/**
+ * 是否车牌号
+ */
+function carNo(value) {
+ // 新能源车牌
+ const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/
+ // 旧车牌
+ const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/
+ if (value.length === 7) {
+ return creg.test(value)
+ } if (value.length === 8) {
+ return xreg.test(value)
+ }
+ return false
+}
+
+/**
+ * 金额,只允许2位小数
+ */
+function amount(value) {
+ // 金额,只允许保留两位小数
+ return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value)
+}
+
+/**
+ * 中文
+ */
+function chinese(value) {
+ const reg = /^[\u4e00-\u9fa5]+$/gi
+ return reg.test(value)
+}
+
+/**
+ * 只能输入字母
+ */
+function letter(value) {
+ return /^[a-zA-Z]*$/.test(value)
+}
+
+/**
+ * 只能是字母或者数字
+ */
+function enOrNum(value) {
+ // 英文或者数字
+ const reg = /^[0-9a-zA-Z]*$/g
+ return reg.test(value)
+}
+
+/**
+ * 验证是否包含某个值
+ */
+function contains(value, param) {
+ return value.indexOf(param) >= 0
+}
+
+/**
+ * 验证一个值范围[min, max]
+ */
+function range(value, param) {
+ return value >= param[0] && value <= param[1]
+}
+
+/**
+ * 验证一个长度范围[min, max]
+ */
+function rangeLength(value, param) {
+ return value.length >= param[0] && value.length <= param[1]
+}
+
+/**
+ * 是否固定电话
+ */
+function landline(value) {
+ const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/
+ return reg.test(value)
+}
+
+/**
+ * 判断是否为空
+ */
+function empty(value) {
+ switch (typeof value) {
+ case 'undefined':
+ return true
+ case 'string':
+ if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true
+ break
+ case 'boolean':
+ if (!value) return true
+ break
+ case 'number':
+ if (value === 0 || isNaN(value)) return true
+ break
+ case 'object':
+ if (value === null || value.length === 0) return true
+ for (const i in value) {
+ return false
+ }
+ return true
+ }
+ return false
+}
+
+/**
+ * 是否json字符串
+ */
+function jsonString(value) {
+ if (typeof value === 'string') {
+ try {
+ const obj = JSON.parse(value)
+ if (typeof obj === 'object' && obj) {
+ return true
+ }
+ return false
+ } catch (e) {
+ return false
+ }
+ }
+ return false
+}
+
+/**
+ * 是否数组
+ */
+function array(value) {
+ if (typeof Array.isArray === 'function') {
+ return Array.isArray(value)
+ }
+ return Object.prototype.toString.call(value) === '[object Array]'
+}
+
+/**
+ * 是否对象
+ */
+function object(value) {
+ return Object.prototype.toString.call(value) === '[object Object]'
+}
+
+/**
+ * 是否短信验证码
+ */
+function code(value, len = 6) {
+ return new RegExp(`^\\d{${len}}$`).test(value)
+}
+
+/**
+ * 是否函数方法
+ * @param {Object} value
+ */
+function func(value) {
+ return typeof value === 'function'
+}
+
+/**
+ * 是否promise对象
+ * @param {Object} value
+ */
+function promise(value) {
+ return object(value) && func(value.then) && func(value.catch)
+}
+
+/** 是否图片格式
+ * @param {Object} value
+ */
+function image(value) {
+ const newValue = value.split('?')[0]
+ const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i
+ return IMAGE_REGEXP.test(newValue)
+}
+
+/**
+ * 是否视频格式
+ * @param {Object} value
+ */
+function video(value) {
+ const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i
+ return VIDEO_REGEXP.test(value)
+}
+
+/**
+ * 是否为正则对象
+ * @param {Object}
+ * @return {Boolean}
+ */
+function regExp(o) {
+ return o && Object.prototype.toString.call(o) === '[object RegExp]'
+}
+
+export {
+ email,
+ mobile,
+ url,
+ date,
+ dateISO,
+ number,
+ digits,
+ idCard,
+ carNo,
+ amount,
+ chinese,
+ letter,
+ enOrNum,
+ contains,
+ range,
+ rangeLength,
+ empty,
+ jsonString,
+ landline,
+ object,
+ array,
+ code,
+ func,
+ promise,
+ video,
+ image,
+ regExp,
+ string
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/throttle.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/throttle.js"
new file mode 100644
index 000000000..2f3361127
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/function/throttle.js"
@@ -0,0 +1,30 @@
+let timer; let
+ flag
+/**
+ * 节流原理:在一定时间内,只能触发一次
+ *
+ * @param {Function} func 要执行的回调函数
+ * @param {Number} wait 延时的时间
+ * @param {Boolean} immediate 是否立即执行
+ * @return null
+ */
+function throttle(func, wait = 500, immediate = true) {
+ if (immediate) {
+ if (!flag) {
+ flag = true
+ // 如果是立即执行,则在wait毫秒内开始时执行
+ typeof func === 'function' && func()
+ timer = setTimeout(() => {
+ flag = false
+ }, wait)
+ }
+ } else if (!flag) {
+ flag = true
+ // 如果是非立即执行,则在wait毫秒内的结束处执行
+ timer = setTimeout(() => {
+ flag = false
+ typeof func === 'function' && func()
+ }, wait)
+ }
+}
+export default throttle
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js"
new file mode 100644
index 000000000..31a5cfcf0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js"
@@ -0,0 +1,132 @@
+import buildURL from '../helpers/buildURL'
+import buildFullPath from '../core/buildFullPath'
+import settle from '../core/settle'
+import {isUndefined} from "../utils"
+
+/**
+ * 返回可选值存在的配置
+ * @param {Array} keys - 可选值数组
+ * @param {Object} config2 - 配置
+ * @return {{}} - 存在的配置项
+ */
+const mergeKeys = (keys, config2) => {
+ let config = {}
+ keys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ }
+ })
+ return config
+}
+export default (config) => {
+ return new Promise((resolve, reject) => {
+ let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params, config.paramsSerializer)
+ const _config = {
+ url: fullPath,
+ header: config.header,
+ complete: (response) => {
+ config.fullPath = fullPath
+ response.config = config
+ response.rawData = response.data
+ try {
+ let jsonParseHandle = false
+ const forcedJSONParsingType = typeof config.forcedJSONParsing
+ if (forcedJSONParsingType === 'boolean') {
+ jsonParseHandle = config.forcedJSONParsing
+ } else if (forcedJSONParsingType === 'object') {
+ const includesMethod = config.forcedJSONParsing.include || []
+ jsonParseHandle = includesMethod.includes(config.method)
+ }
+
+ // 对可能字符串不是json 的情况容错
+ if (jsonParseHandle && typeof response.data === 'string') {
+ response.data = JSON.parse(response.data)
+ }
+ // eslint-disable-next-line no-empty
+ } catch (e) {
+ }
+ settle(resolve, reject, response)
+ }
+ }
+ let requestTask
+ if (config.method === 'UPLOAD') {
+ delete _config.header['content-type']
+ delete _config.header['Content-Type']
+ let otherConfig = {
+ // #ifdef MP-ALIPAY
+ fileType: config.fileType,
+ // #endif
+ filePath: config.filePath,
+ name: config.name
+ }
+ const optionalKeys = [
+ // #ifdef APP-PLUS || H5
+ 'files',
+ // #endif
+ // #ifdef H5
+ 'file',
+ // #endif
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ 'formData'
+ ]
+ requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)})
+ } else if (config.method === 'DOWNLOAD') {
+ const optionalKeys = [
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ // #ifdef MP
+ 'filePath',
+ // #endif
+ ]
+ requestTask = uni.downloadFile({..._config, ...mergeKeys(optionalKeys, config)})
+ } else {
+ const optionalKeys = [
+ 'data',
+ 'method',
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ 'timeout',
+ // #endif
+ 'dataType',
+ // #ifndef MP-ALIPAY
+ 'responseType',
+ // #endif
+ // #ifdef APP-PLUS
+ 'sslVerify',
+ // #endif
+ // #ifdef H5
+ 'withCredentials',
+ // #endif
+ // #ifdef APP-PLUS
+ 'firstIpv4',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttp2',
+ 'enableQuic',
+ // #endif
+ // #ifdef MP-TOUTIAO || MP-WEIXIN
+ 'enableCache',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttpDNS',
+ 'httpDNSServiceId',
+ 'enableChunked',
+ 'forceCellularNetwork',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'enableCookie',
+ // #endif
+ // #ifdef MP-BAIDU
+ 'cloudCache',
+ 'defer'
+ // #endif
+ ]
+ requestTask = uni.request({..._config, ...mergeKeys(optionalKeys, config)})
+ }
+ if (config.getTask) {
+ config.getTask(requestTask, config)
+ }
+ })
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js"
new file mode 100644
index 000000000..3ea0d5e82
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js"
@@ -0,0 +1,51 @@
+'use strict'
+
+
+function InterceptorManager() {
+ this.handlers = []
+}
+
+/**
+ * Add a new interceptor to the stack
+ *
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
+ *
+ * @return {Number} An ID used to remove interceptor later
+ */
+InterceptorManager.prototype.use = function use(fulfilled, rejected) {
+ this.handlers.push({
+ fulfilled: fulfilled,
+ rejected: rejected
+ })
+ return this.handlers.length - 1
+}
+
+/**
+ * Remove an interceptor from the stack
+ *
+ * @param {Number} id The ID that was returned by `use`
+ */
+InterceptorManager.prototype.eject = function eject(id) {
+ if (this.handlers[id]) {
+ this.handlers[id] = null
+ }
+}
+
+/**
+ * Iterate over all the registered interceptors
+ *
+ * This method is particularly useful for skipping over any
+ * interceptors that may have become `null` calling `eject`.
+ *
+ * @param {Function} fn The function to call for each interceptor
+ */
+InterceptorManager.prototype.forEach = function forEach(fn) {
+ this.handlers.forEach(h => {
+ if (h !== null) {
+ fn(h)
+ }
+ })
+}
+
+export default InterceptorManager
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js"
new file mode 100644
index 000000000..96c89a84d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js"
@@ -0,0 +1,201 @@
+/**
+ * @Class Request
+ * @description luch-request http请求插件
+ * @Author lu-ch
+ * @Email webwork.s@qq.com
+ * 文档: https://www.quanzhan.co/luch-request/
+ * github: https://github.com/lei-mu/luch-request
+ * DCloud: http://ext.dcloud.net.cn/plugin?id=392
+ */
+
+
+import dispatchRequest from './dispatchRequest'
+import InterceptorManager from './InterceptorManager'
+import mergeConfig from './mergeConfig'
+import defaults from './defaults'
+import { isPlainObject } from '../utils'
+import clone from '../utils/clone'
+
+export default class Request {
+ /**
+ * @param {Object} arg - 全局配置
+ * @param {String} arg.baseURL - 全局根路径
+ * @param {Object} arg.header - 全局header
+ * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式
+ * @param {String} arg.dataType = [json] - 全局默认的dataType
+ * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持
+ * @param {Object} arg.custom - 全局默认的自定义参数
+ * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序
+ * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+)
+ * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+)
+ * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)
+ * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300
+ */
+ constructor(arg = {}) {
+ if (!isPlainObject(arg)) {
+ arg = {}
+ console.warn('设置全局参数必须接收一个Object')
+ }
+ this.config = clone({...defaults, ...arg})
+ this.interceptors = {
+ request: new InterceptorManager(),
+ response: new InterceptorManager()
+ }
+ }
+
+ /**
+ * @Function
+ * @param {Request~setConfigCallback} f - 设置全局默认配置
+ */
+ setConfig(f) {
+ this.config = f(this.config)
+ }
+
+ middleware(config) {
+ config = mergeConfig(this.config, config)
+ let chain = [dispatchRequest, undefined]
+ let promise = Promise.resolve(config)
+
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
+ chain.unshift(interceptor.fulfilled, interceptor.rejected)
+ })
+
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
+ chain.push(interceptor.fulfilled, interceptor.rejected)
+ })
+
+ while (chain.length) {
+ promise = promise.then(chain.shift(), chain.shift())
+ }
+
+ return promise
+ }
+
+ /**
+ * @Function
+ * @param {Object} config - 请求配置项
+ * @prop {String} options.url - 请求路径
+ * @prop {Object} options.data - 请求参数
+ * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型
+ * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse
+ * @prop {Object} [options.header = config.header] - 请求header
+ * @prop {Object} [options.method = config.method] - 请求方法
+ * @returns {Promise}
+ */
+ request(config = {}) {
+ return this.middleware(config)
+ }
+
+ get(url, options = {}) {
+ return this.middleware({
+ url,
+ method: 'GET',
+ ...options
+ })
+ }
+
+ post(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'POST',
+ ...options
+ })
+ }
+
+ // #ifndef MP-ALIPAY || MP-KUAISHOU || MP-JD
+ put(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'PUT',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
+ delete(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'DELETE',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN
+ connect(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'CONNECT',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN || MP-BAIDU
+ head(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'HEAD',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
+ options(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'OPTIONS',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN
+ trace(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'TRACE',
+ ...options
+ })
+ }
+
+ // #endif
+
+ upload(url, config = {}) {
+ config.url = url
+ config.method = 'UPLOAD'
+ return this.middleware(config)
+ }
+
+ download(url, config = {}) {
+ config.url = url
+ config.method = 'DOWNLOAD'
+ return this.middleware(config)
+ }
+
+ get version () {
+ return '3.1.0'
+ }
+}
+
+
+/**
+ * setConfig回调
+ * @return {Object} - 返回操作后的config
+ * @callback Request~setConfigCallback
+ * @param {Object} config - 全局默认config
+ */
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js"
new file mode 100644
index 000000000..f2852f467
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js"
@@ -0,0 +1,20 @@
+'use strict'
+
+import isAbsoluteURL from '../helpers/isAbsoluteURL'
+import combineURLs from '../helpers/combineURLs'
+
+/**
+ * Creates a new URL by combining the baseURL with the requestedURL,
+ * only when the requestedURL is not already an absolute URL.
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} requestedURL Absolute or relative URL to combine
+ * @returns {string} The combined full path
+ */
+export default function buildFullPath(baseURL, requestedURL) {
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
+ return combineURLs(baseURL, requestedURL)
+ }
+ return requestedURL
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js"
new file mode 100644
index 000000000..db74609f0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js"
@@ -0,0 +1,33 @@
+/**
+ * 默认的全局配置
+ */
+
+
+export default {
+ baseURL: '',
+ header: {},
+ method: 'GET',
+ dataType: 'json',
+ paramsSerializer: null,
+ // #ifndef MP-ALIPAY
+ responseType: 'text',
+ // #endif
+ custom: {},
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ timeout: 60000,
+ // #endif
+ // #ifdef APP-PLUS
+ sslVerify: true,
+ // #endif
+ // #ifdef H5
+ withCredentials: false,
+ // #endif
+ // #ifdef APP-PLUS
+ firstIpv4: false,
+ // #endif
+ validateStatus: function validateStatus(status) {
+ return status >= 200 && status < 300
+ },
+ // 是否尝试将响应数据json化
+ forcedJSONParsing: true
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js"
new file mode 100644
index 000000000..c5f2c85c4
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js"
@@ -0,0 +1,6 @@
+import adapter from '../adapters/index'
+
+
+export default (config) => {
+ return adapter(config)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js"
new file mode 100644
index 000000000..99c8ecd92
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js"
@@ -0,0 +1,126 @@
+import {deepMerge, isUndefined} from '../utils'
+
+/**
+ * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局
+ * @param {Array} keys - 配置项
+ * @param {Object} globalsConfig - 当前的全局配置
+ * @param {Object} config2 - 局部配置
+ * @return {{}}
+ */
+const mergeKeys = (keys, globalsConfig, config2) => {
+ let config = {}
+ keys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ } else if (!isUndefined(globalsConfig[prop])) {
+ config[prop] = globalsConfig[prop]
+ }
+ })
+ return config
+}
+/**
+ *
+ * @param globalsConfig - 当前实例的全局配置
+ * @param config2 - 当前的局部配置
+ * @return - 合并后的配置
+ */
+export default (globalsConfig, config2 = {}) => {
+ const method = config2.method || globalsConfig.method || 'GET'
+ let config = {
+ baseURL: config2.baseURL || globalsConfig.baseURL || '',
+ method: method,
+ url: config2.url || '',
+ params: config2.params || {},
+ custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})},
+ header: deepMerge(globalsConfig.header || {}, config2.header || {})
+ }
+ const defaultToConfig2Keys = ['getTask', 'validateStatus', 'paramsSerializer', 'forcedJSONParsing']
+ config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)}
+
+ // eslint-disable-next-line no-empty
+ if (method === 'DOWNLOAD') {
+ const downloadKeys = [
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ // #ifdef MP
+ 'filePath',
+ // #endif
+ ]
+ config = {...config, ...mergeKeys(downloadKeys, globalsConfig, config2)}
+ } else if (method === 'UPLOAD') {
+ delete config.header['content-type']
+ delete config.header['Content-Type']
+ const uploadKeys = [
+ // #ifdef APP-PLUS || H5
+ 'files',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'fileType',
+ // #endif
+ // #ifdef H5
+ 'file',
+ // #endif
+ 'filePath',
+ 'name',
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ 'timeout',
+ // #endif
+ 'formData',
+ ]
+ uploadKeys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ }
+ })
+ // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU
+ if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) {
+ config['timeout'] = globalsConfig['timeout']
+ }
+ // #endif
+ } else {
+ const defaultsKeys = [
+ 'data',
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ 'timeout',
+ // #endif
+ 'dataType',
+ // #ifndef MP-ALIPAY
+ 'responseType',
+ // #endif
+ // #ifdef APP-PLUS
+ 'sslVerify',
+ // #endif
+ // #ifdef H5
+ 'withCredentials',
+ // #endif
+ // #ifdef APP-PLUS
+ 'firstIpv4',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttp2',
+ 'enableQuic',
+ // #endif
+ // #ifdef MP-TOUTIAO || MP-WEIXIN
+ 'enableCache',
+ // #endif
+ // #ifdef MP-WEIXIN
+ 'enableHttpDNS',
+ 'httpDNSServiceId',
+ 'enableChunked',
+ 'forceCellularNetwork',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'enableCookie',
+ // #endif
+ // #ifdef MP-BAIDU
+ 'cloudCache',
+ 'defer'
+ // #endif
+
+ ]
+ config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)}
+ }
+
+ return config
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js"
new file mode 100644
index 000000000..b2f165921
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js"
@@ -0,0 +1,16 @@
+/**
+ * Resolve or reject a Promise based on response status.
+ *
+ * @param {Function} resolve A function that resolves the promise.
+ * @param {Function} reject A function that rejects the promise.
+ * @param {object} response The response.
+ */
+export default function settle(resolve, reject, response) {
+ const validateStatus = response.config.validateStatus
+ const status = response.statusCode
+ if (status && (!validateStatus || validateStatus(status))) {
+ resolve(response)
+ } else {
+ reject(response)
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js"
new file mode 100644
index 000000000..e90b908e2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js"
@@ -0,0 +1,64 @@
+'use strict'
+
+import * as utils from './../utils'
+
+function encode(val) {
+ return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']')
+}
+
+/**
+ * Build a URL by appending params to the end
+ *
+ * @param {string} url The base of the url (e.g., http://www.google.com)
+ * @param {object} [params] The params to be appended
+ * @returns {string} The formatted url
+ */
+export default function buildURL(url, params, paramsSerializer) {
+ /*eslint no-param-reassign:0*/
+ if (!params) {
+ return url
+ }
+
+ var serializedParams
+ if (paramsSerializer) {
+ serializedParams = paramsSerializer(params)
+ } else if (utils.isURLSearchParams(params)) {
+ serializedParams = params.toString()
+ } else {
+ var parts = []
+
+ utils.forEach(params, function serialize(val, key) {
+ if (val === null || typeof val === 'undefined') {
+ return
+ }
+
+ if (utils.isArray(val)) {
+ key = key + '[]'
+ } else {
+ val = [val]
+ }
+
+ utils.forEach(val, function parseValue(v) {
+ if (utils.isDate(v)) {
+ v = v.toISOString()
+ } else if (utils.isObject(v)) {
+ v = JSON.stringify(v)
+ }
+ parts.push(encode(key) + '=' + encode(v))
+ })
+ })
+
+ serializedParams = parts.join('&')
+ }
+
+ if (serializedParams) {
+ var hashmarkIndex = url.indexOf('#')
+ if (hashmarkIndex !== -1) {
+ url = url.slice(0, hashmarkIndex)
+ }
+
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
+ }
+
+ return url
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js"
new file mode 100644
index 000000000..7b9d1efdb
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js"
@@ -0,0 +1,14 @@
+'use strict'
+
+/**
+ * Creates a new URL by combining the specified URLs
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} relativeURL The relative URL
+ * @returns {string} The combined URL
+ */
+export default function combineURLs(baseURL, relativeURL) {
+ return relativeURL
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+ : baseURL
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js"
new file mode 100644
index 000000000..2a82517d6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js"
@@ -0,0 +1,14 @@
+'use strict'
+
+/**
+ * Determines whether the specified URL is absolute
+ *
+ * @param {string} url The URL to test
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
+ */
+export default function isAbsoluteURL(url) {
+ // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).
+ // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
+ // by any combination of letters, digits, plus, period, or hyphen.
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url)
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts"
new file mode 100644
index 000000000..62d3fb9e7
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/08-uni-app/univue3/\347\224\250\346\211\200\351\200\211\351\241\271\347\233\256\346\226\260\345\273\272\347\232\204\346\226\207\344\273\266\345\244\271/xxm-wallpaper-\346\217\222\344\273\266\347\211\210/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts"
@@ -0,0 +1,197 @@
+export type HttpTask = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask;
+
+export type HttpRequestTask = UniApp.RequestTask;
+
+export type HttpUploadTask = UniApp.UploadTask;
+
+export type HttpDownloadTask = UniApp.DownloadTask;
+
+export type HttpMethod =
+ "GET"
+ | "POST"
+ | "PUT"
+ | "DELETE"
+ | "CONNECT"
+ | "HEAD"
+ | "OPTIONS"
+ | "TRACE"
+ | "UPLOAD"
+ | "DOWNLOAD";
+
+export type HttpRequestHeader = Record;
+
+export type HttpParams = Record;
+
+export type HttpData = Record;
+
+export type HttpResponseType = 'arraybuffer' | 'text';
+
+export type HttpCustom = Record;
+
+export type HttpFileType = 'image' | 'video' | 'audio';
+
+export type HttpFormData = Record;
+
+export type HttpResponseHeader = Record & {
+ "set-cookie"?: string[]
+};
+
+export interface HttpRequestConfig {
+ /** @desc 请求服务器接口地址 */
+ url?: string;
+ /** @desc 请求方式,默认为 GET */
+ method?: HttpMethod;
+ /** @desc 请求基地址 */
+ baseURL?: string;
+ /** @desc 请求头信息,不能设置 Referer,App、H5 端会自动带上 cookie,且 H5 端不可手动修改 */
+ header?: HttpRequestHeader;
+ /** @desc 请求查询参数,自动拼接为查询字符串 */
+ params?: HttpParams;
+ /** @desc 请求体参数 */
+ data?: HttpData;
+ /** @desc 超时时间,单位 ms,默认为 60000,仅 H5 (HBuilderX 2.9.9+)、APP (HBuilderX 2.9.9+)、微信小程序 (2.10.0)、支付宝小程序支持 */
+ timeout?: number;
+ /** @desc 跨域请求时是否携带凭证 (cookies),默认为 false,仅 H5 (HBuilderX 2.6.15+) 支持 */
+ withCredentials?: boolean;
+ /** @desc 设置响应的数据类型,支付宝小程序不支持 */
+ responseType?: HttpResponseType;
+ /** @desc 全局自定义验证器 */
+ validateStatus?: ((statusCode: number) => boolean) | null;
+
+
+ /** params 参数自定义处理 */
+ paramsSerializer?: (params: AnyObject) => string | void;
+
+ /** @desc 默认为 json,如果设为 json,会尝试对返回的数据做一次 JSON.parse */
+ dataType?: string;
+ /** @desc DNS 解析时是否优先使用 ipv4,默认为 false,仅 App-Android (HBuilderX 2.8.0+) 支持 */
+ firstIpv4?: boolean;
+ /** @desc 是否验证 SSL 证书,默认为 true,仅 App-Android (HBuilderX 2.3.3+) 支持 */
+ sslVerify?: boolean;
+
+ /** @desc 开启 http2;微信小程序 */
+ enableHttp2?: boolean;
+
+ /** @desc 开启 quic;微信小程序 */
+ enableQuic?: boolean;
+ /** @desc 开启 cache;微信小程序、字节跳动小程序 2.31.0+ */
+ enableCache?: boolean;
+ /** @desc 开启 httpDNS;微信小程序 */
+ enableHttpDNS?: boolean;
+ /** @desc httpDNS 服务商;微信小程序 */
+ httpDNSServiceId?: string;
+ /** @desc 开启 transfer-encoding chunked;微信小程序 */
+ enableChunked?: boolean;
+ /** @desc wifi下使用移动网络发送请求;微信小程序 */
+ forceCellularNetwork?: boolean;
+ /** @desc 开启后可在headers中编辑cookie;支付宝小程序 10.2.33+ */
+ enableCookie?: boolean;
+ /** @desc 是否开启云加速;百度小程序 3.310.11+ */
+ cloudCache?: boolean | object;
+ /** @desc 控制当前请求是否延时至首屏内容渲染后发送;百度小程序 3.310.11+ */
+ defer?: boolean;
+
+ /** @desc 自定义参数 */
+ custom?: HttpCustom;
+
+ /** @desc 返回当前请求的 task 和 options,不要在这里修改 options */
+ getTask?: (task: T, options: HttpRequestConfig) => void;
+
+ /** @desc 需要上传的文件列表,使用 files 时,filePath 和 name 不生效,仅支持 App、H5 (2.6.15+) */
+ files?: { name?: string; file?: File; uri: string; }[];
+ /** @desc 文件类型,仅支付宝小程序支持且为必填项 */
+ fileType?: HttpFileType;
+ /** @desc 要上传的文件对象,仅 H5 (2.6.15+) 支持 */
+ file?: File;
+ /** @desc 要上传文件资源的路径,使用 files 时,filePath 和 name 不生效 */
+ filePath?: string;
+ /** @desc 文件对应的 key,开发者在服务器端通过这个 key 可以获取到文件二进制内容,使用 files 时,filePath 和 name 不生效 */
+ name?: string;
+ /** @desc 请求中其他额外的 form data */
+ formData?: HttpFormData;
+}
+
+export interface HttpResponse {
+ data: T;
+ statusCode: number;
+ header: HttpResponseHeader;
+ config: HttpRequestConfig;
+ cookies: string[];
+ errMsg: string;
+ rawData: any;
+}
+
+export interface HttpUploadResponse {
+ data: T;
+ statusCode: number;
+ config: HttpRequestConfig;
+ errMsg: string;
+ rawData: any;
+}
+
+export interface HttpDownloadResponse extends HttpResponse {
+ tempFilePath: string;
+ apFilePath?: string;
+ filePath?: string;
+ fileContent?: string;
+}
+
+export interface HttpError {
+ data?: T;
+ statusCode?: number;
+ header?: HttpResponseHeader;
+ config: HttpRequestConfig;
+ cookies?: string[];
+ errMsg: string;
+}
+
+export interface HttpPromise extends Promise> {
+}
+
+export interface HttpInterceptorManager {
+ use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: E) => T | Promise): void;
+
+ eject(id: number): void;
+}
+
+export abstract class HttpRequestAbstract {
+ constructor(config?: HttpRequestConfig);
+
+ interceptors: {
+ request: HttpInterceptorManager;
+ response: HttpInterceptorManager;
+ }
+
+ request, D = HttpRequestTask>(config: HttpRequestConfig): Promise;
+
+ get, D = HttpRequestTask>(url: string, config?: HttpRequestConfig): Promise;
+
+ delete, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ head, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ options, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ post, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ put, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise;
+
+ config: HttpRequestConfig;
+
+ setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void;
+
+ connect, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise