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/01-start/01-\344\270\211\344\270\252\346\240\270\345\277\203api.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/01-\344\270\211\344\270\252\346\240\270\345\277\203api.html"
similarity index 100%
rename from "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/01-\344\270\211\344\270\252\346\240\270\345\277\203api.html"
rename to "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/01-\344\270\211\344\270\252\346\240\270\345\277\203api.html"
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/02-JSX.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/02-JSX.html"
similarity index 100%
rename from "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/02-JSX.html"
rename to "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/02-JSX.html"
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/03-create-react-app.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/03-create-react-app.html"
new file mode 100644
index 000000000..94e14a2bd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/03-create-react-app.html"
@@ -0,0 +1 @@
+create-react-app [项目名]
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/script/babel.min.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/script/babel.min.js"
similarity index 100%
rename from "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/script/babel.min.js"
rename to "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/script/babel.min.js"
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/script/react-dom.development.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/script/react-dom.development.js"
similarity index 100%
rename from "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/script/react-dom.development.js"
rename to "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/script/react-dom.development.js"
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/script/react.development.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/script/react.development.js"
similarity index 100%
rename from "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-start/script/react.development.js"
rename to "12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/00-start/script/react.development.js"
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/App1.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/App1.js"
new file mode 100644
index 000000000..e9a9caa63
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/App1.js"
@@ -0,0 +1,5 @@
+const App = () => {
+ return 函数组件
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/App2.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/App2.js"
new file mode 100644
index 000000000..a8fc8504a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/App2.js"
@@ -0,0 +1,39 @@
+import React from "react";
+
+class App extends React.Component {
+
+ // ...类组件使用 this 获取各类属性方法
+
+ // 创建属性存储DOM对象
+ divRef = React.createRef();
+
+ // 向state中添加属性
+ state = {
+ count: 0,
+ };
+
+ clickHandler = () => {
+ // 【1】
+ // this.setState({count: 1});
+
+ // 【2】
+ this.setState(prevState => {
+ return {
+ count: prevState.count + 1
+ }
+ });
+ };
+
+ // 必须包含 render 方法,返回虚拟 DOM
+ render() {
+ return (
+
+
类组件{this.props.item}
+ {this.state.count}
+ click
+
+ );
+ }
+}
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/index.js"
new file mode 100644
index 000000000..70c42d15d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/01-\345\207\275\346\225\260\347\273\204\344\273\266\345\222\214\347\261\273\347\273\204\344\273\266/index.js"
@@ -0,0 +1,10 @@
+import ReactDOM from "react-dom/client";
+import App1 from "./App1"; // 函数组件
+import App2 from "./App2"; // 类组件
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+
+const propDatas = [1, 2, 3];
+const app2 = propDatas.map(item => );
+
+root.render();
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/02-event/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/02-event/App.js"
new file mode 100644
index 000000000..f8d46cf37
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/02-event/App.js"
@@ -0,0 +1,46 @@
+const App = () => {
+
+ /*
+ 原生DOM操作
+
+ click
+ click
+ document.getElementById('test').onclick = function(){};
+ document.getElementById('test').addEventListener('click', function(){}, false);
+ */
+
+ /*
+ React中事件通过元素属性设置
+
+ 和原生JS不同,React中事件的属性需要使用驼峰命名法:
+ onclick -> onClick
+ onchange -> onChange
+
+ 属性值不能直接执行代码,而是需要一个回调函数:
+ onclick="alert('test')"
+ onClick={()=>{alert('test')}}
+ */
+
+ const clickHandler = (event) => {
+
+ // return false; // 在React中,无法通过return false取消默认行为,原生也不推荐这样用
+ event.preventDefault(); // 取消默认行为
+ event.stopPropagation(); // 取消事件的冒泡
+
+ // 注意:React中的事件对象 event 不是原生的事件对象,因此无需再考虑兼容问题
+ };
+
+
+ return
+
+
{ alert('test'); }}>click
+
取消默认跳转行为
+
+};
+
+
+
+// 导出App
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/02-event/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/02-event/index.js"
new file mode 100644
index 000000000..ee20589a6
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/02-event/index.js"
@@ -0,0 +1,6 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/03-props/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/03-props/App.js"
new file mode 100644
index 000000000..4e46b14fe
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/03-props/App.js"
@@ -0,0 +1,10 @@
+// 类组件写法参考《函数组件和类组件》
+// props.children 用于获取元素体,参考《portal》
+const App = (props) => {
+ // 注意class的处理
+ return (
+ {props.item}
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/03-props/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/03-props/index.js"
new file mode 100644
index 000000000..be8b94717
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/03-props/index.js"
@@ -0,0 +1,6 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+const data = 1;
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/04-state/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/04-state/App.js"
new file mode 100644
index 000000000..8bf2b7952
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/04-state/App.js"
@@ -0,0 +1,43 @@
+import {useState} from "react";
+
+const App = () => {
+
+ // 类组件写法参考《函数组件和类组件》
+
+ // [初始值, 修改函数]
+ const [counter, setCounter] = useState(1);
+ const [user, setUser] = useState({ name: 'csxiaoyao', age: 30 });
+
+ const addHandler = () => {
+ // 直接给 counter 赋值不会触发重新渲染
+ // counter += 1;
+
+ // !!! [默认setState是异步的] !!!
+ setCounter(counter + 1);
+
+ // !!! [同步写法] !!!
+ setCounter((prevCounter)=>{
+ return prevCounter + 1;
+ });
+ };
+
+ // 对象的修改
+ const updateUserHandler = () => {
+ // 浅复制
+ /*
+ const newUser = Object.assign({}, user);
+ newUser.name = 'sunshine';
+ setUser(newUser);
+ */
+ setUser({...user, name: 'sunshine'});
+ };
+
+
+ return
+
{counter}
+ +
+ change
+ ;
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/04-state/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/04-state/index.js"
new file mode 100644
index 000000000..97de816ec
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/04-state/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/05-ref/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/05-ref/App.js"
new file mode 100644
index 000000000..82d91f9dc
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/05-ref/App.js"
@@ -0,0 +1,28 @@
+import {useRef} from "react";
+
+const App = () => {
+ /*
+ 使用 react 获取原生 DOM 对象
+ 1. 使用 useRef() 钩子函数创建一个存储DOM对象的容器(只能用于函数组件或自定义钩子)
+ useRef 返回一个普通的JS对象
+ {current:undefined}
+ 尽量不要直接创建一个对象替代 useRef,因为自己创建的对象每次渲染都会创建一个新对象,而useRef创建的对象每次渲染获得的是同一个对象
+
+ 2. 将容器设置为目标DOM对象元素的ref属性,react会自动将当前元素的DOM对象,设置为容器current属性
+ ...
+
+ 3. 类组件写法参考《函数组件和类组件》
+ */
+ const h1Ref = useRef(); // 创建一个容器,h1Ref={current:null}
+
+ const clickHandler = () => {
+ h1Ref.current.innerText = 'changed';
+ };
+
+ return
+
+ change
+
;
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/05-ref/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/05-ref/index.js"
new file mode 100644
index 000000000..97de816ec
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/05-ref/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/06-\350\241\250\345\215\225\345\244\204\347\220\206/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/06-\350\241\250\345\215\225\345\244\204\347\220\206/App.js"
new file mode 100644
index 000000000..84c258bd9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/06-\350\241\250\345\215\225\345\244\204\347\220\206/App.js"
@@ -0,0 +1,44 @@
+import React, {useState} from 'react';
+
+const App = () => {
+ // 存储表单中的数据
+ const [formData, setFormData] = useState({
+ inputDesc:'',
+ });
+
+ // 监听内容变化
+ const descChangeHandler = (e) => {
+ setFormData({
+ ...formData,
+ inputDesc: e.target.value
+ });
+ };
+
+ const formSubmitHandler = (e) => {
+ // 取消表单的默认提交行为
+ e.preventDefault();
+
+ console.log(formData);
+
+ setFormData({
+ inputDesc: '',
+ });
+ };
+
+ return (
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/06-\350\241\250\345\215\225\345\244\204\347\220\206/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/06-\350\241\250\345\215\225\345\244\204\347\220\206/index.js"
new file mode 100644
index 000000000..97de816ec
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/06-\350\241\250\345\215\225\345\244\204\347\220\206/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/App.js"
new file mode 100644
index 000000000..c15ced1a0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/App.js"
@@ -0,0 +1,12 @@
+import React from 'react';
+import Backdrop from "./Backdrop";
+
+const App = () => {
+ return (
+
+ portal
+
+ );
+};
+
+export default App;
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"
new file mode 100644
index 000000000..cbbd18ac2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/Backdrop.js"
@@ -0,0 +1,16 @@
+/**
+ * Portal 将子节点渲染到存在于父组件以外的 DOM 节点
+ * ReactDOM.createPortal(child, container)
+ */
+import ReactDOM from "react-dom";
+
+const backdropRoot = document.getElementById('backdrop-root');
+
+const Backdrop = (props) => {
+ // props.children 用于获取元素体
+ return ReactDOM.createPortal(
+ {props.children}
+
, backdropRoot);
+};
+
+export default Backdrop;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/index.html"
new file mode 100644
index 000000000..250a42b52
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/index.html"
@@ -0,0 +1,14 @@
+
+
+
+
+ react
+
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/index.js"
new file mode 100644
index 000000000..97de816ec
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/07-portal/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/App.js"
new file mode 100644
index 000000000..c15ced1a0
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/App.js"
@@ -0,0 +1,12 @@
+import React from 'react';
+import Backdrop from "./Backdrop";
+
+const App = () => {
+ return (
+
+ portal
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.css"
new file mode 100644
index 000000000..f8cea38ed
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.css"
@@ -0,0 +1,8 @@
+* {
+ margin: 0;
+ padding: 0;
+}
+
+.global-style {
+ border: 2px solid red;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.js"
new file mode 100644
index 000000000..312a95035
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.js"
@@ -0,0 +1,25 @@
+import ReactDOM from "react-dom/client";
+
+// [1] 外部样式表
+import './index.css';
+// [3] 推荐:CSS Module
+import style from './index.module.css'
+
+const StyleDemo = () => {
+
+ const useBorder = true;
+
+ // [2] 内联样式
+ const innerStyle = {
+ border: useBorder ? '1px solid blue' : 'none',
+ };
+
+ return (
+
+ );
+};
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.module.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.module.css"
new file mode 100644
index 000000000..180edadbd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/08-css/index.module.css"
@@ -0,0 +1,8 @@
+* {
+ margin: 0;
+ padding: 0;
+}
+
+.moduleStyle {
+ border: 2px solid yellow;
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/09-fragment/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/09-fragment/index.js"
new file mode 100644
index 000000000..f36b542b5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/09-fragment/index.js"
@@ -0,0 +1,13 @@
+import ReactDOM from "react-dom/client";
+import { Fragment } from "react";
+
+const Demo = () => {
+ return (
+
+ fragment不渲染外层 <>也可以这么处理>
+
+ );
+};
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
\ No newline at end of file
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"
new file mode 100644
index 000000000..a476e4819
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/App.js"
@@ -0,0 +1,92 @@
+/*
+// 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() 处理那些不能直接写在组件内部的代码
+// 如获取数据、记录日志、检查登录、设置定时器等
+// useEffect() 中的回调函数会在组件每次渲染完毕之后执行,而正常函数体中的代码会在组件渲染前执行,避免了代码的执行影响到组件渲染
+
+import { useState, useEffect } from 'react';
+const App = () => {
+
+
+ console.log('组件渲染');
+
+ const [count, setCount] = useState(0);
+
+ // 死循环,如列表清空时关闭页面操作
+ /*
+ if (count === 0) {
+ setCount(0);
+ }
+ */
+
+ // [重要] 在渲染阶段不会检查 state 值是否相同,使用 setState 会导致死循环
+ // 1. setTimeout 跳出渲染阶段,会检查 state 值是否相同,相同不触发重新渲染
+ // 2. useEffect 会在组件每次渲染完毕后执行,跳出渲染阶段
+ // 注意:检查 state 值是否相同时,值第一次相同时 react 可能也会重新渲染
+ /*
+ setTimeout(() => {
+ setCount(0);
+ }, 0);
+ */
+
+ /*
+ useEffect(()=>{
+ // 编写会产生副作用的代码
+ // ...
+
+ const timer = setTimeout(() => {
+ // ...
+ }, 1000);
+
+ return () => {
+ // 清理函数,在下一次effect执行前调用,如清理定时器
+ clearTimeout(timer);
+ };
+ }, [a, b]); // 限制只有当 a,b 发生变化时才执行,[]只执行一次
+ */
+
+ useEffect(() => {
+ if (count === 0) {
+ setCount(0);
+ }
+ });
+
+ return {count}
;
+};
+
+export default App;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/index.js"
new file mode 100644
index 000000000..4e77c6639
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/10-effect&StrictMode/index.js"
@@ -0,0 +1,11 @@
+import React from 'react';
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render(
+
+ {/* StrictMode 会在开发模式下通过重复调用等方式尽可能凸显问题逻辑,如死循环副作用检测等,如 useState, useMemo, useReducer */}
+
+
+);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/App.js"
new file mode 100644
index 000000000..a307fba76
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/App.js"
@@ -0,0 +1,25 @@
+import Component from './Component';
+import TextContext from './context';
+import {useState} from "react";
+
+
+
+const App = () => {
+
+ const [user] = useState({ name: 'sunshine', age: 20, sayHello: (props) => { console.log(props) } });
+
+ return(
+
+ {/* Provider 和 Consumer 方式对应,默认读取最近的 Provider 的数据 */}
+ {/* */}
+
+
+
+
+ {/* 访问 context.js 定义的数据 */}
+
+
+ );
+};
+
+export default App;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/Component.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/Component.js"
new file mode 100644
index 000000000..616f6d737
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/Component.js"
@@ -0,0 +1,45 @@
+import {useContext} from 'react';
+
+// Context类似于JS中的全局作用域,可以将一些公共数据设置到一个同一个Context中,使所有组件可以访问到这些数据
+import TextContext from './context';
+
+// 调用方式1: Consumer,标签体必须是一个函数
+// 调用方式2: useContext钩子函数
+
+const Demo = () => {
+
+ const ctx2 = useContext(TextContext);
+
+ const clickHandler = () => {
+ ctx2.sayHello({
+ name: 'victor'
+ });
+ };
+
+
+ return (
+
+
add age
+
+ { /* 方式1 */ }
+
+ {(ctx1)=>{
+ return (
+
+ {ctx1.name}
+ {ctx1.age}
+
+ );
+ }}
+
+
+ { /* 方式2 推荐 */ }
+
+ {ctx2.name}
+ {ctx2.age}
+
+
+ );
+};
+
+export default Demo;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/context.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/context.js"
new file mode 100644
index 000000000..5229f7f96
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/context.js"
@@ -0,0 +1,12 @@
+import React from "react";
+
+// 初始数据,在provider中赋值,在consumer中使用
+const TextContext = React.createContext({
+ name: 'csxiaoyao',
+ age: 30,
+ sayHello: (props) => {
+ alert(props.name);
+ }
+});
+
+export default TextContext;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/index.js"
new file mode 100644
index 000000000..4a863ebeb
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/11-context/index.js"
@@ -0,0 +1,6 @@
+import React from 'react';
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/12-reducer/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/12-reducer/App.js"
new file mode 100644
index 000000000..2eb6cc6bd
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/12-reducer/App.js"
@@ -0,0 +1,48 @@
+import React, {useReducer, useState} from 'react';
+
+// 定义所有操作,返回state新值
+// 为避免reducer重复创建,通常reducer会定义到组件外部
+// state为当前最新state,action为一个对象,存储dispatch所发送的指令
+const countReducer = (state, action) => {
+ switch (action.type) {
+ case 'ADD':
+ return state + 1;
+ case 'SUB':
+ return state - 1;
+ default:
+ return state;
+ }
+};
+
+const App = () => {
+ /*
+ const [count, setCount] = useState(1);
+ const addHandler = () => {
+ setCount(prevState => prevState + 1);
+ };
+ const subHandler = () => {
+ setCount(prevState => prevState - 1);
+ };
+ */
+
+ // useReducer(reducer, initialArg, init) initialArg类似useState()中的初始值
+ const [count, countDispatch] = useReducer(countReducer, 1);
+ const addHandler = () => {
+ countDispatch({type: 'ADD'});
+ };
+ const subHandler = () => {
+ countDispatch({type: 'SUB'});
+ };
+
+ return (
+
+ 减少
+ {count}
+ 增加
+
+
+ );
+ }
+;
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/12-reducer/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/12-reducer/index.js"
new file mode 100644
index 000000000..db651747f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/12-reducer/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from 'react-dom/client';
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/App.js"
new file mode 100644
index 000000000..1917a5783
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/App.js"
@@ -0,0 +1,24 @@
+import React, {useState} from 'react';
+import A from "./components/A";
+
+/**
+ * React.memo() 一个高阶组件,用于缓存组件
+ * 接收一个组件作为参数,并返回一个包装过的新组件,只有组件的props发生变化才会触发渲染
+ */
+
+const App = () => {
+ const [count, setCount] = useState(1);
+ const clickHandler = () => {
+ setCount(prevState => prevState + 1);
+ };
+
+ return (
+
+
App - {count}
+
App 不触发A渲染
+
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/components/A.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/components/A.js"
new file mode 100644
index 000000000..3544694f1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/components/A.js"
@@ -0,0 +1,23 @@
+import React, {useState} from 'react';
+import B from "./B";
+
+const A = () => {
+ console.log('A渲染');
+
+ const [count, setCount] = useState(1);
+ const clickHandler = () => {
+ setCount(prevState => prevState + 1);
+ };
+
+ const test = count % 4 === 0;
+
+ return (
+
+
组件A - {count}
+ %4触发B渲染
+
+
+ );
+};
+
+export default React.memo(A);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/components/B.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/components/B.js"
new file mode 100644
index 000000000..82cb37c46
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/components/B.js"
@@ -0,0 +1,14 @@
+import React from 'react';
+
+const B = (props) => {
+ console.log('B渲染');
+
+ return (
+
+
组件B
+
{props.test && 'test'}
+
+ );
+};
+
+export default React.memo(B);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/index.js"
new file mode 100644
index 000000000..db651747f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/13-memo/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from 'react-dom/client';
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/A.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/A.js"
new file mode 100644
index 000000000..1240fd60b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/A.js"
@@ -0,0 +1,14 @@
+import React from 'react';
+
+const A = (props) => {
+ console.log('A渲染');
+
+ return (
+
+
组件A
+ App.onAdd
+
+ );
+};
+
+export default React.memo(A);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/App.js"
new file mode 100644
index 000000000..c5cfaaa2b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/App.js"
@@ -0,0 +1,25 @@
+import React, {useCallback, useState} from 'react';
+import A from "./A";
+
+const App = () => {
+ const [count, setCount] = useState(1);
+ const [num] = useState(1);
+
+ // useCallback 钩子函数,用于缓存回调函数
+ // 若不使用 useCallback,A 组件 onAdd 属性传入的 clickHandler 会变,导致 memo 失效
+ // 若不指定依赖数组,每次都会重建,注意一定要将回调函数中用到的所有变量都设置到依赖数组中
+
+ const clickHandler = useCallback(() => {
+ setCount(prevState => prevState + num);
+ }, [num]);
+
+ return (
+
+
App - {count}
+
App
+
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/index.js"
new file mode 100644
index 000000000..879ce1a85
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/14-useCallback/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from 'react-dom/client';
+import App from "../test/src/App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/App.js"
new file mode 100644
index 000000000..58214c1fa
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/App.js"
@@ -0,0 +1,27 @@
+import React, {useEffect} from 'react';
+import useFetch from "./hooks/useFetch";
+
+const App = () => {
+
+ const { data: stuData, loading, error, fetchData } = useFetch();
+
+ // 初始化fetch
+ useEffect(() => {
+ fetchData();
+ }, []);
+
+ const loadDataHandler = () => {
+ fetchData();
+ };
+
+ return (
+
+
加载数据
+ {/* {(!loading && !error) &&
} */}
+ {loading && 数据正在加载中...
}
+ {error && 数据加载异常!
}
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/hooks/useFetch.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/hooks/useFetch.js"
new file mode 100644
index 000000000..2f47318ff
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/hooks/useFetch.js"
@@ -0,0 +1,48 @@
+/**
+ * React中的钩子函数只能在函数组件或自定钩子中调用
+ * 自定义钩子其实是一个名字为use开头的普通函数,可以将React中钩子函数提取到一个公共区域
+ */
+import {useCallback, useState} from "react";
+
+export default function useFetch(reqObj, cb) {
+ const [data, setData] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [error, setError] = useState(null);
+
+ const fetchData = useCallback(async (body) => {
+ try {
+ setLoading(true);
+ setError(null);
+ const res = await fetch('http://localhost:8080/api/'+reqObj.url, {
+ method:reqObj.method || 'get',
+ headers:{
+ "Content-type":"application/json"
+ },
+ body:body?JSON.stringify({data:body}):null,
+
+ });
+ if (res.ok) {
+ const data = await res.json();
+ setData(data.data);
+ cb && cb();
+ } else {
+ throw new Error('数据加载失败!');
+ }
+ } catch (e) {
+ console.log(e);
+ setError(e);
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ // 设置返回
+ return {
+ loading,
+ error,
+ data,
+ fetchData
+ };
+}
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/index.js"
new file mode 100644
index 000000000..97de816ec
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/15-\350\207\252\345\256\232\344\271\211\351\222\251\345\255\220/index.js"
@@ -0,0 +1,5 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render( );
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/01-hellowold/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/01-hellowold/index.html"
new file mode 100644
index 000000000..48b690d51
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/01-hellowold/index.html"
@@ -0,0 +1,70 @@
+
+
+
+
+ Redux
+
+
+
+
+ 减少
+ 1
+ 增加
+ 加5
+
+
+
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/App.js"
new file mode 100644
index 000000000..bd2bad81b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/App.js"
@@ -0,0 +1,44 @@
+import React from 'react';
+import {useDispatch, useSelector} from "react-redux";
+import {setName, setAge} from './store/stuSlice';
+import {setName as setSchoolName, setAddress as setSchoolAddress} from "./store/schoolSlice";
+
+const App = () => {
+ // useSelector() 加载state中的数据
+ // const student = useSelector(state => state.student);
+ // const school = useSelector(state => state.school);
+ const {student, school} = useSelector(state => state);
+
+ // useDispatch() 获取派发器对象
+ const dispatch = useDispatch();
+
+ const setNameHandler = () => {
+ dispatch(setName('沙和尚'));
+ };
+ const setAgeHandler = () => {
+ dispatch(setAge(30));
+ };
+
+ return (
+
+
+ {student.name} |
+ {student.age} |
+ {student.gender} |
+ {student.address}
+
+
修改name
+
修改age
+
+
+
+ {school.name} |
+ {school.address}
+
+
dispatch(setSchoolName('高老庄中小'))}>修改学校名字
+
dispatch(setSchoolAddress('高老庄府前街19号'))}>修改学校地址
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/index.js"
new file mode 100644
index 000000000..0a77a71b5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/index.js"
@@ -0,0 +1,11 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+import {Provider} from "react-redux";
+import store from './store';
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render(
+
+
+
+);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/index.js"
new file mode 100644
index 000000000..587a59912
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/index.js"
@@ -0,0 +1,14 @@
+// 使用RTK构建store
+import {configureStore} from "@reduxjs/toolkit";
+
+import {stuReducer} from "./stuSlice";
+import {schoolReducer} from "./schoolSlice";
+
+const store = configureStore({
+ reducer:{
+ student: stuReducer,
+ school: schoolReducer,
+ }
+});
+
+export default store;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/schoolSlice.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/schoolSlice.js"
new file mode 100644
index 000000000..cd99b1562
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/schoolSlice.js"
@@ -0,0 +1,21 @@
+// 创建学校的slice
+import {createSlice} from "@reduxjs/toolkit";
+
+const schoolSlice = createSlice({
+ name: 'school',
+ initialState:{
+ name:'花果山一小',
+ address:'花果山大街28号'
+ },
+ reducers:{
+ setName(state, action){
+ state.name = action.payload;
+ },
+ setAddress(state, action){
+ state.address = action.payload;
+ }
+ }
+});
+
+export const {setName, setAddress} = schoolSlice.actions;
+export const {reducer:schoolReducer} = schoolSlice;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/stuSlice.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/stuSlice.js"
new file mode 100644
index 000000000..ded5a354d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/02-RTK/store/stuSlice.js"
@@ -0,0 +1,25 @@
+import {createSlice} from "@reduxjs/toolkit";
+
+// createSlice 创建 reducer 切片
+const stuSlice = createSlice({
+ name:'stu', // 对应 action 中的 type
+ initialState:{ // state的初始值
+ name:'孙悟空',
+ age:18,
+ gender:'男',
+ address:'花果山'
+ },
+ reducers:{ // 指定state的操作
+ setName(state, action){
+ state.name = action.payload;
+ },
+ setAge(state, action){
+ state.age = action.payload;
+ }
+ }
+});
+
+// actions中存储切片自动生成action创建器(函数),调用函数后会自动创建action对象
+// action对象的结构 {type:name/函数名, payload:函数的参数}
+export const {setName, setAge} = stuSlice.actions;
+export const {reducer:stuReducer} = stuSlice;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/App.js"
new file mode 100644
index 000000000..f408802e5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/App.js"
@@ -0,0 +1,49 @@
+import React from 'react';
+import {useDelStudentMutation, useGetStudentsQuery} from "./store/studentApi";
+import StudentList from "./components/StudentList";
+
+const App = () => {
+
+ const result = useGetStudentsQuery(null, {
+ // useQuery 可以接收一个对象作为第二个参数,通过该对象可以对请求进行配置
+ // selectFromResult: result => {
+ // if (result.data) {
+ // result.data = result.data.filter(item => item.attributes.age < 18);
+ // }
+ // return result;
+ // }, // 用来指定useQuery返回的结果
+
+ pollingInterval:0, // 设置轮询的间隔,单位毫秒 如果为0则表示不轮询
+ skip:false, // 设置是否跳过当前请求,默认false
+ refetchOnMountOrArgChange:false, // 设置是否每次都重新加载数据 false正常使用缓存,
+ // true每次都重载数据
+ // 数字,数据缓存的时间(秒)
+ refetchOnFocus:false, // 是否在重新获取焦点时重载数据
+ refetchOnReconnect:true, // 是否在重新连接后重载数据
+ });
+
+ /*
+ currentData: undefined // 当前参数的最新数据
+ data: undefined // 最新的数据
+ isError: false // 布尔值,是否有错误
+ error: Error() // 对象,有错时才存在
+ isFetching: true // 布尔值,数据是否在加载
+ isLoading: true // 布尔值,数据是否第一次加载
+ isSuccess: false // 布尔值,请求是否成功
+ isUninitialized: false // 布尔值,请求是否还没有开始发送
+ refetch: ƒ () // 一个函数,用来重新加载数据
+ status: "pending" // 字符串,请求的状态
+ */
+
+ const {data: stus, isSuccess, isLoading, refetch} = result; // 调用Api中的钩子查询数据
+
+ return (
+
+
refetch()}>刷新
+ {isLoading &&
数据加载中...
}
+ {isSuccess &&
}
+
+ );
+};
+
+export default App;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/Student.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/Student.js"
new file mode 100644
index 000000000..4ae814c52
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/Student.js"
@@ -0,0 +1,57 @@
+import React, {useCallback, useContext, useState} from 'react';
+import StudentForm from "./StudentForm";
+import {useDelStudentMutation} from "../store/studentApi";
+
+const Student = (props) => {
+
+ const [isEdit, setIsEdit] = useState(false);
+ // 获取删除的钩子,useMutation的钩子返回的是一个数组
+ // 数组中有两个东西,第一个是操作的触发器,第二个是结果集
+ const [delStudent, {isSuccess}] = useDelStudentMutation();
+
+
+ const deleteHandler = () => {
+ delStudent(props.stu.id);
+ };
+
+ const cancelEdit = () => {
+ setIsEdit(false);
+ };
+
+ return (
+ <>
+ {(!isEdit && !isSuccess) &&
+
+ {props.stu.attributes.name}
+ {props.stu.attributes.gender}
+ {props.stu.attributes.age}
+ {props.stu.attributes.address}
+
+ 删除
+ setIsEdit(true)}>修改
+
+
+ }
+
+ {
+ isSuccess &&
+
+ 数据已删除!
+
+
+ }
+
+ {isEdit && }
+
+ {/*{loading && */}
+ {/* 正在删除数据... */}
+ {/* }*/}
+ {/*{error && */}
+ {/* 删除失败... */}
+ {/* }*/}
+ >
+
+ );
+};
+
+export default Student;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentForm.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentForm.css"
new file mode 100644
index 000000000..35221f33f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentForm.css"
@@ -0,0 +1,3 @@
+.student-form input{
+ width: 80px;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentForm.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentForm.js"
new file mode 100644
index 000000000..3c3ecb266
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentForm.js"
@@ -0,0 +1,118 @@
+import React, {useCallback, useContext, useEffect, useState} from 'react';
+import './StudentForm.css';
+import {useAddStudentMutation, useGetStudentByIdQuery, useUpdateStudentMutation} from "../store/studentApi";
+
+const StudentForm = (props) => {
+ // 调用钩子来加载数据
+ const {data:stuData, isSuccess, isFetching} = useGetStudentByIdQuery(props.stuId, {
+ skip:!props.stuId,
+ refetchOnMountOrArgChange:false
+ });
+ // 用户修改时,表单中的数据是数据库中最新的数据
+ const [inputData, setInputData] = useState({
+ name: '',
+ age: '',
+ gender: '男',
+ address: ''
+ });
+
+ const [addStudent, {isSuccess:isAddSuccess}] = useAddStudentMutation();
+ const [updateStudent, {isSuccess:isUpdateSuccess}] = useUpdateStudentMutation();
+
+ // StudentForm一加载,应该去自动的加载最新的学生数据
+ // console.log(props.stuId);
+ // console.log(isSuccess, stuData);
+
+ useEffect(()=>{
+ if(isSuccess){
+ setInputData(stuData.attributes);
+ }
+ }, [isSuccess])
+
+ const nameChangeHandler = (e) => {
+ setInputData(prevState => ({...prevState, name: e.target.value}));
+ };
+
+ const ageChangeHandler = (e) => {
+ setInputData(prevState => ({...prevState, age: +e.target.value}));
+ };
+
+ const genderChangeHandler = (e) => {
+ setInputData(prevState => ({...prevState, gender: e.target.value}));
+ };
+
+ const addressChangeHandler = (e) => {
+ setInputData(prevState => ({...prevState, address: e.target.value}));
+ };
+
+ const submitHandler = () => {
+ addStudent(inputData);
+ // 重置数据
+ setInputData({
+ name: '',
+ age: '',
+ gender: '男',
+ address: ''
+ });
+ };
+
+ const updateHandler = () => {
+ updateStudent({
+ id:props.stuId,
+ attributes:inputData
+ });
+ props.onCancel();
+ };
+
+
+ return (
+ <>
+
+
+
+
+ 男
+ 女
+
+
+
+
+
+
+ {props.stuId && <>
+ props.onCancel()}>取消
+ 确认
+ >}
+ {!props.stuId &&
+ 添加
+
+ }
+
+
+
+ {/*{loading && */}
+ {/* 添加中... */}
+ {/* }*/}
+ {/*{error && */}
+ {/* 添加失败 */}
+ {/* }*/}
+ >
+
+ );
+};
+
+export default StudentForm;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentList.css" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentList.css"
new file mode 100644
index 000000000..0dc570ad1
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentList.css"
@@ -0,0 +1,9 @@
+table{
+ width: 500px;
+ border-collapse: collapse;
+}
+
+td, th{
+ border: 1px solid #000;
+ text-align: center;
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentList.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentList.js"
new file mode 100644
index 000000000..f5b88a78f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/components/StudentList.js"
@@ -0,0 +1,36 @@
+import React from 'react';
+// import Student from "./Student";
+import './StudentList.css';
+import Student from "./Student";
+import StudentForm from "./StudentForm";
+// import StudentForm from "./StudentForm";
+
+const StudentList = (props) => {
+ return (
+
+ 学生列表
+
+
+ 姓名
+ 性别
+ 年龄
+ 地址
+ 操作
+
+
+
+
+
+ {props.stus.map(stu => )}
+
+
+
+
+
+
+
+
+ );
+};
+
+export default StudentList;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/index.js"
new file mode 100644
index 000000000..0a77a71b5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/index.js"
@@ -0,0 +1,11 @@
+import ReactDOM from "react-dom/client";
+import App from "./App";
+import {Provider} from "react-redux";
+import store from './store';
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render(
+
+
+
+);
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/store/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/store/index.js"
new file mode 100644
index 000000000..336f61320
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/store/index.js"
@@ -0,0 +1,16 @@
+import {configureStore} from "@reduxjs/toolkit";
+import studentApi from "./studentApi";
+import {setupListeners} from "@reduxjs/toolkit/query";
+
+const store = configureStore({
+ reducer:{
+ [studentApi.reducerPath]:studentApi.reducer
+ },
+
+ middleware:getDefaultMiddleware =>
+ getDefaultMiddleware().concat(studentApi.middleware)
+});
+
+setupListeners(store.dispatch); // 设置以后,将会支持 refetchOnFocus refetchOnReconnect
+
+export default store;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/store/studentApi.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/store/studentApi.js"
new file mode 100644
index 000000000..587669c2b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/16-redux/03-RTKQ(TODO)/store/studentApi.js"
@@ -0,0 +1,86 @@
+import {createApi, fetchBaseQuery} from "@reduxjs/toolkit/dist/query/react";
+
+// 创建Api对象
+//createApi() 用来创建RTKQ中的API对象
+// RTKQ的所有功能都需要通过该对象来进行
+// createApi() 需要一个对象作为参数
+const studentApi = createApi({
+ reducerPath: 'studentApi', // Api的标识,不能和其他的Api或reducer重复
+ baseQuery: fetchBaseQuery({
+ baseUrl: "http://localhost:1337/api/"
+ }),// 指定查询的基础信息,发送请求使用的工具
+ tagTypes: ['student'], // 用来指定Api中的标签类型
+ endpoints(build) {
+ // build是请求的构建器,通过build来设置请求的相关信息
+ return {
+ getStudents: build.query({
+ query() {
+ // 用来指定请求子路径
+ return 'students';
+ },
+ // transformResponse 用来转换响应数据的格式
+ transformResponse(baseQueryReturnValue, meta, arg) {
+ return baseQueryReturnValue.data;
+ },
+
+ providesTags: [{type: 'student', id: 'LIST'}]
+ }),
+ getStudentById: build.query({
+ query(id) {
+ //http://localhost:1337/api/students/23
+ return `students/${id}`;
+ },
+ transformResponse(baseQueryReturnValue, meta, arg) {
+ return baseQueryReturnValue.data;
+ },
+ keepUnusedDataFor: 60, // 设置数据缓存的时间,单位秒 默认60s
+ providesTags: (result, error, id) => [{type: 'student', id}]
+ }),
+ delStudent: build.mutation({
+ query(id) {
+ //http://localhost:1337/api/students/4
+ return {
+ // 如果发送的get请求,需要返回一个对象来设置请求的信息
+ url: `students/${id}`,
+ method: 'delete'
+ };
+ }
+ }),
+ addStudent: build.mutation({
+ query(stu) {
+ return {
+ url: 'students',
+ method: 'post',
+ body: {data: stu}
+ };
+ },
+ invalidatesTags: [{type: 'student', id: 'LIST'}]
+ }),
+ updateStudent: build.mutation({
+ query(stu) {
+ return {
+ url: `students/${stu.id}`,
+ method: 'put',
+ body: {data: stu.attributes}
+ };
+ },
+ invalidatesTags: ((result, error, stu) =>
+ [{type: 'student', id: stu.id}, {type: 'student', id: 'LIST'}])
+ }),
+
+ };
+ }// endpoints 用来指定Api中的各种功能,是一个方法,需要一个对象作为返回值
+});
+
+// Api对象创建后,对象中会根据各种方法自动的生成对应的钩子函数
+// 通过这些钩子函数,可以来向服务器发送请求
+// 钩子函数的命名规则 getStudents --> useGetStudentsQuery
+export const {
+ useGetStudentsQuery,
+ useGetStudentByIdQuery,
+ useDelStudentMutation,
+ useAddStudentMutation,
+ useUpdateStudentMutation
+} = studentApi;
+
+export default studentApi;
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/17-router/TODO.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/17-router/TODO.md"
new file mode 100644
index 000000000..e69de29bb
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/App.js"
new file mode 100644
index 000000000..249b5871f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/App.js"
@@ -0,0 +1,79 @@
+import React, { Component } from 'react';
+import { observable, autorun } from 'mobx';
+import store from './store';
+import Tab from './Tab';
+
+// npm i mobx@5
+
+/**
+ * 观察普通类型数据
+ */
+var observableNumber = observable.box(10);
+var observableName = observable.box('test');
+// 监听,订阅者,用到的才会执行,而 subscribe 所有变化都会执行
+autorun(() => {
+ console.log(observableNumber.get());
+});
+autorun(() => {
+ console.log(observableName.get());
+});
+setTimeout(() => { observableNumber.set(20); }, 1000);
+setTimeout(() => { observableName.set('dev'); }, 2000);
+
+/**
+ * 观察对象,通过map 或 不通过map
+ */
+const myObj1 = observable.map({
+ name: 'user name1',
+ age: 11,
+});
+
+//////// 【推荐】 ///////
+const myObj2 = observable({
+ name: 'user name2',
+ age: 22,
+});
+autorun(() => {
+ console.log('对象1的name属性改变了', myObj1.get('name'));
+ console.log('对象2的name属性改变了', myObj2.name);
+});
+// 不建议直接修改,建议通过action操作
+// 不会触发上面的autorun
+setTimeout(() => { myObj1.set('age', 12); }, 1000);
+setTimeout(() => { myObj2.age = 23; }, 1000);
+// 触发上面的autorun
+setTimeout(() => { myObj1.set('name', 'new user name1'); }, 2000);
+setTimeout(() => { myObj2.name = 'new user name2'; }, 2000);
+
+/**
+ * 观察数组
+ */
+const list = observable([1, 2, 4]);
+autorun(() => {
+ console.log('list改变了', list.length);
+});
+setTimeout(() => { list[2] = 3; }, 1000);
+
+
+export default class App extends Component {
+
+ state = {
+ isShow: false,
+ }
+
+ componentDidMount() {
+ autorun(() => {
+ this.setState({
+ isShow: store.isTabbarShow,
+ })
+ })
+ }
+
+ render() {
+ return (
+
+ {this.state.isShow && }
+
+ )
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/Tab.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/Tab.js"
new file mode 100644
index 000000000..59e50cae8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/Tab.js"
@@ -0,0 +1,17 @@
+import React, { Component } from 'react';
+import store from "./store";
+
+export default class Tab extends Component {
+
+ hide() {
+ store.isTabbarShow = false;
+ }
+
+ render() {
+ return (
+
+ TabBar hide
+
+ )
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/index.js"
new file mode 100644
index 000000000..6a1657d34
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/index.js"
@@ -0,0 +1,9 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import App from './App';
+
+ReactDOM.render(
+ ,
+ document.getElementById('root'),
+)
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/store.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/store.js"
new file mode 100644
index 000000000..ee62354cb
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/01-start/store.js"
@@ -0,0 +1,8 @@
+import {observable} from 'mobx';
+
+const store = observable({
+ isTabbarShow: true,
+ list: [],
+});
+
+export default store;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/.babelrc" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/.babelrc"
new file mode 100644
index 000000000..db07191d9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/.babelrc"
@@ -0,0 +1,13 @@
+{
+ "presets": [
+ "@babel/preset-env"
+ ],
+ "plugins": [
+ [
+ "@babel/plugin-proposal-decorators",
+ {
+ "legacy": true
+ }
+ ]
+ ]
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/README.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/README.md"
new file mode 100644
index 000000000..76ebfcaa8
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/README.md"
@@ -0,0 +1,76 @@
+# 装饰器环境配置
+
+## 1. 配置vscode
+
+...
+
+## 2. 配置babel
+
+```shell
+$ npm i @babel/core @babel/plugin-proposal-decorators @babel/preset-env
+```
+
+创建 .babelrc
+
+```js
+{
+ "presets": [
+ "@babel/preset-env"
+ ],
+ "plugins": [
+ [
+ "@babel/plugin-proposal-decorators",
+ {
+ "legacy": true
+ }
+ ]
+ ]
+}
+```
+
+## 3. 配置脚本
+
+```shell
+$ npm i customize-cra react-app-rewired
+```
+
+`config-overrides.js`
+
+```js
+const path = require('path');
+const { override, addDecoratorsLegacy } = require('customize-cra');
+
+function resolve(dir) {
+ return path.join(__dirname, dir);
+}
+
+const customize = () => (config, env) => {
+ config.resolve.alias['@'] = resolve('src')
+ if (env === 'production') {
+ config.externals = {
+ 'react': 'React',
+ 'react-dom': 'ReactDOM',
+ }
+ }
+ return config
+};
+
+module.exports = override (addDecoratorsLegacy(), customize ())
+```
+
+`package.json`
+
+```
+"scripts": {
+ "start": "react-app-rewired start",
+ "build": "react-app-rewired build",
+ "test": "react-app-rewired test",
+ "eject": "react-app-rewired eject"
+},
+```
+
+## 4. 函数式组件 & 取消订阅
+
+存在销毁又创建的组件需要注意取消订阅
+
+见 Fun.js
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/config-overrides.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/config-overrides.js"
new file mode 100644
index 000000000..496d95731
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/config-overrides.js"
@@ -0,0 +1,19 @@
+const path = require('path');
+const { override, addDecoratorsLegacy } = require('customize-cra');
+
+function resolve(dir) {
+ return path.join(__dirname, dir);
+}
+
+const customize = () => (config, env) => {
+ config.resolve.alias['@'] = resolve('src')
+ if (env === 'production') {
+ config.externals = {
+ 'react': 'React',
+ 'react-dom': 'ReactDOM',
+ }
+ }
+ return config
+};
+
+module.exports = override (addDecoratorsLegacy(), customize ())
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/package.json"
new file mode 100644
index 000000000..4e340237b
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/package.json"
@@ -0,0 +1,43 @@
+{
+ "name": "04_Learn_Log",
+ "version": "1.0.0",
+ "main": "index.js",
+ "license": "MIT",
+ "scripts": {
+ "start": "react-app-rewired start",
+ "build": "react-app-rewired build",
+ "test": "react-app-rewired test",
+ "eject": "react-app-rewired eject"
+ },
+ "dependencies": {
+ "@babel/core": "^7.21.8",
+ "@babel/plugin-proposal-decorators": "^7.21.0",
+ "@babel/preset-env": "^7.21.5",
+ "@reduxjs/toolkit": "^1.9.3",
+ "customize-cra": "^1.0.0",
+ "mobx": "^5.15.7",
+ "react": "^18.0.0",
+ "react-app-rewired": "^2.2.1",
+ "react-dom": "^18.0.0",
+ "react-redux": "^8.0.5",
+ "react-scripts": "^5.0.1",
+ "redux": "^4.2.1"
+ },
+ "eslintConfig": {
+ "extends": [
+ "react-app"
+ ]
+ },
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/public/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/public/index.html"
new file mode 100644
index 000000000..a9225fb9e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/public/index.html"
@@ -0,0 +1,10 @@
+
+
+
+
+ react
+
+
+
+
+
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/App.js"
new file mode 100644
index 000000000..d88050df5
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/App.js"
@@ -0,0 +1,27 @@
+import React, { Component } from 'react';
+import { autorun } from 'mobx';
+import store from './store';
+import Tab from './Tab';
+
+export default class App extends Component {
+
+ state = {
+ isShow: false,
+ }
+
+ componentDidMount() {
+ autorun(() => {
+ this.setState({
+ isShow: store.isTabbarShow,
+ })
+ })
+ }
+
+ render() {
+ return (
+
+ {this.state.isShow && }
+
+ )
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/Fun.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/Fun.js"
new file mode 100644
index 000000000..68ac0d468
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/Fun.js"
@@ -0,0 +1,34 @@
+import React, { useState, useEffect } from 'react';
+
+import store from "./store";
+import { autorun } from 'mobx';
+
+export default function Fun(Props) {
+
+ const [list, setList] = useState([])
+
+ useEffect(() => {
+
+ if (store.list.length === 0) {
+ store.getList();
+ }
+
+ var unsubscribe = autorun(() => {
+ console.log(store.list)
+ setList(store.list)
+ })
+
+ return () => {
+ // 取消订阅
+ unsubscribe()
+ }
+ }, [])
+
+ return (
+
+ {
+ list.map(item =>
item
)
+ }
+
+ )
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/Tab.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/Tab.js"
new file mode 100644
index 000000000..9f4bc7be3
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/Tab.js"
@@ -0,0 +1,19 @@
+import React, { Component } from 'react';
+import store from "./store";
+
+export default class Tab extends Component {
+
+ hide() {
+ // store.isTabbarShow = false;
+ // 使用 mobx action
+ store.changeHide();
+ }
+
+ render() {
+ return (
+
+ TabBar hide
+
+ )
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/index.js"
new file mode 100644
index 000000000..6a1657d34
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/index.js"
@@ -0,0 +1,9 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import App from './App';
+
+ReactDOM.render(
+ ,
+ document.getElementById('root'),
+)
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/store.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/store.js"
new file mode 100644
index 000000000..749acb9d2
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/02-action/src/store.js"
@@ -0,0 +1,39 @@
+import { observable, configure, action } from 'mobx';
+
+configure({
+ enforceActions: 'always', // 'always' 'never'
+})
+
+/*
+const store = observable({
+ isTabbarShow: true,
+ list: [],
+
+ changeShow() {
+ this.isTabbarShow = true;
+ },
+ changeHide() {
+ this.isTabbarShow = false;
+ },
+}, {
+ // 标记方法为action
+ changeShow: action,
+ changeHide: action,
+});
+*/
+
+class Store {
+ @observable isTabbarShow = true
+ @observable list = []
+
+ @action changeShow() {
+ this.isTabbarShow = true;
+ }
+ @action changeHide() {
+ this.isTabbarShow = false;
+ }
+}
+
+const store = new Store();
+
+export default store;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/03-runInAction/store.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/03-runInAction/store.js"
new file mode 100644
index 000000000..aa3ff4e0a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/03-runInAction/store.js"
@@ -0,0 +1,30 @@
+import { observable, configure, action, runInAction } from 'mobx';
+
+configure({
+ enforceActions: 'always', // 'always' 'never'
+})
+
+class Store {
+ @observable isTabbarShow = true
+ @observable list = []
+
+ @action changeShow() {
+ this.isTabbarShow = true;
+ }
+ @action changeHide() {
+ this.isTabbarShow = false;
+ }
+
+ // 处理异步逻辑 runInAction
+ @action getList() {
+ setTimeout(() => {
+ runInAction(() => {
+ this.list = [1, 2, 3];
+ })
+ }, 1000);
+ }
+}
+
+const store = new Store();
+
+export default store;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/App.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/App.js"
new file mode 100644
index 000000000..fadda38f9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/App.js"
@@ -0,0 +1,36 @@
+import React, { Component } from 'react';
+import Fun from './Fun';
+
+// import { autorun } from 'mobx';
+// import store from './store';
+import { inject, observer } from 'mobx-react';
+
+
+// 构建一个父组件 - 高阶组件 mobx-react
+// 注入的名称根据前面传入的名称 ,此处为 store
+@inject('store') // 装饰器inject仅作为引入
+@observer
+export default class App extends Component {
+
+ // state = {
+ // isShow: false,
+ // }
+
+ componentDidMount() {
+ // autorun(() => {
+ // this.setState({
+ // isShow: store.isTabbarShow,
+ // })
+ // })
+
+ console.log(this.props) // this.props.store
+ }
+
+ render() {
+ return (
+
+ {this.props.store.isTabbarShow && }
+
+ )
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/Fun.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/Fun.js"
new file mode 100644
index 000000000..a3c7d493d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/Fun.js"
@@ -0,0 +1,41 @@
+import React, { useEffect } from 'react';
+
+import store from "./store";
+// import { autorun } from 'mobx';
+
+import { Observer } from 'mobx-react';
+
+// 不必再操作订阅/取消订阅
+export default function Fun(Props) {
+
+ // const [list, setList] = useState([])
+
+ useEffect(() => {
+
+ if (store.list.length === 0) {
+ store.getList();
+ }
+
+ // var unsubscribe = autorun(() => {
+ // console.log(store.list)
+ // setList(store.list)
+ // })
+
+ return () => {
+ // // 取消订阅
+ // unsubscribe()
+ }
+ }, [])
+
+ return (
+
+
+ {
+ () => {
+ return store.list.map(item => item
)
+ }
+ }
+
+
+ )
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/README.md" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/README.md"
new file mode 100644
index 000000000..9d3c3cbf9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/README.md"
@@ -0,0 +1,3 @@
+```
+$ npm i mobx-react@5
+```
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/Tab.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/Tab.js"
new file mode 100644
index 000000000..72e99526d
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/Tab.js"
@@ -0,0 +1,20 @@
+import React, { Component } from 'react';
+// import store from "./store";
+import { inject, observer } from 'mobx-react';
+
+@inject('store')
+@observer
+export default class Tab extends Component {
+
+ hide = () => {
+ this.props.store.changeHide();
+ }
+
+ render() {
+ return (
+
+ TabBar hide
+
+ )
+ }
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/index.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/index.js"
new file mode 100644
index 000000000..7175d7635
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/index.js"
@@ -0,0 +1,13 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import App from './App';
+import { Provider } from 'mobx-react';
+import store from './store';
+
+ReactDOM.render(
+
+
+ ,
+ document.getElementById('root'),
+)
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/store.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/store.js"
new file mode 100644
index 000000000..aa3ff4e0a
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/18-mobx/04-mobx-react&\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266/store.js"
@@ -0,0 +1,30 @@
+import { observable, configure, action, runInAction } from 'mobx';
+
+configure({
+ enforceActions: 'always', // 'always' 'never'
+})
+
+class Store {
+ @observable isTabbarShow = true
+ @observable list = []
+
+ @action changeShow() {
+ this.isTabbarShow = true;
+ }
+ @action changeHide() {
+ this.isTabbarShow = false;
+ }
+
+ // 处理异步逻辑 runInAction
+ @action getList() {
+ setTimeout(() => {
+ runInAction(() => {
+ this.list = [1, 2, 3];
+ })
+ }, 1000);
+ }
+}
+
+const store = new Store();
+
+export default store;
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/.babelrc" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/.babelrc"
new file mode 100644
index 000000000..db07191d9
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/.babelrc"
@@ -0,0 +1,13 @@
+{
+ "presets": [
+ "@babel/preset-env"
+ ],
+ "plugins": [
+ [
+ "@babel/plugin-proposal-decorators",
+ {
+ "legacy": true
+ }
+ ]
+ ]
+}
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/config-overrides.js" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/config-overrides.js"
new file mode 100644
index 000000000..496d95731
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/config-overrides.js"
@@ -0,0 +1,19 @@
+const path = require('path');
+const { override, addDecoratorsLegacy } = require('customize-cra');
+
+function resolve(dir) {
+ return path.join(__dirname, dir);
+}
+
+const customize = () => (config, env) => {
+ config.resolve.alias['@'] = resolve('src')
+ if (env === 'production') {
+ config.externals = {
+ 'react': 'React',
+ 'react-dom': 'ReactDOM',
+ }
+ }
+ return config
+};
+
+module.exports = override (addDecoratorsLegacy(), customize ())
\ No newline at end of file
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/package-lock.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/package-lock.json"
new file mode 100644
index 000000000..6e58f0787
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/package-lock.json"
@@ -0,0 +1,12264 @@
+{
+ "name": "04_Learn_Log",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/@ampproject%2fremapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@apideck/better-ajv-errors": {
+ "version": "0.3.6",
+ "resolved": "https://mirrors.tencent.com/npm/@apideck%2fbetter-ajv-errors/-/better-ajv-errors-0.3.6.tgz",
+ "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==",
+ "requires": {
+ "json-schema": "^0.4.0",
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcode-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcompat-data/-/compat-data-7.21.0.tgz",
+ "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g=="
+ },
+ "@babel/core": {
+ "version": "7.21.8",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcore/-/core-7.21.8.tgz",
+ "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==",
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-compilation-targets": "^7.21.5",
+ "@babel/helper-module-transforms": "^7.21.5",
+ "@babel/helpers": "^7.21.5",
+ "@babel/parser": "^7.21.8",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.2",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.21.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcode-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.21.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcompat-data/-/compat-data-7.21.7.tgz",
+ "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA=="
+ },
+ "@babel/generator": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fgenerator/-/generator-7.21.5.tgz",
+ "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
+ "requires": {
+ "@babel/types": "^7.21.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
+ "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
+ "requires": {
+ "@babel/compat-data": "^7.21.5",
+ "@babel/helper-validator-option": "^7.21.0",
+ "browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
+ "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ=="
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ },
+ "@babel/parser": {
+ "version": "7.21.8",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fparser/-/parser-7.21.8.tgz",
+ "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA=="
+ },
+ "@babel/traverse": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftraverse/-/traverse-7.21.5.tgz",
+ "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.21.5",
+ "@babel/types": "^7.21.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/eslint-parser": {
+ "version": "7.19.1",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2feslint-parser/-/eslint-parser-7.19.1.tgz",
+ "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
+ "requires": {
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.21.1",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fgenerator/-/generator-7.21.1.tgz",
+ "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==",
+ "requires": {
+ "@babel/types": "^7.21.0",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fgen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz",
+ "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==",
+ "requires": {
+ "@babel/types": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ },
+ "@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
+ "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
+ "requires": {
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz",
+ "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-member-expression-to-functions": "^7.21.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.21.8",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz",
+ "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
+ "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
+ },
+ "@babel/helper-function-name": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-function-name/-/helper-function-name-7.21.0.tgz",
+ "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
+ "requires": {
+ "@babel/template": "^7.20.7",
+ "@babel/types": "^7.21.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz",
+ "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==",
+ "requires": {
+ "@babel/types": "^7.21.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-module-transforms/-/helper-module-transforms-7.21.5.tgz",
+ "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-module-imports": "^7.21.4",
+ "@babel/helper-simple-access": "^7.21.5",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.21.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcode-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fgenerator/-/generator-7.21.5.tgz",
+ "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
+ "requires": {
+ "@babel/types": "^7.21.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
+ "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ=="
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.21.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-module-imports/-/helper-module-imports-7.21.4.tgz",
+ "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
+ "requires": {
+ "@babel/types": "^7.21.4"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ },
+ "@babel/parser": {
+ "version": "7.21.8",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fparser/-/parser-7.21.8.tgz",
+ "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA=="
+ },
+ "@babel/traverse": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftraverse/-/traverse-7.21.5.tgz",
+ "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.21.5",
+ "@babel/types": "^7.21.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
+ "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-wrap-function": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-replace-supers/-/helper-replace-supers-7.20.7.tgz",
+ "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-simple-access/-/helper-simple-access-7.21.5.tgz",
+ "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
+ "requires": {
+ "@babel/types": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ },
+ "@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.20.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
+ "requires": {
+ "@babel/types": "^7.20.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-validator-option/-/helper-validator-option-7.21.0.tgz",
+ "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ=="
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.20.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-wrap-function/-/helper-wrap-function-7.20.5.tgz",
+ "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==",
+ "requires": {
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelpers/-/helpers-7.21.5.tgz",
+ "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==",
+ "requires": {
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.21.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcode-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fgenerator/-/generator-7.21.5.tgz",
+ "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
+ "requires": {
+ "@babel/types": "^7.21.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
+ "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ=="
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ },
+ "@babel/parser": {
+ "version": "7.21.8",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fparser/-/parser-7.21.8.tgz",
+ "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA=="
+ },
+ "@babel/traverse": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftraverse/-/traverse-7.21.5.tgz",
+ "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.21.5",
+ "@babel/types": "^7.21.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhighlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.21.2",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fparser/-/parser-7.21.2.tgz",
+ "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ=="
+ },
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
+ "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.7"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-class-static-block": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz",
+ "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz",
+ "integrity": "sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/plugin-syntax-decorators": "^7.21.0"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
+ "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
+ "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
+ "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
+ "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+ "requires": {
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.7"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz",
+ "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
+ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-decorators": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz",
+ "integrity": "sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-flow": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz",
+ "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-import-assertions": {
+ "version": "7.20.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz",
+ "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ }
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz",
+ "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
+ "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz",
+ "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz",
+ "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz",
+ "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/template": "^7.20.7"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ }
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.21.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz",
+ "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
+ "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
+ "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
+ "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-flow-strip-types": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz",
+ "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-flow": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz",
+ "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ }
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
+ "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.20.11",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz",
+ "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz",
+ "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.21.5",
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/helper-simple-access": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ }
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.20.11",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz",
+ "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==",
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-validator-identifier": "^7.19.1"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
+ "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.20.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz",
+ "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
+ "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
+ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.21.3",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz",
+ "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
+ "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-constant-elements": {
+ "version": "7.20.2",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz",
+ "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz",
+ "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz",
+ "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-jsx": "^7.18.6",
+ "@babel/types": "^7.21.0"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-development": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
+ "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
+ "requires": {
+ "@babel/plugin-transform-react-jsx": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz",
+ "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz",
+ "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "regenerator-transform": "^0.15.1"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ }
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
+ "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz",
+ "integrity": "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "babel-plugin-polyfill-corejs2": "^0.3.3",
+ "babel-plugin-polyfill-corejs3": "^0.6.0",
+ "babel-plugin-polyfill-regenerator": "^0.4.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz",
+ "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
+ "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.18.9",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
+ "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz",
+ "integrity": "sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-typescript": "^7.20.0"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz",
+ "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ }
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fplugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
+ "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fpreset-env/-/preset-env-7.21.5.tgz",
+ "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==",
+ "requires": {
+ "@babel/compat-data": "^7.21.5",
+ "@babel/helper-compilation-targets": "^7.21.5",
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/helper-validator-option": "^7.21.0",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.7",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-proposal-class-static-block": "^7.21.0",
+ "@babel/plugin-proposal-dynamic-import": "^7.18.6",
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
+ "@babel/plugin-proposal-json-strings": "^7.18.6",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
+ "@babel/plugin-proposal-optional-chaining": "^7.21.0",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.20.0",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-transform-arrow-functions": "^7.21.5",
+ "@babel/plugin-transform-async-to-generator": "^7.20.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
+ "@babel/plugin-transform-block-scoping": "^7.21.0",
+ "@babel/plugin-transform-classes": "^7.21.0",
+ "@babel/plugin-transform-computed-properties": "^7.21.5",
+ "@babel/plugin-transform-destructuring": "^7.21.3",
+ "@babel/plugin-transform-dotall-regex": "^7.18.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.18.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
+ "@babel/plugin-transform-for-of": "^7.21.5",
+ "@babel/plugin-transform-function-name": "^7.18.9",
+ "@babel/plugin-transform-literals": "^7.18.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.18.6",
+ "@babel/plugin-transform-modules-amd": "^7.20.11",
+ "@babel/plugin-transform-modules-commonjs": "^7.21.5",
+ "@babel/plugin-transform-modules-systemjs": "^7.20.11",
+ "@babel/plugin-transform-modules-umd": "^7.18.6",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5",
+ "@babel/plugin-transform-new-target": "^7.18.6",
+ "@babel/plugin-transform-object-super": "^7.18.6",
+ "@babel/plugin-transform-parameters": "^7.21.3",
+ "@babel/plugin-transform-property-literals": "^7.18.6",
+ "@babel/plugin-transform-regenerator": "^7.21.5",
+ "@babel/plugin-transform-reserved-words": "^7.18.6",
+ "@babel/plugin-transform-shorthand-properties": "^7.18.6",
+ "@babel/plugin-transform-spread": "^7.20.7",
+ "@babel/plugin-transform-sticky-regex": "^7.18.6",
+ "@babel/plugin-transform-template-literals": "^7.18.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.18.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.21.5",
+ "@babel/plugin-transform-unicode-regex": "^7.18.6",
+ "@babel/preset-modules": "^0.1.5",
+ "@babel/types": "^7.21.5",
+ "babel-plugin-polyfill-corejs2": "^0.3.3",
+ "babel-plugin-polyfill-corejs3": "^0.6.0",
+ "babel-plugin-polyfill-regenerator": "^0.4.1",
+ "core-js-compat": "^3.25.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "@babel/compat-data": {
+ "version": "7.21.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fcompat-data/-/compat-data-7.21.7.tgz",
+ "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA=="
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
+ "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
+ "requires": {
+ "@babel/compat-data": "^7.21.5",
+ "@babel/helper-validator-option": "^7.21.0",
+ "browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fhelper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ },
+ "@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fpreset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/preset-react": {
+ "version": "7.18.6",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fpreset-react/-/preset-react-7.18.6.tgz",
+ "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-transform-react-display-name": "^7.18.6",
+ "@babel/plugin-transform-react-jsx": "^7.18.6",
+ "@babel/plugin-transform-react-jsx-development": "^7.18.6",
+ "@babel/plugin-transform-react-pure-annotations": "^7.18.6"
+ }
+ },
+ "@babel/preset-typescript": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fpreset-typescript/-/preset-typescript-7.21.0.tgz",
+ "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-validator-option": "^7.21.0",
+ "@babel/plugin-transform-typescript": "^7.21.0"
+ }
+ },
+ "@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fregjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ },
+ "@babel/runtime": {
+ "version": "7.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2fruntime/-/runtime-7.21.0.tgz",
+ "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.11"
+ }
+ },
+ "@babel/template": {
+ "version": "7.20.7",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftemplate/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.21.2",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftraverse/-/traverse-7.21.2.tgz",
+ "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.21.1",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.21.2",
+ "@babel/types": "^7.21.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.21.2",
+ "resolved": "https://mirrors.tencent.com/npm/@babel%2ftypes/-/types-7.21.2.tgz",
+ "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/@bcoe%2fv8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
+ },
+ "@csstools/normalize.css": {
+ "version": "12.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fnormalize.css/-/normalize.css-12.0.0.tgz",
+ "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg=="
+ },
+ "@csstools/postcss-cascade-layers": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
+ "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
+ "requires": {
+ "@csstools/selector-specificity": "^2.0.2",
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "@csstools/postcss-color-function": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-color-function/-/postcss-color-function-1.1.1.tgz",
+ "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
+ "requires": {
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-font-format-keywords": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
+ "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-hwb-function": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
+ "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-ic-unit": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
+ "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
+ "requires": {
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-is-pseudo-class": {
+ "version": "2.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
+ "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
+ "requires": {
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "@csstools/postcss-nested-calc": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
+ "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-normalize-display-values": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
+ "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-oklab-function": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
+ "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
+ "requires": {
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-progressive-custom-properties": {
+ "version": "1.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
+ "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-stepped-value-functions": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
+ "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-text-decoration-shorthand": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
+ "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-trigonometric-functions": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
+ "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-unset-value": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fpostcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
+ "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g=="
+ },
+ "@csstools/selector-specificity": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/@csstools%2fselector-specificity/-/selector-specificity-2.1.1.tgz",
+ "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw=="
+ },
+ "@eslint/eslintrc": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/@eslint%2feslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.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": {
+ "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=="
+ },
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ }
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes%2fconfig-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes%2fmodule-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/@humanwhocodes%2fobject-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
+ },
+ "@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@istanbuljs%2fload-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+ }
+ }
+ },
+ "@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@istanbuljs%2fschema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="
+ },
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fconsole/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@jest/core": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fcore/-/core-27.5.1.tgz",
+ "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/reporters": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.8.1",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^27.5.1",
+ "jest-config": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-resolve-dependencies": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "jest-watcher": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@jest/environment": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fenvironment/-/environment-27.5.1.tgz",
+ "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
+ "requires": {
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ffake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ }
+ },
+ "@jest/globals": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fglobals/-/globals-27.5.1.tgz",
+ "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "expect": "^27.5.1"
+ }
+ },
+ "@jest/reporters": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2freporters/-/reporters-27.5.1.tgz",
+ "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-haste-map": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^4.0.1",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^8.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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@jest/schemas": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fschemas/-/schemas-28.1.3.tgz",
+ "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
+ "requires": {
+ "@sinclair/typebox": "^0.24.1"
+ }
+ },
+ "@jest/source-map": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fsource-map/-/source-map-27.5.1.tgz",
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ftest-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ftest-sequencer/-/test-sequencer-27.5.1.tgz",
+ "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
+ "requires": {
+ "@jest/test-result": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-runtime": "^27.5.1"
+ }
+ },
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ftransform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ftypes/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fgen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "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.0",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fresolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fset-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fsource-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fgen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2fsourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://mirrors.tencent.com/npm/@jridgewell%2ftrace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "@leichtgewicht/ip-codec": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/@leichtgewicht%2fip-codec/-/ip-codec-2.0.4.tgz",
+ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
+ },
+ "@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://mirrors.tencent.com/npm/@nicolo-ribaudo%2feslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "requires": {
+ "eslint-scope": "5.1.1"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ }
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib%2ffs.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://mirrors.tencent.com/npm/@nodelib%2ffs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://mirrors.tencent.com/npm/@nodelib%2ffs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@pmmmwh/react-refresh-webpack-plugin": {
+ "version": "0.5.10",
+ "resolved": "https://mirrors.tencent.com/npm/@pmmmwh%2freact-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
+ "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==",
+ "requires": {
+ "ansi-html-community": "^0.0.8",
+ "common-path-prefix": "^3.0.0",
+ "core-js-pure": "^3.23.3",
+ "error-stack-parser": "^2.0.6",
+ "find-up": "^5.0.0",
+ "html-entities": "^2.1.0",
+ "loader-utils": "^2.0.4",
+ "schema-utils": "^3.0.0",
+ "source-map": "^0.7.3"
+ }
+ },
+ "@reduxjs/toolkit": {
+ "version": "1.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/@reduxjs%2ftoolkit/-/toolkit-1.9.3.tgz",
+ "integrity": "sha512-GU2TNBQVofL09VGmuSioNPQIu6Ml0YLf4EJhgj0AvBadRlCGzUWet8372LjvO4fqKZF2vH1xU0htAa7BrK9pZg==",
+ "requires": {
+ "immer": "^9.0.16",
+ "redux": "^4.2.0",
+ "redux-thunk": "^2.4.2",
+ "reselect": "^4.1.7"
+ }
+ },
+ "@rollup/plugin-babel": {
+ "version": "5.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup%2fplugin-babel/-/plugin-babel-5.3.1.tgz",
+ "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.10.4",
+ "@rollup/pluginutils": "^3.1.0"
+ }
+ },
+ "@rollup/plugin-node-resolve": {
+ "version": "11.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup%2fplugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
+ "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
+ "requires": {
+ "@rollup/pluginutils": "^3.1.0",
+ "@types/resolve": "1.17.1",
+ "builtin-modules": "^3.1.0",
+ "deepmerge": "^4.2.2",
+ "is-module": "^1.0.0",
+ "resolve": "^1.19.0"
+ }
+ },
+ "@rollup/plugin-replace": {
+ "version": "2.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup%2fplugin-replace/-/plugin-replace-2.4.2.tgz",
+ "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
+ "requires": {
+ "@rollup/pluginutils": "^3.1.0",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@rollup%2fpluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "requires": {
+ "@types/estree": "0.0.39",
+ "estree-walker": "^1.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "dependencies": {
+ "@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2festree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
+ }
+ }
+ },
+ "@rushstack/eslint-patch": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/@rushstack%2feslint-patch/-/eslint-patch-1.2.0.tgz",
+ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
+ },
+ "@sinclair/typebox": {
+ "version": "0.24.51",
+ "resolved": "https://mirrors.tencent.com/npm/@sinclair%2ftypebox/-/typebox-0.24.51.tgz",
+ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
+ },
+ "@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://mirrors.tencent.com/npm/@sinonjs%2fcommons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "8.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@sinonjs%2ffake-timers/-/fake-timers-8.1.0.tgz",
+ "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "@surma/rollup-plugin-off-main-thread": {
+ "version": "2.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/@surma%2frollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
+ "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
+ "requires": {
+ "ejs": "^3.1.6",
+ "json5": "^2.2.0",
+ "magic-string": "^0.25.0",
+ "string.prototype.matchall": "^4.0.6"
+ }
+ },
+ "@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "5.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
+ "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg=="
+ },
+ "@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "5.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
+ "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg=="
+ },
+ "@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
+ "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA=="
+ },
+ "@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
+ "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ=="
+ },
+ "@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "5.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
+ "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg=="
+ },
+ "@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "5.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
+ "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw=="
+ },
+ "@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "5.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
+ "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q=="
+ },
+ "@svgr/babel-plugin-transform-svg-component": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
+ "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ=="
+ },
+ "@svgr/babel-preset": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fbabel-preset/-/babel-preset-5.5.0.tgz",
+ "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
+ "requires": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
+ "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
+ }
+ },
+ "@svgr/core": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fcore/-/core-5.5.0.tgz",
+ "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
+ "requires": {
+ "@svgr/plugin-jsx": "^5.5.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^7.0.0"
+ }
+ },
+ "@svgr/hast-util-to-babel-ast": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fhast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
+ "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
+ "requires": {
+ "@babel/types": "^7.12.6"
+ }
+ },
+ "@svgr/plugin-jsx": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fplugin-jsx/-/plugin-jsx-5.5.0.tgz",
+ "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@svgr/babel-preset": "^5.5.0",
+ "@svgr/hast-util-to-babel-ast": "^5.5.0",
+ "svg-parser": "^2.0.2"
+ }
+ },
+ "@svgr/plugin-svgo": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fplugin-svgo/-/plugin-svgo-5.5.0.tgz",
+ "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
+ "requires": {
+ "cosmiconfig": "^7.0.0",
+ "deepmerge": "^4.2.2",
+ "svgo": "^1.2.2"
+ }
+ },
+ "@svgr/webpack": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/@svgr%2fwebpack/-/webpack-5.5.0.tgz",
+ "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.12.1",
+ "@babel/preset-env": "^7.12.1",
+ "@babel/preset-react": "^7.12.5",
+ "@svgr/core": "^5.5.0",
+ "@svgr/plugin-jsx": "^5.5.0",
+ "@svgr/plugin-svgo": "^5.5.0",
+ "loader-utils": "^2.0.0"
+ }
+ },
+ "@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/@tootallnate%2fonce/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
+ },
+ "@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/@trysound%2fsax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
+ },
+ "@types/babel__core": {
+ "version": "7.20.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fbabel__core/-/babel__core-7.20.0.tgz",
+ "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==",
+ "requires": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "@types/babel__generator": {
+ "version": "7.6.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fbabel__generator/-/babel__generator-7.6.4.tgz",
+ "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__template": {
+ "version": "7.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fbabel__template/-/babel__template-7.4.1.tgz",
+ "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.18.3",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fbabel__traverse/-/babel__traverse-7.18.3.tgz",
+ "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==",
+ "requires": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "@types/body-parser": {
+ "version": "1.19.2",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fbody-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/bonjour": {
+ "version": "3.5.10",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fbonjour/-/bonjour-3.5.10.tgz",
+ "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/connect": {
+ "version": "3.4.35",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fconnect/-/connect-3.4.35.tgz",
+ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/connect-history-api-fallback": {
+ "version": "1.3.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fconnect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz",
+ "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==",
+ "requires": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/eslint": {
+ "version": "8.21.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2feslint/-/eslint-8.21.1.tgz",
+ "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==",
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2feslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2festree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ=="
+ },
+ "@types/express": {
+ "version": "4.17.17",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fexpress/-/express-4.17.17.tgz",
+ "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.33",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fexpress-serve-static-core/-/express-serve-static-core-4.17.33.tgz",
+ "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==",
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "@types/graceful-fs": {
+ "version": "4.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fgraceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fhoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "requires": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
+ "@types/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fhtml-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
+ },
+ "@types/http-proxy": {
+ "version": "1.17.10",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fhttp-proxy/-/http-proxy-1.17.10.tgz",
+ "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fistanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fistanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fistanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fjson-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fjson5/-/json5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
+ },
+ "@types/mime": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fmime/-/mime-3.0.1.tgz",
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
+ },
+ "@types/node": {
+ "version": "18.14.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fnode/-/node-18.14.1.tgz",
+ "integrity": "sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ=="
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fparse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
+ },
+ "@types/prettier": {
+ "version": "2.7.2",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fprettier/-/prettier-2.7.2.tgz",
+ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg=="
+ },
+ "@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fprop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "@types/q": {
+ "version": "1.5.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fq/-/q-1.5.5.tgz",
+ "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ=="
+ },
+ "@types/qs": {
+ "version": "6.9.7",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fqs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
+ },
+ "@types/range-parser": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2frange-parser/-/range-parser-1.2.4.tgz",
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
+ },
+ "@types/react": {
+ "version": "18.0.34",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2freact/-/react-18.0.34.tgz",
+ "integrity": "sha512-NO1UO8941541CJl1BeOXi8a9dNKFK09Gnru5ZJqkm4Q3/WoQJtHvmwt0VX0SB9YCEwe7TfSSxDuaNmx6H2BAIQ==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/resolve": {
+ "version": "1.17.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fresolve/-/resolve-1.17.1.tgz",
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fretry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
+ },
+ "@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fscheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
+ "@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fsemver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw=="
+ },
+ "@types/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fserve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
+ "requires": {
+ "@types/express": "*"
+ }
+ },
+ "@types/serve-static": {
+ "version": "1.15.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fserve-static/-/serve-static-1.15.1.tgz",
+ "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==",
+ "requires": {
+ "@types/mime": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/sockjs": {
+ "version": "0.3.33",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fsockjs/-/sockjs-0.3.33.tgz",
+ "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fstack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/trusted-types": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2ftrusted-types/-/trusted-types-2.0.3.tgz",
+ "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g=="
+ },
+ "@types/use-sync-external-store": {
+ "version": "0.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fuse-sync-external-store/-/use-sync-external-store-0.0.3.tgz",
+ "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
+ },
+ "@types/ws": {
+ "version": "8.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fws/-/ws-8.5.4.tgz",
+ "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fyargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "21.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fyargs-parser/-/yargs-parser-21.0.0.tgz",
+ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2feslint-plugin/-/eslint-plugin-5.53.0.tgz",
+ "integrity": "sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw==",
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.53.0",
+ "@typescript-eslint/type-utils": "5.53.0",
+ "@typescript-eslint/utils": "5.53.0",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2fexperimental-utils/-/experimental-utils-5.53.0.tgz",
+ "integrity": "sha512-4SklZEwRn0jqkhtW+pPZpbKFXprwGneBndRM0TGzJu/LWdb9QV2hBgFIVU9AREo02BzqFvyG/ypd+xAW5YGhXw==",
+ "requires": {
+ "@typescript-eslint/utils": "5.53.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2fparser/-/parser-5.53.0.tgz",
+ "integrity": "sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==",
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.53.0",
+ "@typescript-eslint/types": "5.53.0",
+ "@typescript-eslint/typescript-estree": "5.53.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2fscope-manager/-/scope-manager-5.53.0.tgz",
+ "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==",
+ "requires": {
+ "@typescript-eslint/types": "5.53.0",
+ "@typescript-eslint/visitor-keys": "5.53.0"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2ftype-utils/-/type-utils-5.53.0.tgz",
+ "integrity": "sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw==",
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.53.0",
+ "@typescript-eslint/utils": "5.53.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2ftypes/-/types-5.53.0.tgz",
+ "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A=="
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2ftypescript-estree/-/typescript-estree-5.53.0.tgz",
+ "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==",
+ "requires": {
+ "@typescript-eslint/types": "5.53.0",
+ "@typescript-eslint/visitor-keys": "5.53.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2futils/-/utils-5.53.0.tgz",
+ "integrity": "sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.53.0",
+ "@typescript-eslint/types": "5.53.0",
+ "@typescript-eslint/typescript-estree": "5.53.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ }
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.53.0",
+ "resolved": "https://mirrors.tencent.com/npm/@typescript-eslint%2fvisitor-keys/-/visitor-keys-5.53.0.tgz",
+ "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==",
+ "requires": {
+ "@typescript-eslint/types": "5.53.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2ffloating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ=="
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fhelper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg=="
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fhelper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA=="
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fhelper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fhelper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q=="
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fhelper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fleb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2futf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ=="
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fwasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fwasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fwasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fwasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/@webassemblyjs%2fwast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/@xtuc%2fieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/@xtuc%2flong/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
+ },
+ "abab": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
+ },
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
+ "acorn": {
+ "version": "8.8.2",
+ "resolved": "https://mirrors.tencent.com/npm/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
+ },
+ "acorn-globals": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+ }
+ }
+ },
+ "acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw=="
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
+ },
+ "acorn-node": {
+ "version": "1.8.2",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-node/-/acorn-node-1.8.2.tgz",
+ "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
+ "requires": {
+ "acorn": "^7.0.0",
+ "acorn-walk": "^7.0.0",
+ "xtend": "^4.0.2"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+ }
+ }
+ },
+ "acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
+ },
+ "address": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/address/-/address-1.2.2.tgz",
+ "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="
+ },
+ "adjust-sourcemap-loader": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
+ "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
+ "requires": {
+ "loader-utils": "^2.0.0",
+ "regex-parser": "^2.2.11"
+ }
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "requires": {
+ "debug": "4"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "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"
+ }
+ },
+ "ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "requires": {
+ "ajv": "^8.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ }
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
+ },
+ "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"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw=="
+ },
+ "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": "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==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "arg": {
+ "version": "5.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://mirrors.tencent.com/npm/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "aria-query": {
+ "version": "5.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/aria-query/-/aria-query-5.1.3.tgz",
+ "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
+ "requires": {
+ "deep-equal": "^2.0.5"
+ }
+ },
+ "array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/array-flatten/-/array-flatten-2.1.2.tgz",
+ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
+ },
+ "array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "is-string": "^1.0.7"
+ }
+ },
+ "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=="
+ },
+ "array.prototype.flat": {
+ "version": "1.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.reduce": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz",
+ "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array.prototype.tosorted": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
+ },
+ "async": {
+ "version": "3.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "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=="
+ },
+ "autoprefixer": {
+ "version": "10.4.13",
+ "resolved": "https://mirrors.tencent.com/npm/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-lite": "^1.0.30001426",
+ "fraction.js": "^4.2.0",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
+ },
+ "axe-core": {
+ "version": "4.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/axe-core/-/axe-core-4.6.3.tgz",
+ "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg=="
+ },
+ "axobject-query": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/axobject-query/-/axobject-query-3.1.1.tgz",
+ "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
+ "requires": {
+ "deep-equal": "^2.0.5"
+ }
+ },
+ "babel-jest": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-jest/-/babel-jest-27.5.1.tgz",
+ "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
+ "requires": {
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^27.5.1",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "babel-loader": {
+ "version": "8.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/babel-loader/-/babel-loader-8.3.0.tgz",
+ "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
+ "requires": {
+ "find-cache-dir": "^3.3.1",
+ "loader-utils": "^2.0.0",
+ "make-dir": "^3.1.0",
+ "schema-utils": "^2.6.5"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "requires": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
+ "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
+ "requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.0.0",
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-plugin-macros": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
+ "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "cosmiconfig": "^7.0.0",
+ "resolve": "^1.19.0"
+ }
+ },
+ "babel-plugin-named-asset-import": {
+ "version": "0.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
+ "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q=="
+ },
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
+ "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
+ "requires": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "semver": "^6.1.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz",
+ "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "core-js-compat": "^3.25.1"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
+ "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3"
+ }
+ },
+ "babel-plugin-transform-react-remove-prop-types": {
+ "version": "0.4.24",
+ "resolved": "https://mirrors.tencent.com/npm/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
+ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
+ },
+ "babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "requires": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
+ "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
+ "requires": {
+ "babel-plugin-jest-hoist": "^27.5.1",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ }
+ },
+ "babel-preset-react-app": {
+ "version": "10.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz",
+ "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==",
+ "requires": {
+ "@babel/core": "^7.16.0",
+ "@babel/plugin-proposal-class-properties": "^7.16.0",
+ "@babel/plugin-proposal-decorators": "^7.16.4",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.16.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.16.0",
+ "@babel/plugin-proposal-private-methods": "^7.16.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.16.0",
+ "@babel/plugin-transform-react-display-name": "^7.16.0",
+ "@babel/plugin-transform-runtime": "^7.16.4",
+ "@babel/preset-env": "^7.16.4",
+ "@babel/preset-react": "^7.16.0",
+ "@babel/preset-typescript": "^7.16.0",
+ "@babel/runtime": "^7.16.3",
+ "babel-plugin-macros": "^3.1.0",
+ "babel-plugin-transform-react-remove-prop-types": "^0.4.24"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
+ },
+ "bfj": {
+ "version": "7.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/bfj/-/bfj-7.0.2.tgz",
+ "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==",
+ "requires": {
+ "bluebird": "^3.5.5",
+ "check-types": "^11.1.1",
+ "hoopy": "^0.1.4",
+ "tryer": "^1.0.1"
+ }
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://mirrors.tencent.com/npm/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+ },
+ "body-parser": {
+ "version": "1.20.1",
+ "resolved": "https://mirrors.tencent.com/npm/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "bonjour-service": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/bonjour-service/-/bonjour-service-1.1.0.tgz",
+ "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==",
+ "requires": {
+ "array-flatten": "^2.1.2",
+ "dns-equal": "^1.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "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"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browser-process-hrtime": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
+ },
+ "browserslist": {
+ "version": "4.21.5",
+ "resolved": "https://mirrors.tencent.com/npm/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw=="
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ }
+ }
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ },
+ "camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001458",
+ "resolved": "https://mirrors.tencent.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz",
+ "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w=="
+ },
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
+ "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw=="
+ },
+ "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==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
+ },
+ "check-types": {
+ "version": "11.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/check-types/-/check-types-11.2.2.tgz",
+ "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA=="
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://mirrors.tencent.com/npm/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"
+ },
+ "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==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="
+ },
+ "ci-info": {
+ "version": "3.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/ci-info/-/ci-info-3.8.0.tgz",
+ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw=="
+ },
+ "cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
+ },
+ "clean-css": {
+ "version": "5.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/clean-css/-/clean-css-5.3.2.tgz",
+ "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
+ "requires": {
+ "source-map": "~0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "coa": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/coa/-/coa-2.0.2.tgz",
+ "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
+ "requires": {
+ "@types/q": "^1.5.1",
+ "chalk": "^2.4.1",
+ "q": "^1.1.2"
+ }
+ },
+ "collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
+ },
+ "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==",
+ "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="
+ },
+ "colord": {
+ "version": "2.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
+ },
+ "colorette": {
+ "version": "2.0.19",
+ "resolved": "https://mirrors.tencent.com/npm/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
+ },
+ "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==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ },
+ "common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w=="
+ },
+ "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=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ },
+ "compressible": {
+ "version": "2.0.18",
+ "resolved": "https://mirrors.tencent.com/npm/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "requires": {
+ "mime-db": ">= 1.43.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://mirrors.tencent.com/npm/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "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=="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "confusing-browser-globals": {
+ "version": "1.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="
+ },
+ "connect-history-api-fallback": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA=="
+ },
+ "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"
+ }
+ },
+ "content-type": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
+ },
+ "convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "core-js": {
+ "version": "3.28.0",
+ "resolved": "https://mirrors.tencent.com/npm/core-js/-/core-js-3.28.0.tgz",
+ "integrity": "sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw=="
+ },
+ "core-js-compat": {
+ "version": "3.28.0",
+ "resolved": "https://mirrors.tencent.com/npm/core-js-compat/-/core-js-compat-3.28.0.tgz",
+ "integrity": "sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg==",
+ "requires": {
+ "browserslist": "^4.21.5"
+ }
+ },
+ "core-js-pure": {
+ "version": "3.28.0",
+ "resolved": "https://mirrors.tencent.com/npm/core-js-pure/-/core-js-pure-3.28.0.tgz",
+ "integrity": "sha512-DSOVleA9/v3LNj/vFxAPfUHttKTzrB2RXhAPvR5TPXn4vrra3Z2ssytvRyt8eruJwAfwAiFADEbrjcRdcvPLQQ=="
+ },
+ "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=="
+ },
+ "cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ },
+ "css-blank-pseudo": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz",
+ "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.9"
+ }
+ },
+ "css-declaration-sorter": {
+ "version": "6.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
+ "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w=="
+ },
+ "css-has-pseudo": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz",
+ "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.9"
+ }
+ },
+ "css-loader": {
+ "version": "6.7.3",
+ "resolved": "https://mirrors.tencent.com/npm/css-loader/-/css-loader-6.7.3.tgz",
+ "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==",
+ "requires": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.19",
+ "postcss-modules-extract-imports": "^3.0.0",
+ "postcss-modules-local-by-default": "^4.0.0",
+ "postcss-modules-scope": "^3.0.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.3.8"
+ }
+ },
+ "css-minimizer-webpack-plugin": {
+ "version": "3.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz",
+ "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==",
+ "requires": {
+ "cssnano": "^5.0.6",
+ "jest-worker": "^27.0.2",
+ "postcss": "^8.3.5",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "css-prefers-color-scheme": {
+ "version": "6.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
+ "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA=="
+ },
+ "css-select": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "css-select-base-adapter": {
+ "version": "0.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
+ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="
+ },
+ "css-tree": {
+ "version": "1.0.0-alpha.37",
+ "resolved": "https://mirrors.tencent.com/npm/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
+ "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+ "requires": {
+ "mdn-data": "2.0.4",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "css-what": {
+ "version": "3.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="
+ },
+ "cssdb": {
+ "version": "7.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/cssdb/-/cssdb-7.4.1.tgz",
+ "integrity": "sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ=="
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
+ },
+ "cssnano": {
+ "version": "5.1.15",
+ "resolved": "https://mirrors.tencent.com/npm/cssnano/-/cssnano-5.1.15.tgz",
+ "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==",
+ "requires": {
+ "cssnano-preset-default": "^5.2.14",
+ "lilconfig": "^2.0.3",
+ "yaml": "^1.10.2"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "5.2.14",
+ "resolved": "https://mirrors.tencent.com/npm/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
+ "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
+ "requires": {
+ "css-declaration-sorter": "^6.3.1",
+ "cssnano-utils": "^3.1.0",
+ "postcss-calc": "^8.2.3",
+ "postcss-colormin": "^5.3.1",
+ "postcss-convert-values": "^5.1.3",
+ "postcss-discard-comments": "^5.1.2",
+ "postcss-discard-duplicates": "^5.1.0",
+ "postcss-discard-empty": "^5.1.1",
+ "postcss-discard-overridden": "^5.1.0",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.4",
+ "postcss-minify-font-values": "^5.1.0",
+ "postcss-minify-gradients": "^5.1.1",
+ "postcss-minify-params": "^5.1.4",
+ "postcss-minify-selectors": "^5.2.1",
+ "postcss-normalize-charset": "^5.1.0",
+ "postcss-normalize-display-values": "^5.1.0",
+ "postcss-normalize-positions": "^5.1.1",
+ "postcss-normalize-repeat-style": "^5.1.1",
+ "postcss-normalize-string": "^5.1.0",
+ "postcss-normalize-timing-functions": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
+ "postcss-normalize-url": "^5.1.0",
+ "postcss-normalize-whitespace": "^5.1.1",
+ "postcss-ordered-values": "^5.1.3",
+ "postcss-reduce-initial": "^5.1.2",
+ "postcss-reduce-transforms": "^5.1.0",
+ "postcss-svgo": "^5.1.0",
+ "postcss-unique-selectors": "^5.1.1"
+ }
+ },
+ "cssnano-utils": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
+ "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA=="
+ },
+ "csso": {
+ "version": "4.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "requires": {
+ "css-tree": "^1.1.2"
+ },
+ "dependencies": {
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ }
+ },
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://mirrors.tencent.com/npm/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "cssom": {
+ "version": "0.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
+ },
+ "cssstyle": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "requires": {
+ "cssom": "~0.3.6"
+ },
+ "dependencies": {
+ "cssom": {
+ "version": "0.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+ }
+ }
+ },
+ "csstype": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
+ "customize-cra": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/customize-cra/-/customize-cra-1.0.0.tgz",
+ "integrity": "sha512-DbtaLuy59224U+xCiukkxSq8clq++MOtJ1Et7LED1fLszWe88EoblEYFBJ895sB1mC6B4uu3xPT/IjClELhMbA==",
+ "requires": {
+ "lodash.flow": "^3.5.0"
+ }
+ },
+ "damerau-levenshtein": {
+ "version": "1.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
+ },
+ "data-urls": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
+ "requires": {
+ "abab": "^2.0.3",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "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=="
+ },
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw="
+ },
+ "deep-equal": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/deep-equal/-/deep-equal-2.2.0.tgz",
+ "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-get-iterator": "^1.1.2",
+ "get-intrinsic": "^1.1.3",
+ "is-arguments": "^1.1.1",
+ "is-array-buffer": "^3.0.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ }
+ },
+ "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=="
+ },
+ "deepmerge": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/deepmerge/-/deepmerge-4.3.0.tgz",
+ "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og=="
+ },
+ "default-gateway": {
+ "version": "6.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "requires": {
+ "execa": "^5.0.0"
+ }
+ },
+ "define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
+ },
+ "define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "defined": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/defined/-/defined-1.0.1.tgz",
+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q=="
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ },
+ "detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
+ },
+ "detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
+ },
+ "detect-port-alt": {
+ "version": "1.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
+ "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "detective": {
+ "version": "5.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
+ "requires": {
+ "acorn-node": "^1.8.2",
+ "defined": "^1.0.0",
+ "minimist": "^1.2.6"
+ }
+ },
+ "didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
+ },
+ "diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "dlv": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
+ },
+ "dns-packet": {
+ "version": "5.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/dns-packet/-/dns-packet-5.4.0.tgz",
+ "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
+ "requires": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "requires": {
+ "utila": "~0.4"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "domexception": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "requires": {
+ "webidl-conversions": "^5.0.0"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="
+ }
+ }
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "requires": {
+ "domelementtype": "^2.2.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ }
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ }
+ }
+ },
+ "dotenv": {
+ "version": "10.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
+ },
+ "dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
+ },
+ "duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "ejs": {
+ "version": "3.1.8",
+ "resolved": "https://mirrors.tencent.com/npm/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
+ "requires": {
+ "jake": "^10.8.5"
+ }
+ },
+ "electron-to-chromium": {
+ "version": "1.4.311",
+ "resolved": "https://mirrors.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz",
+ "integrity": "sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw=="
+ },
+ "emittery": {
+ "version": "0.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/emittery/-/emittery-0.8.1.tgz",
+ "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg=="
+ },
+ "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=="
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "enhanced-resolve": {
+ "version": "5.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
+ "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ }
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ },
+ "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==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "error-stack-parser": {
+ "version": "2.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "requires": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "es-abstract": {
+ "version": "1.21.1",
+ "resolved": "https://mirrors.tencent.com/npm/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ }
+ },
+ "es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
+ },
+ "es-get-iterator": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
+ "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "is-arguments": "^1.1.1",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.7",
+ "isarray": "^2.0.5",
+ "stop-iteration-iterator": "^1.0.0"
+ }
+ },
+ "es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://mirrors.tencent.com/npm/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
+ },
+ "es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "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="
+ },
+ "escodegen": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "optional": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ }
+ }
+ },
+ "eslint": {
+ "version": "8.34.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint/-/eslint-8.34.0.tgz",
+ "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==",
+ "requires": {
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "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.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.4.0",
+ "esquery": "^1.4.0",
+ "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",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "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.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "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==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://mirrors.tencent.com/npm/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "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=="
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "eslint-config-react-app": {
+ "version": "7.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
+ "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==",
+ "requires": {
+ "@babel/core": "^7.16.0",
+ "@babel/eslint-parser": "^7.16.3",
+ "@rushstack/eslint-patch": "^1.1.0",
+ "@typescript-eslint/eslint-plugin": "^5.5.0",
+ "@typescript-eslint/parser": "^5.5.0",
+ "babel-preset-react-app": "^10.0.1",
+ "confusing-browser-globals": "^1.0.11",
+ "eslint-plugin-flowtype": "^8.0.3",
+ "eslint-plugin-import": "^2.25.3",
+ "eslint-plugin-jest": "^25.3.0",
+ "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-plugin-react": "^7.27.1",
+ "eslint-plugin-react-hooks": "^4.3.0",
+ "eslint-plugin-testing-library": "^5.0.1"
+ }
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.7",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+ "requires": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.7.4",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
+ "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
+ "requires": {
+ "debug": "^3.2.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-plugin-flowtype": {
+ "version": "8.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz",
+ "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==",
+ "requires": {
+ "lodash": "^4.17.21",
+ "string-natural-compare": "^3.0.1"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.27.5",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
+ "has": "^1.0.3",
+ "is-core-module": "^2.11.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "eslint-plugin-jest": {
+ "version": "25.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz",
+ "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==",
+ "requires": {
+ "@typescript-eslint/experimental-utils": "^5.0.0"
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "6.7.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
+ "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
+ "requires": {
+ "@babel/runtime": "^7.20.7",
+ "aria-query": "^5.1.3",
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "ast-types-flow": "^0.0.7",
+ "axe-core": "^4.6.2",
+ "axobject-query": "^3.1.1",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^3.3.3",
+ "language-tags": "=1.0.5",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.32.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
+ "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "resolve": {
+ "version": "2.0.0-next.4",
+ "resolved": "https://mirrors.tencent.com/npm/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "eslint-plugin-react-hooks": {
+ "version": "4.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g=="
+ },
+ "eslint-plugin-testing-library": {
+ "version": "5.10.2",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.2.tgz",
+ "integrity": "sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw==",
+ "requires": {
+ "@typescript-eslint/utils": "^5.43.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="
+ },
+ "eslint-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==",
+ "requires": {
+ "@types/eslint": "^7.29.0 || ^8.4.1",
+ "jest-worker": "^28.0.2",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "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=="
+ },
+ "jest-worker": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/jest-worker/-/jest-worker-28.1.3.tgz",
+ "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "espree": {
+ "version": "9.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esquery": {
+ "version": "1.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/esquery/-/esquery-1.4.2.tgz",
+ "integrity": "sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==",
+ "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==",
+ "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=="
+ },
+ "estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "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"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
+ },
+ "expect": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/expect/-/expect-27.5.1.tgz",
+ "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1"
+ }
+ },
+ "express": {
+ "version": "4.18.2",
+ "resolved": "https://mirrors.tencent.com/npm/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "requires": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.11.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "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=="
+ },
+ "fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://mirrors.tencent.com/npm/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "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==",
+ "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=="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "fastq": {
+ "version": "1.15.0",
+ "resolved": "https://mirrors.tencent.com/npm/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://mirrors.tencent.com/npm/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "requires": {
+ "bser": "2.1.1"
+ }
+ },
+ "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==",
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "file-loader": {
+ "version": "6.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/file-loader/-/file-loader-6.2.0.tgz",
+ "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+ "requires": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ }
+ },
+ "filelist": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "requires": {
+ "minimatch": "^5.0.1"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
+ "filesize": {
+ "version": "8.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/filesize/-/filesize-8.0.7.tgz",
+ "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ=="
+ },
+ "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==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "3.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
+ },
+ "follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://mirrors.tencent.com/npm/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "6.5.2",
+ "resolved": "https://mirrors.tencent.com/npm/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz",
+ "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==",
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@types/json-schema": "^7.0.5",
+ "chalk": "^4.1.0",
+ "chokidar": "^3.4.2",
+ "cosmiconfig": "^6.0.0",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^9.0.0",
+ "glob": "^7.1.6",
+ "memfs": "^3.1.2",
+ "minimatch": "^3.0.4",
+ "schema-utils": "2.7.0",
+ "semver": "^7.3.2",
+ "tapable": "^1.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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "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==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "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=="
+ },
+ "schema-utils": {
+ "version": "2.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-2.7.0.tgz",
+ "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+ "requires": {
+ "@types/json-schema": "^7.0.4",
+ "ajv": "^6.12.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ },
+ "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"
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
+ }
+ }
+ },
+ "form-data": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fraction.js": {
+ "version": "4.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/fraction.js/-/fraction.js-4.2.0.tgz",
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://mirrors.tencent.com/npm/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs-monkey": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/fs-monkey/-/fs-monkey-1.0.3.tgz",
+ "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
+ "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=="
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
+ },
+ "get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
+ },
+ "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=="
+ },
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "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"
+ }
+ },
+ "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==",
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^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=="
+ },
+ "globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "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==",
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://mirrors.tencent.com/npm/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
+ },
+ "gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
+ "requires": {
+ "duplexer": "^0.1.2"
+ }
+ },
+ "handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
+ },
+ "harmony-reflect": {
+ "version": "1.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
+ "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "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=="
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "requires": {
+ "has-symbols": "^1.0.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=="
+ },
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "hoopy": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/hoopy/-/hoopy-0.1.4.tgz",
+ "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "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"
+ }
+ },
+ "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=="
+ }
+ }
+ },
+ "html-encoding-sniffer": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
+ "requires": {
+ "whatwg-encoding": "^1.0.5"
+ }
+ },
+ "html-entities": {
+ "version": "2.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/html-entities/-/html-entities-2.3.3.tgz",
+ "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="
+ },
+ "html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
+ },
+ "html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
+ "requires": {
+ "camel-case": "^4.1.2",
+ "clean-css": "^5.2.2",
+ "commander": "^8.3.0",
+ "he": "^1.2.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.10.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
+ }
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
+ "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==",
+ "requires": {
+ "@types/html-minifier-terser": "^6.0.0",
+ "html-minifier-terser": "^6.0.2",
+ "lodash": "^4.17.21",
+ "pretty-error": "^4.0.0",
+ "tapable": "^2.0.0"
+ }
+ },
+ "htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ }
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://mirrors.tencent.com/npm/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+ },
+ "http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://mirrors.tencent.com/npm/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-agent": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "requires": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+ "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
+ "requires": {
+ "@types/http-proxy": "^1.17.8",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
+ "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=="
+ },
+ "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"
+ }
+ },
+ "icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="
+ },
+ "idb": {
+ "version": "7.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/idb/-/idb-7.1.1.tgz",
+ "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="
+ },
+ "identity-obj-proxy": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
+ "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=",
+ "requires": {
+ "harmony-reflect": "^1.4.6"
+ }
+ },
+ "ignore": {
+ "version": "5.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
+ },
+ "immer": {
+ "version": "9.0.19",
+ "resolved": "https://mirrors.tencent.com/npm/immer/-/immer-9.0.19.tgz",
+ "integrity": "sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ=="
+ },
+ "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==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-local": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "requires": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "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=="
+ },
+ "internal-slot": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/internal-slot/-/internal-slot-1.0.5.tgz",
+ "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "requires": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "ipaddr.js": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
+ "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng=="
+ },
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-array-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
+ "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "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-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
+ },
+ "is-module": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE="
+ },
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ },
+ "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=="
+ },
+ "is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA=="
+ },
+ "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=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
+ },
+ "is-root": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-root/-/is-root-2.1.0.tgz",
+ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg=="
+ },
+ "is-set": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "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=="
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://mirrors.tencent.com/npm/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "jake": {
+ "version": "10.8.5",
+ "resolved": "https://mirrors.tencent.com/npm/jake/-/jake-10.8.5.tgz",
+ "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
+ "requires": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest/-/jest-27.5.1.tgz",
+ "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==",
+ "requires": {
+ "@jest/core": "^27.5.1",
+ "import-local": "^3.0.2",
+ "jest-cli": "^27.5.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "jest-cli": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-cli/-/jest-cli-27.5.1.tgz",
+ "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
+ "requires": {
+ "@jest/core": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "prompts": "^2.0.1",
+ "yargs": "^16.2.0"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-changed-files": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
+ "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "execa": "^5.0.0",
+ "throat": "^6.0.1"
+ }
+ },
+ "jest-circus": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-circus/-/jest-circus-27.5.1.tgz",
+ "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "expect": "^27.5.1",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3",
+ "throat": "^6.0.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-config": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-config/-/jest-config-27.5.1.tgz",
+ "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
+ "requires": {
+ "@babel/core": "^7.8.0",
+ "@jest/test-sequencer": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "babel-jest": "^27.5.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-jasmine2": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-docblock": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-docblock/-/jest-docblock-27.5.1.tgz",
+ "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
+ "requires": {
+ "detect-newline": "^3.0.0"
+ }
+ },
+ "jest-each": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-each/-/jest-each-27.5.1.tgz",
+ "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-environment-jsdom": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
+ "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jsdom": "^16.6.0"
+ }
+ },
+ "jest-environment-node": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
+ "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ }
+ },
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-jasmine2": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
+ "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "expect": "^27.5.1",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
+ "throat": "^6.0.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-leak-detector": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
+ "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
+ "requires": {
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ }
+ },
+ "jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-resolve": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-resolve/-/jest-resolve-27.5.1.tgz",
+ "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^1.1.0",
+ "slash": "^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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
+ "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-snapshot": "^27.5.1"
+ }
+ },
+ "jest-runner": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-runner/-/jest-runner-27.5.1.tgz",
+ "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.8.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-leak-detector": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "source-map-support": "^0.5.6",
+ "throat": "^6.0.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-runtime": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-runtime/-/jest-runtime-27.5.1.tgz",
+ "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/globals": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "execa": "^5.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-snapshot": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
+ "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
+ "requires": {
+ "@babel/core": "^7.7.2",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/traverse": "^7.7.2",
+ "@babel/types": "^7.0.0",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^27.5.1",
+ "semver": "^7.3.2"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-validate": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-validate/-/jest-validate-27.5.1.tgz",
+ "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^27.5.1",
+ "leven": "^3.1.0",
+ "pretty-format": "^27.5.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-watch-typeahead": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz",
+ "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==",
+ "requires": {
+ "ansi-escapes": "^4.3.1",
+ "chalk": "^4.0.0",
+ "jest-regex-util": "^28.0.0",
+ "jest-watcher": "^28.0.0",
+ "slash": "^4.0.0",
+ "string-length": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2fconsole/-/console-28.1.3.tgz",
+ "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==",
+ "requires": {
+ "@jest/types": "^28.1.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^28.1.3",
+ "jest-util": "^28.1.3",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ }
+ }
+ },
+ "@jest/test-result": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ftest-result/-/test-result-28.1.3.tgz",
+ "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==",
+ "requires": {
+ "@jest/console": "^28.1.3",
+ "@jest/types": "^28.1.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/@jest%2ftypes/-/types-28.1.3.tgz",
+ "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
+ "requires": {
+ "@jest/schemas": "^28.1.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/yargs": {
+ "version": "17.0.22",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2fyargs/-/yargs-17.0.22.tgz",
+ "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "emittery": {
+ "version": "0.10.2",
+ "resolved": "https://mirrors.tencent.com/npm/emittery/-/emittery-0.10.2.tgz",
+ "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw=="
+ },
+ "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=="
+ },
+ "jest-message-util": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/jest-message-util/-/jest-message-util-28.1.3.tgz",
+ "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^28.1.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^28.1.3",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "dependencies": {
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ }
+ }
+ },
+ "jest-regex-util": {
+ "version": "28.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
+ "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw=="
+ },
+ "jest-util": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/jest-util/-/jest-util-28.1.3.tgz",
+ "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
+ "requires": {
+ "@jest/types": "^28.1.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-watcher": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/jest-watcher/-/jest-watcher-28.1.3.tgz",
+ "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==",
+ "requires": {
+ "@jest/test-result": "^28.1.3",
+ "@jest/types": "^28.1.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.10.2",
+ "jest-util": "^28.1.3",
+ "string-length": "^4.0.1"
+ },
+ "dependencies": {
+ "string-length": {
+ "version": "4.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "requires": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "pretty-format": {
+ "version": "28.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-format/-/pretty-format-28.1.3.tgz",
+ "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
+ "requires": {
+ "@jest/schemas": "^28.1.3",
+ "ansi-regex": "^5.0.1",
+ "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=="
+ }
+ }
+ },
+ "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=="
+ },
+ "slash": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew=="
+ },
+ "string-length": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/string-length/-/string-length-5.0.1.tgz",
+ "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==",
+ "requires": {
+ "char-regex": "^2.0.0",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "char-regex": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/char-regex/-/char-regex-2.0.1.tgz",
+ "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw=="
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "requires": {
+ "ansi-regex": "^6.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=="
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-watcher": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-watcher/-/jest-watcher-27.5.1.tgz",
+ "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
+ "requires": {
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "jest-util": "^27.5.1",
+ "string-length": "^4.0.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "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=="
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "js-sdsl": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-sdsl/-/js-sdsl-4.3.0.tgz",
+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ=="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsdom": {
+ "version": "16.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsdom/-/jsdom-16.7.0.tgz",
+ "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
+ "requires": {
+ "abab": "^2.0.5",
+ "acorn": "^8.2.4",
+ "acorn-globals": "^6.0.0",
+ "cssom": "^0.4.4",
+ "cssstyle": "^2.3.0",
+ "data-urls": "^2.0.0",
+ "decimal.js": "^10.2.1",
+ "domexception": "^2.0.1",
+ "escodegen": "^2.0.0",
+ "form-data": "^3.0.0",
+ "html-encoding-sniffer": "^2.0.1",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.0",
+ "parse5": "6.0.1",
+ "saxes": "^5.0.1",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.0.0",
+ "w3c-hr-time": "^1.0.2",
+ "w3c-xmlserializer": "^2.0.0",
+ "webidl-conversions": "^6.1.0",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.5.0",
+ "ws": "^7.4.6",
+ "xml-name-validator": "^3.0.0"
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://mirrors.tencent.com/npm/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+ },
+ "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=="
+ },
+ "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="
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ=="
+ },
+ "jsx-ast-utils": {
+ "version": "3.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
+ "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "requires": {
+ "array-includes": "^3.1.5",
+ "object.assign": "^4.1.3"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
+ },
+ "klona": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="
+ },
+ "language-subtag-registry": {
+ "version": "0.3.22",
+ "resolved": "https://mirrors.tencent.com/npm/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
+ "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
+ },
+ "language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "requires": {
+ "language-subtag-registry": "~0.3.2"
+ }
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
+ },
+ "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==",
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
+ "loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
+ },
+ "loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
+ "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==",
+ "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=="
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
+ },
+ "lodash.flow": {
+ "version": "3.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.flow/-/lodash.flow-3.5.0.tgz",
+ "integrity": "sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o="
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
+ },
+ "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=="
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "requires": {
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://mirrors.tencent.com/npm/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "requires": {
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://mirrors.tencent.com/npm/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "requires": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "mdn-data": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/mdn-data/-/mdn-data-2.0.4.tgz",
+ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "memfs": {
+ "version": "3.4.13",
+ "resolved": "https://mirrors.tencent.com/npm/memfs/-/memfs-3.4.13.tgz",
+ "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==",
+ "requires": {
+ "fs-monkey": "^1.0.3"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "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=="
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://mirrors.tencent.com/npm/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "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==",
+ "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=="
+ },
+ "mini-css-extract-plugin": {
+ "version": "2.7.2",
+ "resolved": "https://mirrors.tencent.com/npm/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz",
+ "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==",
+ "requires": {
+ "schema-utils": "^4.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "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"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://mirrors.tencent.com/npm/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://mirrors.tencent.com/npm/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "requires": {
+ "minimist": "^1.2.6"
+ }
+ },
+ "mobx": {
+ "version": "5.15.7",
+ "resolved": "https://mirrors.tencent.com/npm/mobx/-/mobx-5.15.7.tgz",
+ "integrity": "sha512-wyM3FghTkhmC+hQjyPGGFdpehrcX1KOXsDuERhfK2YbJemkUhEB+6wzEN639T21onxlfYBmriA1PFnvxTUhcKw=="
+ },
+ "mobx-react": {
+ "version": "5.4.4",
+ "resolved": "https://mirrors.tencent.com/npm/mobx-react/-/mobx-react-5.4.4.tgz",
+ "integrity": "sha512-2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==",
+ "requires": {
+ "hoist-non-react-statics": "^3.0.0",
+ "react-lifecycles-compat": "^3.0.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "multicast-dns": {
+ "version": "7.2.5",
+ "resolved": "https://mirrors.tencent.com/npm/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "requires": {
+ "dns-packet": "^5.2.2",
+ "thunky": "^1.0.2"
+ }
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ },
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q="
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ }
+ }
+ },
+ "node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="
+ },
+ "node-releases": {
+ "version": "2.0.10",
+ "resolved": "https://mirrors.tencent.com/npm/node-releases/-/node-releases-2.0.10.tgz",
+ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
+ },
+ "normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
+ },
+ "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==",
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "nwsapi": {
+ "version": "2.2.2",
+ "resolved": "https://mirrors.tencent.com/npm/nwsapi/-/nwsapi-2.2.2.tgz",
+ "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
+ },
+ "object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://mirrors.tencent.com/npm/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
+ },
+ "object-is": {
+ "version": "1.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/object.entries/-/object.entries-1.1.6.tgz",
+ "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz",
+ "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==",
+ "requires": {
+ "array.prototype.reduce": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "requires": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.values": {
+ "version": "1.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "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"
+ }
+ },
+ "open": {
+ "version": "8.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "requires": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://mirrors.tencent.com/npm/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "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==",
+ "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==",
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "p-retry": {
+ "version": "4.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "requires": {
+ "@types/retry": "0.12.0",
+ "retry": "^0.13.1"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "param-case": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "requires": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ }
+ }
+ },
+ "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=="
+ },
+ "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="
+ },
+ "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=="
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "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=="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "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=="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ },
+ "pirates": {
+ "version": "4.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ=="
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "requires": {
+ "find-up": "^4.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ }
+ }
+ },
+ "pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "requires": {
+ "find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ }
+ }
+ },
+ "postcss": {
+ "version": "8.4.21",
+ "resolved": "https://mirrors.tencent.com/npm/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "postcss-attribute-case-insensitive": {
+ "version": "5.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz",
+ "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "postcss-browser-comments": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz",
+ "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg=="
+ },
+ "postcss-calc": {
+ "version": "8.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-calc/-/postcss-calc-8.2.4.tgz",
+ "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.9",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-clamp": {
+ "version": "4.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
+ "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-color-functional-notation": {
+ "version": "4.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz",
+ "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-color-hex-alpha": {
+ "version": "8.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
+ "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-color-rebeccapurple": {
+ "version": "7.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz",
+ "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-colormin": {
+ "version": "5.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
+ "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0",
+ "colord": "^2.9.1",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "5.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-custom-media": {
+ "version": "8.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
+ "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-custom-properties": {
+ "version": "12.1.11",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz",
+ "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-custom-selectors": {
+ "version": "6.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
+ "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "postcss-dir-pseudo-class": {
+ "version": "6.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz",
+ "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+ "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ=="
+ },
+ "postcss-discard-duplicates": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
+ "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw=="
+ },
+ "postcss-discard-empty": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
+ "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A=="
+ },
+ "postcss-discard-overridden": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
+ "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw=="
+ },
+ "postcss-double-position-gradients": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz",
+ "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==",
+ "requires": {
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-env-function": {
+ "version": "4.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-env-function/-/postcss-env-function-4.0.6.tgz",
+ "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-flexbugs-fixes": {
+ "version": "5.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz",
+ "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ=="
+ },
+ "postcss-focus-visible": {
+ "version": "6.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz",
+ "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.9"
+ }
+ },
+ "postcss-focus-within": {
+ "version": "5.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz",
+ "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.9"
+ }
+ },
+ "postcss-font-variant": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
+ "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA=="
+ },
+ "postcss-gap-properties": {
+ "version": "3.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
+ "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg=="
+ },
+ "postcss-image-set-function": {
+ "version": "4.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz",
+ "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-import": {
+ "version": "14.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-import/-/postcss-import-14.1.0.tgz",
+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "requires": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ }
+ },
+ "postcss-initial": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-initial/-/postcss-initial-4.0.1.tgz",
+ "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ=="
+ },
+ "postcss-js": {
+ "version": "4.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-js/-/postcss-js-4.0.1.tgz",
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "requires": {
+ "camelcase-css": "^2.0.1"
+ }
+ },
+ "postcss-lab-function": {
+ "version": "4.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz",
+ "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==",
+ "requires": {
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-load-config": {
+ "version": "3.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
+ "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
+ "requires": {
+ "lilconfig": "^2.0.5",
+ "yaml": "^1.10.2"
+ }
+ },
+ "postcss-loader": {
+ "version": "6.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-loader/-/postcss-loader-6.2.1.tgz",
+ "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==",
+ "requires": {
+ "cosmiconfig": "^7.0.0",
+ "klona": "^2.0.5",
+ "semver": "^7.3.5"
+ }
+ },
+ "postcss-logical": {
+ "version": "5.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-logical/-/postcss-logical-5.0.4.tgz",
+ "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g=="
+ },
+ "postcss-media-minmax": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
+ "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ=="
+ },
+ "postcss-merge-longhand": {
+ "version": "5.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0",
+ "stylehacks": "^5.1.1"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "5.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
+ "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0",
+ "cssnano-utils": "^3.1.0",
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
+ "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
+ "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
+ "requires": {
+ "colord": "^2.9.1",
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "5.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "5.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+ "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
+ "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw=="
+ },
+ "postcss-modules-local-by-default": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
+ "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
+ "requires": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
+ "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+ "requires": {
+ "icss-utils": "^5.0.0"
+ }
+ },
+ "postcss-nested": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-nested/-/postcss-nested-6.0.0.tgz",
+ "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "postcss-nesting": {
+ "version": "10.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-nesting/-/postcss-nesting-10.2.0.tgz",
+ "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==",
+ "requires": {
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "postcss-normalize": {
+ "version": "10.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize/-/postcss-normalize-10.0.1.tgz",
+ "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==",
+ "requires": {
+ "@csstools/normalize.css": "*",
+ "postcss-browser-comments": "^4",
+ "sanitize.css": "*"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
+ "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg=="
+ },
+ "postcss-normalize-display-values": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
+ "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+ "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+ "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
+ "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
+ "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
+ "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
+ "requires": {
+ "normalize-url": "^6.0.1",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
+ "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-opacity-percentage": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz",
+ "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A=="
+ },
+ "postcss-ordered-values": {
+ "version": "5.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+ "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
+ "requires": {
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-overflow-shorthand": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz",
+ "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-page-break": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
+ "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ=="
+ },
+ "postcss-place": {
+ "version": "7.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-place/-/postcss-place-7.0.5.tgz",
+ "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-preset-env": {
+ "version": "7.8.3",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz",
+ "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==",
+ "requires": {
+ "@csstools/postcss-cascade-layers": "^1.1.1",
+ "@csstools/postcss-color-function": "^1.1.1",
+ "@csstools/postcss-font-format-keywords": "^1.0.1",
+ "@csstools/postcss-hwb-function": "^1.0.2",
+ "@csstools/postcss-ic-unit": "^1.0.1",
+ "@csstools/postcss-is-pseudo-class": "^2.0.7",
+ "@csstools/postcss-nested-calc": "^1.0.0",
+ "@csstools/postcss-normalize-display-values": "^1.0.1",
+ "@csstools/postcss-oklab-function": "^1.1.1",
+ "@csstools/postcss-progressive-custom-properties": "^1.3.0",
+ "@csstools/postcss-stepped-value-functions": "^1.0.1",
+ "@csstools/postcss-text-decoration-shorthand": "^1.0.0",
+ "@csstools/postcss-trigonometric-functions": "^1.0.2",
+ "@csstools/postcss-unset-value": "^1.0.2",
+ "autoprefixer": "^10.4.13",
+ "browserslist": "^4.21.4",
+ "css-blank-pseudo": "^3.0.3",
+ "css-has-pseudo": "^3.0.4",
+ "css-prefers-color-scheme": "^6.0.3",
+ "cssdb": "^7.1.0",
+ "postcss-attribute-case-insensitive": "^5.0.2",
+ "postcss-clamp": "^4.1.0",
+ "postcss-color-functional-notation": "^4.2.4",
+ "postcss-color-hex-alpha": "^8.0.4",
+ "postcss-color-rebeccapurple": "^7.1.1",
+ "postcss-custom-media": "^8.0.2",
+ "postcss-custom-properties": "^12.1.10",
+ "postcss-custom-selectors": "^6.0.3",
+ "postcss-dir-pseudo-class": "^6.0.5",
+ "postcss-double-position-gradients": "^3.1.2",
+ "postcss-env-function": "^4.0.6",
+ "postcss-focus-visible": "^6.0.4",
+ "postcss-focus-within": "^5.0.4",
+ "postcss-font-variant": "^5.0.0",
+ "postcss-gap-properties": "^3.0.5",
+ "postcss-image-set-function": "^4.0.7",
+ "postcss-initial": "^4.0.1",
+ "postcss-lab-function": "^4.2.1",
+ "postcss-logical": "^5.0.4",
+ "postcss-media-minmax": "^5.0.0",
+ "postcss-nesting": "^10.2.0",
+ "postcss-opacity-percentage": "^1.1.2",
+ "postcss-overflow-shorthand": "^3.0.4",
+ "postcss-page-break": "^3.0.4",
+ "postcss-place": "^7.0.5",
+ "postcss-pseudo-class-any-link": "^7.1.6",
+ "postcss-replace-overflow-wrap": "^4.0.0",
+ "postcss-selector-not": "^6.0.1",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-pseudo-class-any-link": {
+ "version": "7.1.6",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz",
+ "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "5.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
+ "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
+ "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-replace-overflow-wrap": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
+ "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw=="
+ },
+ "postcss-selector-not": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz",
+ "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "postcss-svgo": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
+ "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0",
+ "svgo": "^2.7.0"
+ },
+ "dependencies": {
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
+ },
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://mirrors.tencent.com/npm/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+ },
+ "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==",
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "svgo": {
+ "version": "2.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "requires": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ }
+ }
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
+ "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "pretty-error": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-error/-/pretty-error-4.0.0.tgz",
+ "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
+ "requires": {
+ "lodash": "^4.17.20",
+ "renderkid": "^3.0.0"
+ }
+ },
+ "pretty-format": {
+ "version": "27.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
+ "requires": {
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
+ },
+ "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=="
+ },
+ "react-is": {
+ "version": "17.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ }
+ }
+ },
+ "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=="
+ },
+ "promise": {
+ "version": "8.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "requires": {
+ "asap": "~2.0.6"
+ }
+ },
+ "prompts": {
+ "version": "2.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "requires": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ }
+ },
+ "prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://mirrors.tencent.com/npm/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://mirrors.tencent.com/npm/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "dependencies": {
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://mirrors.tencent.com/npm/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ }
+ }
+ },
+ "psl": {
+ "version": "1.9.0",
+ "resolved": "https://mirrors.tencent.com/npm/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+ },
+ "punycode": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
+ },
+ "qs": {
+ "version": "6.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "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=="
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ },
+ "quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
+ },
+ "raf": {
+ "version": "3.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/raf/-/raf-3.4.1.tgz",
+ "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
+ "requires": {
+ "performance-now": "^2.1.0"
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://mirrors.tencent.com/npm/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ }
+ }
+ },
+ "react": {
+ "version": "18.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+ "requires": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "react-app-polyfill": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz",
+ "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==",
+ "requires": {
+ "core-js": "^3.19.2",
+ "object-assign": "^4.1.1",
+ "promise": "^8.1.0",
+ "raf": "^3.4.1",
+ "regenerator-runtime": "^0.13.9",
+ "whatwg-fetch": "^3.6.2"
+ }
+ },
+ "react-app-rewired": {
+ "version": "2.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/react-app-rewired/-/react-app-rewired-2.2.1.tgz",
+ "integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==",
+ "requires": {
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "react-dev-utils": {
+ "version": "12.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
+ "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "address": "^1.1.2",
+ "browserslist": "^4.18.1",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^7.0.3",
+ "detect-port-alt": "^1.1.6",
+ "escape-string-regexp": "^4.0.0",
+ "filesize": "^8.0.6",
+ "find-up": "^5.0.0",
+ "fork-ts-checker-webpack-plugin": "^6.5.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.4",
+ "gzip-size": "^6.0.0",
+ "immer": "^9.0.7",
+ "is-root": "^2.1.0",
+ "loader-utils": "^3.2.0",
+ "open": "^8.4.0",
+ "pkg-up": "^3.1.0",
+ "prompts": "^2.4.2",
+ "react-error-overlay": "^6.0.11",
+ "recursive-readdir": "^2.2.2",
+ "shell-quote": "^1.7.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==",
+ "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==",
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "loader-utils": {
+ "version": "3.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/loader-utils/-/loader-utils-3.2.1.tgz",
+ "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "react-dom": {
+ "version": "18.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/react-dom/-/react-dom-18.2.0.tgz",
+ "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.0"
+ }
+ },
+ "react-error-overlay": {
+ "version": "6.0.11",
+ "resolved": "https://mirrors.tencent.com/npm/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "react-redux": {
+ "version": "8.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/react-redux/-/react-redux-8.0.5.tgz",
+ "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==",
+ "requires": {
+ "@babel/runtime": "^7.12.1",
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "@types/use-sync-external-store": "^0.0.3",
+ "hoist-non-react-statics": "^3.3.2",
+ "react-is": "^18.0.0",
+ "use-sync-external-store": "^1.0.0"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "react-refresh": {
+ "version": "0.11.0",
+ "resolved": "https://mirrors.tencent.com/npm/react-refresh/-/react-refresh-0.11.0.tgz",
+ "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A=="
+ },
+ "react-scripts": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/react-scripts/-/react-scripts-5.0.1.tgz",
+ "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==",
+ "requires": {
+ "@babel/core": "^7.16.0",
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
+ "@svgr/webpack": "^5.5.0",
+ "babel-jest": "^27.4.2",
+ "babel-loader": "^8.2.3",
+ "babel-plugin-named-asset-import": "^0.3.8",
+ "babel-preset-react-app": "^10.0.1",
+ "bfj": "^7.0.2",
+ "browserslist": "^4.18.1",
+ "camelcase": "^6.2.1",
+ "case-sensitive-paths-webpack-plugin": "^2.4.0",
+ "css-loader": "^6.5.1",
+ "css-minimizer-webpack-plugin": "^3.2.0",
+ "dotenv": "^10.0.0",
+ "dotenv-expand": "^5.1.0",
+ "eslint": "^8.3.0",
+ "eslint-config-react-app": "^7.0.1",
+ "eslint-webpack-plugin": "^3.1.1",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.0.0",
+ "fsevents": "^2.3.2",
+ "html-webpack-plugin": "^5.5.0",
+ "identity-obj-proxy": "^3.0.0",
+ "jest": "^27.4.3",
+ "jest-resolve": "^27.4.2",
+ "jest-watch-typeahead": "^1.0.0",
+ "mini-css-extract-plugin": "^2.4.5",
+ "postcss": "^8.4.4",
+ "postcss-flexbugs-fixes": "^5.0.2",
+ "postcss-loader": "^6.2.1",
+ "postcss-normalize": "^10.0.1",
+ "postcss-preset-env": "^7.0.1",
+ "prompts": "^2.4.2",
+ "react-app-polyfill": "^3.0.0",
+ "react-dev-utils": "^12.0.1",
+ "react-refresh": "^0.11.0",
+ "resolve": "^1.20.0",
+ "resolve-url-loader": "^4.0.0",
+ "sass-loader": "^12.3.0",
+ "semver": "^7.3.5",
+ "source-map-loader": "^3.0.0",
+ "style-loader": "^3.3.1",
+ "tailwindcss": "^3.0.2",
+ "terser-webpack-plugin": "^5.2.5",
+ "webpack": "^5.64.4",
+ "webpack-dev-server": "^4.6.0",
+ "webpack-manifest-plugin": "^4.0.2",
+ "workbox-webpack-plugin": "^6.4.1"
+ }
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "requires": {
+ "pify": "^2.3.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/readable-stream/-/readable-stream-3.6.1.tgz",
+ "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "recursive-readdir": {
+ "version": "2.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/recursive-readdir/-/recursive-readdir-2.2.3.tgz",
+ "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==",
+ "requires": {
+ "minimatch": "^3.0.5"
+ }
+ },
+ "redux": {
+ "version": "4.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/redux/-/redux-4.2.1.tgz",
+ "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
+ "requires": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
+ "redux-thunk": {
+ "version": "2.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/redux-thunk/-/redux-thunk-2.4.2.tgz",
+ "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q=="
+ },
+ "regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://mirrors.tencent.com/npm/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+ },
+ "regenerate-unicode-properties": {
+ "version": "10.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
+ "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
+ "requires": {
+ "regenerate": "^1.4.2"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://mirrors.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "regenerator-transform": {
+ "version": "0.15.1",
+ "resolved": "https://mirrors.tencent.com/npm/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "regex-parser": {
+ "version": "2.2.11",
+ "resolved": "https://mirrors.tencent.com/npm/regex-parser/-/regex-parser-2.2.11.tgz",
+ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q=="
+ },
+ "regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
+ },
+ "regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "requires": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ }
+ },
+ "regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://mirrors.tencent.com/npm/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
+ },
+ "renderkid": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/renderkid/-/renderkid-3.0.0.tgz",
+ "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
+ "requires": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
+ },
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://mirrors.tencent.com/npm/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.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==",
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
+ },
+ "reselect": {
+ "version": "4.1.7",
+ "resolved": "https://mirrors.tencent.com/npm/reselect/-/reselect-4.1.7.tgz",
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://mirrors.tencent.com/npm/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "requires": {
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+ }
+ }
+ },
+ "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=="
+ },
+ "resolve-url-loader": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
+ "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
+ "requires": {
+ "adjust-sourcemap-loader": "^4.0.0",
+ "convert-source-map": "^1.7.0",
+ "loader-utils": "^2.0.0",
+ "postcss": "^7.0.35",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://mirrors.tencent.com/npm/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "resolve.exports": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/resolve.exports/-/resolve.exports-1.1.1.tgz",
+ "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ=="
+ },
+ "retry": {
+ "version": "0.13.1",
+ "resolved": "https://mirrors.tencent.com/npm/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ },
+ "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"
+ }
+ },
+ "rollup": {
+ "version": "2.79.1",
+ "resolved": "https://mirrors.tencent.com/npm/rollup/-/rollup-2.79.1.tgz",
+ "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
+ "requires": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "rollup-plugin-terser": {
+ "version": "7.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+ "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "jest-worker": "^26.2.1",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^5.0.0"
+ },
+ "dependencies": {
+ "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=="
+ },
+ "jest-worker": {
+ "version": "26.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/jest-worker/-/jest-worker-26.6.2.tgz",
+ "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
+ "serialize-javascript": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "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=="
+ },
+ "safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sanitize.css": {
+ "version": "13.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/sanitize.css/-/sanitize.css-13.0.0.tgz",
+ "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="
+ },
+ "sass-loader": {
+ "version": "12.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/sass-loader/-/sass-loader-12.6.0.tgz",
+ "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "requires": {
+ "klona": "^2.0.4",
+ "neo-async": "^2.6.2"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://mirrors.tencent.com/npm/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "saxes": {
+ "version": "5.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "requires": {
+ "xmlchars": "^2.2.0"
+ }
+ },
+ "scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://mirrors.tencent.com/npm/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "requires": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
+ },
+ "selfsigned": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/selfsigned/-/selfsigned-2.1.1.tgz",
+ "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
+ "requires": {
+ "node-forge": "^1"
+ }
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://mirrors.tencent.com/npm/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.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==",
+ "requires": {
+ "yallist": "^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=="
+ }
+ }
+ },
+ "send": {
+ "version": "0.18.0",
+ "resolved": "https://mirrors.tencent.com/npm/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "6.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://mirrors.tencent.com/npm/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://mirrors.tencent.com/npm/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://mirrors.tencent.com/npm/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://mirrors.tencent.com/npm/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "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==",
+ "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=="
+ },
+ "shell-quote": {
+ "version": "1.8.0",
+ "resolved": "https://mirrors.tencent.com/npm/shell-quote/-/shell-quote-1.8.0.tgz",
+ "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ=="
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "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=="
+ },
+ "sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://mirrors.tencent.com/npm/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+ "requires": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
+ },
+ "source-map": {
+ "version": "0.7.4",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
+ },
+ "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=="
+ },
+ "source-map-loader": {
+ "version": "3.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/source-map-loader/-/source-map-loader-3.0.2.tgz",
+ "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==",
+ "requires": {
+ "abab": "^2.0.5",
+ "iconv-lite": "^0.6.3",
+ "source-map-js": "^1.0.1"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ }
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://mirrors.tencent.com/npm/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://mirrors.tencent.com/npm/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ },
+ "spdy": {
+ "version": "4.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "requires": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ }
+ },
+ "spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "requires": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://mirrors.tencent.com/npm/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ }
+ }
+ },
+ "stackframe": {
+ "version": "1.3.4",
+ "resolved": "https://mirrors.tencent.com/npm/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "stop-iteration-iterator": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
+ "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+ "requires": {
+ "internal-slot": "^1.0.4"
+ }
+ },
+ "string-length": {
+ "version": "4.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "requires": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "string-natural-compare": {
+ "version": "3.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
+ "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw=="
+ },
+ "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"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "string.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://mirrors.tencent.com/npm/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "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=="
+ }
+ }
+ },
+ "stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "requires": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ }
+ },
+ "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-bom": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ },
+ "strip-comments": {
+ "version": "2.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/strip-comments/-/strip-comments-2.0.1.tgz",
+ "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "style-loader": {
+ "version": "3.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/style-loader/-/style-loader-3.3.1.tgz",
+ "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ=="
+ },
+ "stylehacks": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "requires": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "dependencies": {
+ "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=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ },
+ "svg-parser": {
+ "version": "2.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/svg-parser/-/svg-parser-2.0.4.tgz",
+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
+ },
+ "svgo": {
+ "version": "1.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/svgo/-/svgo-1.3.2.tgz",
+ "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
+ "requires": {
+ "chalk": "^2.4.1",
+ "coa": "^2.0.2",
+ "css-select": "^2.0.0",
+ "css-select-base-adapter": "^0.1.1",
+ "css-tree": "1.0.0-alpha.37",
+ "csso": "^4.0.2",
+ "js-yaml": "^3.13.1",
+ "mkdirp": "~0.5.1",
+ "object.values": "^1.1.0",
+ "sax": "~1.2.4",
+ "stable": "^0.1.8",
+ "unquote": "~1.1.1",
+ "util.promisify": "~1.0.0"
+ }
+ },
+ "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=="
+ },
+ "tailwindcss": {
+ "version": "3.2.7",
+ "resolved": "https://mirrors.tencent.com/npm/tailwindcss/-/tailwindcss-3.2.7.tgz",
+ "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==",
+ "requires": {
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "color-name": "^1.1.4",
+ "detective": "^5.2.1",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.2.12",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "lilconfig": "^2.0.6",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.0.9",
+ "postcss-import": "^14.1.0",
+ "postcss-js": "^4.0.0",
+ "postcss-load-config": "^3.1.4",
+ "postcss-nested": "6.0.0",
+ "postcss-selector-parser": "^6.0.11",
+ "postcss-value-parser": "^4.2.0",
+ "quick-lru": "^5.1.1",
+ "resolve": "^1.22.1"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://mirrors.tencent.com/npm/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
+ },
+ "temp-dir": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/temp-dir/-/temp-dir-2.0.0.tgz",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
+ },
+ "tempy": {
+ "version": "0.6.0",
+ "resolved": "https://mirrors.tencent.com/npm/tempy/-/tempy-0.6.0.tgz",
+ "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==",
+ "requires": {
+ "is-stream": "^2.0.0",
+ "temp-dir": "^2.0.0",
+ "type-fest": "^0.16.0",
+ "unique-string": "^2.0.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.16.0",
+ "resolved": "https://mirrors.tencent.com/npm/type-fest/-/type-fest-0.16.0.tgz",
+ "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="
+ }
+ }
+ },
+ "terminal-link": {
+ "version": "2.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/terminal-link/-/terminal-link-2.1.1.tgz",
+ "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "supports-hyperlinks": "^2.0.0"
+ }
+ },
+ "terser": {
+ "version": "5.16.5",
+ "resolved": "https://mirrors.tencent.com/npm/terser/-/terser-5.16.5.tgz",
+ "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==",
+ "requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "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=="
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "5.3.6",
+ "resolved": "https://mirrors.tencent.com/npm/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
+ "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ }
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "throat": {
+ "version": "6.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/throat/-/throat-6.0.2.tgz",
+ "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
+ },
+ "thunky": {
+ "version": "1.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+ },
+ "tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
+ },
+ "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="
+ },
+ "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==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ },
+ "tough-cookie": {
+ "version": "4.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/tough-cookie/-/tough-cookie-4.1.2.tgz",
+ "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
+ "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=="
+ }
+ }
+ },
+ "tr46": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "requires": {
+ "punycode": "^2.1.1"
+ }
+ },
+ "tryer": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/tryer/-/tryer-1.0.1.tgz",
+ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="
+ },
+ "tsconfig-paths": {
+ "version": "3.14.2",
+ "resolved": "https://mirrors.tencent.com/npm/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+ "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://mirrors.tencent.com/npm/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://mirrors.tencent.com/npm/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
+ "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==",
+ "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=="
+ },
+ "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=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://mirrors.tencent.com/npm/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://mirrors.tencent.com/npm/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ }
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://mirrors.tencent.com/npm/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ=="
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA=="
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w=="
+ },
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "unquote": {
+ "version": "1.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/unquote/-/unquote-1.1.1.tgz",
+ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ="
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+ },
+ "update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://mirrors.tencent.com/npm/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "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==",
+ "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==",
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "util.promisify": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/util.promisify/-/util.promisify-1.0.1.tgz",
+ "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.2",
+ "has-symbols": "^1.0.1",
+ "object.getownpropertydescriptors": "^2.1.0"
+ }
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://mirrors.tencent.com/npm/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ },
+ "v8-to-istanbul": {
+ "version": "8.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
+ "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://mirrors.tencent.com/npm/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "w3c-hr-time": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+ "requires": {
+ "browser-process-hrtime": "^1.0.0"
+ }
+ },
+ "w3c-xmlserializer": {
+ "version": "2.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
+ "requires": {
+ "xml-name-validator": "^3.0.0"
+ }
+ },
+ "walker": {
+ "version": "1.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "requires": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://mirrors.tencent.com/npm/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://mirrors.tencent.com/npm/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "webidl-conversions": {
+ "version": "6.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
+ },
+ "webpack": {
+ "version": "5.75.0",
+ "resolved": "https://mirrors.tencent.com/npm/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "requires": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "dependencies": {
+ "@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://mirrors.tencent.com/npm/@types%2festree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ=="
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "5.3.3",
+ "resolved": "https://mirrors.tencent.com/npm/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
+ "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
+ "requires": {
+ "colorette": "^2.0.10",
+ "memfs": "^3.4.3",
+ "mime-types": "^2.1.31",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ }
+ }
+ },
+ "webpack-dev-server": {
+ "version": "4.11.1",
+ "resolved": "https://mirrors.tencent.com/npm/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz",
+ "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==",
+ "requires": {
+ "@types/bonjour": "^3.5.9",
+ "@types/connect-history-api-fallback": "^1.3.5",
+ "@types/express": "^4.17.13",
+ "@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
+ "@types/sockjs": "^0.3.33",
+ "@types/ws": "^8.5.1",
+ "ansi-html-community": "^0.0.8",
+ "bonjour-service": "^1.0.11",
+ "chokidar": "^3.5.3",
+ "colorette": "^2.0.10",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^2.0.0",
+ "default-gateway": "^6.0.3",
+ "express": "^4.17.3",
+ "graceful-fs": "^4.2.6",
+ "html-entities": "^2.3.2",
+ "http-proxy-middleware": "^2.0.3",
+ "ipaddr.js": "^2.0.1",
+ "open": "^8.0.9",
+ "p-retry": "^4.5.0",
+ "rimraf": "^3.0.2",
+ "schema-utils": "^4.0.0",
+ "selfsigned": "^2.1.1",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.24",
+ "spdy": "^4.0.2",
+ "webpack-dev-middleware": "^5.3.1",
+ "ws": "^8.4.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ },
+ "ws": {
+ "version": "8.12.1",
+ "resolved": "https://mirrors.tencent.com/npm/ws/-/ws-8.12.1.tgz",
+ "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew=="
+ }
+ }
+ },
+ "webpack-manifest-plugin": {
+ "version": "4.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz",
+ "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==",
+ "requires": {
+ "tapable": "^2.0.0",
+ "webpack-sources": "^2.2.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "webpack-sources": {
+ "version": "2.3.1",
+ "resolved": "https://mirrors.tencent.com/npm/webpack-sources/-/webpack-sources-2.3.1.tgz",
+ "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==",
+ "requires": {
+ "source-list-map": "^2.0.1",
+ "source-map": "^0.6.1"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
+ },
+ "websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://mirrors.tencent.com/npm/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "requires": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://mirrors.tencent.com/npm/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
+ },
+ "whatwg-encoding": {
+ "version": "1.0.5",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "requires": {
+ "iconv-lite": "0.4.24"
+ }
+ },
+ "whatwg-fetch": {
+ "version": "3.6.2",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
+ "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
+ },
+ "whatwg-mimetype": {
+ "version": "2.3.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
+ },
+ "whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "requires": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "requires": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ }
+ },
+ "which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://mirrors.tencent.com/npm/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://mirrors.tencent.com/npm/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ },
+ "workbox-background-sync": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz",
+ "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==",
+ "requires": {
+ "idb": "^7.0.1",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-broadcast-update": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz",
+ "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==",
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-build": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-build/-/workbox-build-6.5.4.tgz",
+ "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==",
+ "requires": {
+ "@apideck/better-ajv-errors": "^0.3.1",
+ "@babel/core": "^7.11.1",
+ "@babel/preset-env": "^7.11.0",
+ "@babel/runtime": "^7.11.2",
+ "@rollup/plugin-babel": "^5.2.0",
+ "@rollup/plugin-node-resolve": "^11.2.1",
+ "@rollup/plugin-replace": "^2.4.1",
+ "@surma/rollup-plugin-off-main-thread": "^2.2.3",
+ "ajv": "^8.6.0",
+ "common-tags": "^1.8.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "fs-extra": "^9.0.1",
+ "glob": "^7.1.6",
+ "lodash": "^4.17.20",
+ "pretty-bytes": "^5.3.0",
+ "rollup": "^2.43.1",
+ "rollup-plugin-terser": "^7.0.0",
+ "source-map": "^0.8.0-beta.0",
+ "stringify-object": "^3.3.0",
+ "strip-comments": "^2.0.1",
+ "tempy": "^0.6.0",
+ "upath": "^1.2.0",
+ "workbox-background-sync": "6.5.4",
+ "workbox-broadcast-update": "6.5.4",
+ "workbox-cacheable-response": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-expiration": "6.5.4",
+ "workbox-google-analytics": "6.5.4",
+ "workbox-navigation-preload": "6.5.4",
+ "workbox-precaching": "6.5.4",
+ "workbox-range-requests": "6.5.4",
+ "workbox-recipes": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4",
+ "workbox-streams": "6.5.4",
+ "workbox-sw": "6.5.4",
+ "workbox-window": "6.5.4"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.12.0",
+ "resolved": "https://mirrors.tencent.com/npm/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "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==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "source-map": {
+ "version": "0.8.0-beta.0",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.8.0-beta.0.tgz",
+ "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
+ "requires": {
+ "whatwg-url": "^7.0.0"
+ }
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://mirrors.tencent.com/npm/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
+ },
+ "whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://mirrors.tencent.com/npm/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ }
+ }
+ },
+ "workbox-cacheable-response": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz",
+ "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==",
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-core": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-core/-/workbox-core-6.5.4.tgz",
+ "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q=="
+ },
+ "workbox-expiration": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-expiration/-/workbox-expiration-6.5.4.tgz",
+ "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==",
+ "requires": {
+ "idb": "^7.0.1",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-google-analytics": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz",
+ "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==",
+ "requires": {
+ "workbox-background-sync": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "workbox-navigation-preload": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz",
+ "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==",
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-precaching": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-precaching/-/workbox-precaching-6.5.4.tgz",
+ "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==",
+ "requires": {
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "workbox-range-requests": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz",
+ "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==",
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-recipes": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-recipes/-/workbox-recipes-6.5.4.tgz",
+ "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==",
+ "requires": {
+ "workbox-cacheable-response": "6.5.4",
+ "workbox-core": "6.5.4",
+ "workbox-expiration": "6.5.4",
+ "workbox-precaching": "6.5.4",
+ "workbox-routing": "6.5.4",
+ "workbox-strategies": "6.5.4"
+ }
+ },
+ "workbox-routing": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-routing/-/workbox-routing-6.5.4.tgz",
+ "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==",
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-strategies": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-strategies/-/workbox-strategies-6.5.4.tgz",
+ "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==",
+ "requires": {
+ "workbox-core": "6.5.4"
+ }
+ },
+ "workbox-streams": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-streams/-/workbox-streams-6.5.4.tgz",
+ "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==",
+ "requires": {
+ "workbox-core": "6.5.4",
+ "workbox-routing": "6.5.4"
+ }
+ },
+ "workbox-sw": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-sw/-/workbox-sw-6.5.4.tgz",
+ "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA=="
+ },
+ "workbox-webpack-plugin": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz",
+ "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==",
+ "requires": {
+ "fast-json-stable-stringify": "^2.1.0",
+ "pretty-bytes": "^5.4.1",
+ "upath": "^1.2.0",
+ "webpack-sources": "^1.4.3",
+ "workbox-build": "6.5.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://mirrors.tencent.com/npm/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ }
+ }
+ }
+ },
+ "workbox-window": {
+ "version": "6.5.4",
+ "resolved": "https://mirrors.tencent.com/npm/workbox-window/-/workbox-window-6.5.4.tgz",
+ "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==",
+ "requires": {
+ "@types/trusted-types": "^2.0.2",
+ "workbox-core": "6.5.4"
+ }
+ },
+ "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==",
+ "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==",
+ "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==",
+ "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=="
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://mirrors.tencent.com/npm/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://mirrors.tencent.com/npm/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
+ },
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://mirrors.tencent.com/npm/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
+ },
+ "xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://mirrors.tencent.com/npm/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://mirrors.tencent.com/npm/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://mirrors.tencent.com/npm/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://mirrors.tencent.com/npm/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://mirrors.tencent.com/npm/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://mirrors.tencent.com/npm/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ },
+ "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=="
+ }
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/package.json" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/package.json"
new file mode 100644
index 000000000..1d261813f
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/package.json"
@@ -0,0 +1,44 @@
+{
+ "name": "04_Learn_Log",
+ "version": "1.0.0",
+ "main": "index.js",
+ "license": "MIT",
+ "scripts": {
+ "start": "react-app-rewired start",
+ "build": "react-app-rewired build",
+ "test": "react-app-rewired test",
+ "eject": "react-app-rewired eject"
+ },
+ "dependencies": {
+ "@babel/core": "^7.21.8",
+ "@babel/plugin-proposal-decorators": "^7.21.0",
+ "@babel/preset-env": "^7.21.5",
+ "@reduxjs/toolkit": "^1.9.3",
+ "customize-cra": "^1.0.0",
+ "mobx": "^5.15.7",
+ "mobx-react": "^5.4.4",
+ "react": "^18.0.0",
+ "react-app-rewired": "^2.2.1",
+ "react-dom": "^18.0.0",
+ "react-redux": "^8.0.5",
+ "react-scripts": "^5.0.1",
+ "redux": "^4.2.1"
+ },
+ "eslintConfig": {
+ "extends": [
+ "react-app"
+ ]
+ },
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ }
+}
diff --git "a/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/public/index.html" "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/public/index.html"
new file mode 100644
index 000000000..a9225fb9e
--- /dev/null
+++ "b/12-\345\211\215\347\253\257\346\241\206\346\236\266/03-React/react18/test/public/index.html"
@@ -0,0 +1,10 @@
+
+
+
+
+ react
+
+
+
+
+
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