23
.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
node_modules
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.idea
|
||||||
|
.DS_Store
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
76
README.md
@ -1,78 +1,2 @@
|
|||||||
# ccc-devtools
|
# ccc-devtools
|
||||||
Cocos Creator 网页调试工具,运行时查看、修改节点树,实时更新节点属性,可视化缓存资源。
|
Cocos Creator 网页调试工具,运行时查看、修改节点树,实时更新节点属性,可视化缓存资源。
|
||||||
|
|
||||||
> 当前分支适用于 cocos creator 2.0-2.3 版本,其他版本需切换到对应分支
|
|
||||||
|
|
||||||
## 功能
|
|
||||||
|
|
||||||
- 场景节点树实时显示,节点、组件属性实时显示更改
|
|
||||||
|
|
||||||
![preview](./screenshots/preview1.gif)
|
|
||||||
|
|
||||||
- 可视化缓存资源
|
|
||||||
|
|
||||||
![preview](./screenshots/preview2.png)
|
|
||||||
|
|
||||||
- 标记场景中节点位置
|
|
||||||
|
|
||||||
![preview](./screenshots/preview3.png)
|
|
||||||
|
|
||||||
- 输出节点、组件引用到控制台
|
|
||||||
|
|
||||||
![preview](./screenshots/preview4.png)
|
|
||||||
|
|
||||||
- cc控制台功能扩展
|
|
||||||
|
|
||||||
![preview](./screenshots/preview5.png)
|
|
||||||
|
|
||||||
## 全局使用
|
|
||||||
|
|
||||||
1. 点击 Creator 右上角进入编辑器 resources 目录,再依次进入`static/preview-templates`目录
|
|
||||||
|
|
||||||
![t1](./screenshots/t1.png)
|
|
||||||
|
|
||||||
2. 将本项目clone到上面的目录下,**如果使用下载压缩包的方式记得把后缀名-master去掉**
|
|
||||||
|
|
||||||
![t2](./screenshots/t2.png)
|
|
||||||
|
|
||||||
3. 打开 `index.jade`,找到 `body` 将中间部分替换为 `include ./ccc-devtools/index.html`,**注意用tab键对齐**
|
|
||||||
|
|
||||||
![t3](./screenshots/t3.png)
|
|
||||||
|
|
||||||
## 项目使用
|
|
||||||
|
|
||||||
Cocos Creator 从 v2.2 开始新增了自定义网页预览功能。
|
|
||||||
|
|
||||||
1. 重复上面的操作步骤,将修改后的 `preview-templates` 目录拷贝到项目根目录
|
|
||||||
|
|
||||||
2. 将 `ccc-devtools/index.html` 里所有引用的资源路径 `app/editor/static/preview-templates/ccc-devtools/...` 替换为 `ccc-devtools/...`
|
|
||||||
|
|
||||||
3. 重启 Cocos Creator
|
|
||||||
|
|
||||||
## 自定义
|
|
||||||
|
|
||||||
- 本项目使用了 vue 和 vuetify,可根据 [vuetify 文档](https://vuetifyjs.com/en/getting-started/quick-start/) 对页面进行修改
|
|
||||||
|
|
||||||
- 节点、组件显示属性可在 `config.js` 里配置,目前支持 text,number,textarea,color,bool 几种类型
|
|
||||||
|
|
||||||
## 需求、更新
|
|
||||||
|
|
||||||
https://github.com/potato47/ccc-devtools
|
|
||||||
|
|
||||||
如果没有更改源码,可直接在目录下 git pull
|
|
||||||
|
|
||||||
论坛讨论地址:https://forum.cocos.com/t/creator-20190201/71578
|
|
||||||
|
|
||||||
## 贡献指南
|
|
||||||
|
|
||||||
- 版本号命名规则 https://semver.org/lang/zh-CN/ ,简单来讲,新功能第二位加一,修复bug第三位加一
|
|
||||||
|
|
||||||
- 如果新增功能请在README中添加预览截图说明
|
|
||||||
|
|
||||||
- 记得更新version.json中的版本号
|
|
||||||
|
|
||||||
## 前人种树
|
|
||||||
|
|
||||||
- https://github.com/vuejs/vue
|
|
||||||
|
|
||||||
- https://github.com/vuetifyjs/vuetify
|
|
||||||
|
5
auto-imports.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Generated by 'unplugin-auto-import'
|
||||||
|
export {}
|
||||||
|
declare global {
|
||||||
|
|
||||||
|
}
|
23
components.d.ts
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// generated by unplugin-vue-components
|
||||||
|
// We suggest you to commit this file into source control
|
||||||
|
// Read more: https://github.com/vuejs/core/pull/3399
|
||||||
|
import '@vue/runtime-core'
|
||||||
|
|
||||||
|
export {}
|
||||||
|
|
||||||
|
declare module '@vue/runtime-core' {
|
||||||
|
export interface GlobalComponents {
|
||||||
|
CCComponent: typeof import('./src/components/CCComponent.vue')['default']
|
||||||
|
CCNode: typeof import('./src/components/CCNode.vue')['default']
|
||||||
|
ElButton: typeof import('element-plus/es')['ElButton']
|
||||||
|
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||||
|
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
||||||
|
ElInput: typeof import('element-plus/es')['ElInput']
|
||||||
|
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
||||||
|
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||||
|
ElTreeV2: typeof import('element-plus/es')['ElTreeV2']
|
||||||
|
PropItem: typeof import('./src/components/PropItem.vue')['default']
|
||||||
|
TreePanel: typeof import('./src/components/TreePanel.vue')['default']
|
||||||
|
UserComponent: typeof import('./src/components/UserComponent.vue')['default']
|
||||||
|
}
|
||||||
|
}
|
54
config.js
@ -1,54 +0,0 @@
|
|||||||
const NEX_CONFIG = {
|
|
||||||
nodeSchema: {
|
|
||||||
node2d: {
|
|
||||||
title: 'Node',
|
|
||||||
key: 'cc.Node',
|
|
||||||
rows: [
|
|
||||||
{ name: 'Name', key: 'name', type: 'text' },
|
|
||||||
{ name: 'X', key: 'x', type: 'number' },
|
|
||||||
{ name: 'Y', key: 'y', type: 'number' },
|
|
||||||
{ name: 'Width', key: 'width', type: 'number' },
|
|
||||||
{ name: 'Height', key: 'height', type: 'number' },
|
|
||||||
{ name: 'Angle', key: 'angle', type: 'number' },
|
|
||||||
{ name: 'ScaleX', key: 'scaleX', type: 'number' },
|
|
||||||
{ name: 'ScaleY', key: 'scaleY', type: 'number' },
|
|
||||||
{ name: 'Opacity', key: 'opacity', type: 'number' },
|
|
||||||
{ name: 'Color', key: 'hex_color', type: 'color' },
|
|
||||||
{ name: 'Group', key: 'group', type: 'text' },
|
|
||||||
]
|
|
||||||
},
|
|
||||||
node3d: {
|
|
||||||
title: 'Node',
|
|
||||||
key: 'cc.Node',
|
|
||||||
rows: [
|
|
||||||
// TODO:
|
|
||||||
]
|
|
||||||
},
|
|
||||||
},
|
|
||||||
componentsSchema: {
|
|
||||||
'cc.Camera': {
|
|
||||||
title: 'cc.Camera',
|
|
||||||
key: 'cc.Camera',
|
|
||||||
rows: [
|
|
||||||
{ name: 'Zoom Ratio', key: 'zoomRatio', type: 'number' },
|
|
||||||
{ name: 'Depth', key: 'depth', type: 'number' },
|
|
||||||
{ name: 'Bacground Color', key: 'hex_backgroundColor', rawKey: 'backgroundColor', type: 'color' },
|
|
||||||
{ name: 'Align with Screen', key: 'alignWithScreen', type: 'bool' },
|
|
||||||
]
|
|
||||||
},
|
|
||||||
'cc.Sprite': {
|
|
||||||
key: 'cc.Sprite',
|
|
||||||
title: 'cc.Sprite',
|
|
||||||
rows: []
|
|
||||||
},
|
|
||||||
'cc.Label': {
|
|
||||||
title: 'cc.Label',
|
|
||||||
key: 'cc.Label',
|
|
||||||
rows: [
|
|
||||||
{ name: 'String', key: 'string', type: 'textarea' },
|
|
||||||
{ name: 'Font Size', key: 'fontSize', type: 'number' },
|
|
||||||
{ name: 'Line Height', key: 'lineHeight', type: 'number' },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
251
index.html
@ -1,249 +1,2 @@
|
|||||||
<link href="app/editor/static/preview-templates/ccc-devtools/libs/css/materialdesignicons.min.css" rel="stylesheet"
|
<div id="app"></div>
|
||||||
type="text/css">
|
<script type="module" src="/src/main.ts"></script>
|
||||||
<link href="app/editor/static/preview-templates/ccc-devtools/libs/css/vuetify.min.css" rel="stylesheet" type="text/css">
|
|
||||||
<style>
|
|
||||||
html {
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<v-app id="app">
|
|
||||||
<v-app-bar app clipped-left color="gray" dense v-if="isShowTop">
|
|
||||||
<v-app-bar-nav-icon @click.stop="drawer = !drawer"></v-app-bar-nav-icon>
|
|
||||||
<div id="recompiling"><span>Recompiling...</span></div>
|
|
||||||
<v-spacer></v-spacer>
|
|
||||||
<div class="toolbar">
|
|
||||||
<div class="item">
|
|
||||||
<select id="opts-device">
|
|
||||||
<option value="0">Default</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-rotate" small height="25"><span style="color: #aaa;">Rotate</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<span style="font-size: small;display: none;" class="item">Debug Mode:</span>
|
|
||||||
<div class="item" style="display: none;">
|
|
||||||
<select id="opts-debug-mode">
|
|
||||||
<option value="0">None</option>
|
|
||||||
<option value="1">Info</option>
|
|
||||||
<option value="2">Warn</option>
|
|
||||||
<option value="3">Error</option>
|
|
||||||
<option value="4">Info For Web Page</option>
|
|
||||||
<option value="5">Warn For Web Page</option>
|
|
||||||
<option value="6">Error For Web Page</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-show-fps" small height="25"><span style="color: #aaa;">Show FPS</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<span style="font-size: small;color: #aaa;" class="item">FPS:</span><input id="input-set-fps"
|
|
||||||
type="number" />
|
|
||||||
</div>
|
|
||||||
<div style="margin-right: 0px;" class="item">
|
|
||||||
<v-btn id="btn-pause" small height="25"><span style="color: #aaa;">Pause</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-step" style="display: none;" small height="25">
|
|
||||||
<span style="color: #aaa;">Step</span>
|
|
||||||
</v-btn>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-recompile" small height="25"><span style="color: #aaa;">Recompile</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<v-icon @click="openCocosDocs" small>mdi-cloud-search</v-icon>
|
|
||||||
<v-icon @click="openCocosForum" small>mdi-forum</v-icon>
|
|
||||||
<v-icon @click="openCacheDialog" small>mdi-table</v-icon>
|
|
||||||
<v-icon @click="openGithub" small>mdi-home</v-icon>
|
|
||||||
</div>
|
|
||||||
</v-app-bar>
|
|
||||||
|
|
||||||
<div v-if="!isShowTop">
|
|
||||||
<div id="recompiling"><span>Recompiling...</span></div>
|
|
||||||
<div class="toolbar">
|
|
||||||
<div class="item">
|
|
||||||
<select id="opts-device">
|
|
||||||
<option value="0">Default</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-rotate" small height="25"><span style="color: #aaa;">Rotate</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<span style="font-size: small;display: none;" class="item">Debug Mode:</span>
|
|
||||||
<div class="item" style="display: none;">
|
|
||||||
<select id="opts-debug-mode">
|
|
||||||
<option value="0">None</option>
|
|
||||||
<option value="1">Info</option>
|
|
||||||
<option value="2">Warn</option>
|
|
||||||
<option value="3">Error</option>
|
|
||||||
<option value="4">Info For Web Page</option>
|
|
||||||
<option value="5">Warn For Web Page</option>
|
|
||||||
<option value="6">Error For Web Page</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-show-fps" small height="25"><span style="color: #aaa;">Show FPS</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<span style="font-size: small;color: #aaa;" class="item">FPS:</span><input id="input-set-fps"
|
|
||||||
type="number" />
|
|
||||||
</div>
|
|
||||||
<div style="margin-right: 0px;" class="item">
|
|
||||||
<v-btn id="btn-pause" small height="25"><span style="color: #aaa;">Pause</span></v-btn>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-step" style="display: none;" small height="25">
|
|
||||||
<span style="color: #aaa;">Step</span>
|
|
||||||
</v-btn>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<v-btn id="btn-recompile" small height="25"><span style="color: #aaa;">Recompile</span></v-btn>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<v-navigation-drawer v-model="drawer" app clipped fixed width="512" v-if="isShowTop">
|
|
||||||
<v-container style="height: 50%;overflow: auto;">
|
|
||||||
<v-text-field v-model="treeSearchText" dense label="Search Node or Component" dark flat solo-inverted
|
|
||||||
hide-details clearable clear-icon="mdi-close-circle-outline"></v-text-field>
|
|
||||||
<v-treeview :items="treeData" item-key="id" dense activatable :search="treeSearchText"
|
|
||||||
:active.sync="selectedNodes">
|
|
||||||
<template v-slot:label="{ item, active }">
|
|
||||||
<label v-if="item.active" style="color: white;">{{ item.name }}</label>
|
|
||||||
<label v-else style="color: gray;">{{ item.name }}</label>
|
|
||||||
</template>
|
|
||||||
</v-treeview>
|
|
||||||
</v-container>
|
|
||||||
<v-container style="border-top: 2px solid darkgray;height: 50%;overflow-y: auto;">
|
|
||||||
<template v-if="selectedNode">
|
|
||||||
<!-- Node -->
|
|
||||||
<table style="width: 100%;color: white;" border="1">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th colspan="2" style="text-align: left; padding: 10px;">
|
|
||||||
<div class="float-left" style="display:inline-flex;">
|
|
||||||
<v-simple-checkbox v-model="selectedNode.active"></v-simple-checkbox>
|
|
||||||
<span style="margin-left: 10px;">{{ nodeSchema.title }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="float-right">
|
|
||||||
<v-icon style="margin-left: 10px;margin-right: 10px;" @click="drawNodeRect()">
|
|
||||||
mdi-adjust</v-icon>
|
|
||||||
<v-icon @click="outputNodeHandler()">mdi-send</v-icon>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr v-for="row in nodeSchema.rows" :key="row.key">
|
|
||||||
<td style="padding: 10px;width: 40%;">{{ row.name }}</td>
|
|
||||||
<td style="width: 60%;">
|
|
||||||
<v-color-picker v-if="row.type == 'color'" class="ma-2" canvas-height="80" width="259"
|
|
||||||
v-model="selectedNode[row.key]"></v-color-picker>
|
|
||||||
<v-simple-checkbox v-else-if="row.type == 'bool'" v-model="selectedNode[row.key]"
|
|
||||||
style="padding: 10px;width: 100%;"></v-simple-checkbox>
|
|
||||||
<input v-else :type="row.type" v-model="selectedNode[row.key]"
|
|
||||||
style="padding: 10px;width: 100%;"></input>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<!-- Components -->
|
|
||||||
<table v-for="component in componentsSchema" style="width: 100%;color: white;" border="1">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th colspan="2" style="text-align: left; padding: 10px;">
|
|
||||||
<div class="float-left" style="display:inline-flex;">
|
|
||||||
<v-simple-checkbox v-model="selectedNode[component.key].enabled">
|
|
||||||
</v-simple-checkbox>
|
|
||||||
<span style="margin-left: 10px;">{{ component.title }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="float-right">
|
|
||||||
<v-icon @click="outputComponentHandler(component.key)">mdi-send</v-icon>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr v-for="row in component.rows" :key="row.key">
|
|
||||||
<td style="padding: 10px;width: 40%;">{{ row.name }}</td>
|
|
||||||
<td style="width: 60%;">
|
|
||||||
<v-color-picker v-if="row.type == 'color'" class="ma-2" canvas-height="80" width="259"
|
|
||||||
v-model="selectedNode[component.key][row.key]"></v-color-picker>
|
|
||||||
<textarea v-else-if="row.type == 'textarea'" rows="1"
|
|
||||||
v-model="selectedNode[component.key][row.key]" style="padding: 10px;width: 100%;">
|
|
||||||
</textarea>
|
|
||||||
<v-simple-checkbox v-else-if="row.type == 'bool'"
|
|
||||||
v-model="selectedNode[component.key][row.key]" style="padding: 10px;width: 100%;">
|
|
||||||
</v-simple-checkbox>
|
|
||||||
<input v-else :type="row.type" v-model="selectedNode[component.key][row.key]"
|
|
||||||
style="padding: 10px;width: 100%;"></input>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</template>
|
|
||||||
</v-container>
|
|
||||||
</v-navigation-drawer>
|
|
||||||
|
|
||||||
<v-content>
|
|
||||||
<v-container fill-height>
|
|
||||||
<div id="content" class="content">
|
|
||||||
<div class="contentWrap">
|
|
||||||
<div id="GameDiv" class="wrapper"><canvas id="GameCanvas"></canvas>
|
|
||||||
<div id="splash">
|
|
||||||
<div class="progress-bar stripes"><span></span></div>
|
|
||||||
</div>
|
|
||||||
<div id="bulletin">
|
|
||||||
<div id="sceneIsEmpty" class="inner">预览场景中啥都没有,加点什么,或在编辑器中打开其它场景吧</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</v-container>
|
|
||||||
</v-content>
|
|
||||||
|
|
||||||
<v-dialog v-model="cacheDialog" persistent scrollable>
|
|
||||||
<v-card>
|
|
||||||
<v-card-title>
|
|
||||||
{{ cacheTitle }}
|
|
||||||
<v-spacer></v-spacer>
|
|
||||||
<v-text-field v-model="cacheSearchText" append-icon="mdi-magnify" label="Search" single-line
|
|
||||||
hide-details>
|
|
||||||
</v-text-field>
|
|
||||||
</v-card-title>
|
|
||||||
<v-divider></v-divider>
|
|
||||||
<v-card-text>
|
|
||||||
<v-data-table :headers="cacheHeaders" :items="cacheData" :search="cacheSearchText" :sort-by="['size']"
|
|
||||||
:sort-desc="[true]" :footer-props="{
|
|
||||||
showFirstLastPage: true,
|
|
||||||
firstIcon: 'mdi-chevron-double-left',
|
|
||||||
lastIcon: 'mdi-chevron-double-right',
|
|
||||||
}">
|
|
||||||
<template v-slot:item.size="{ item }">
|
|
||||||
{{ item.size == -1 ? '_' : (item.size +'MB') }}
|
|
||||||
</template>
|
|
||||||
<template v-slot:item.preview="{ item }">
|
|
||||||
<div style="height: 60px;display: flex;align-items: center;">
|
|
||||||
<img :src="window.location.protocol + '//' + window.location.host + '/' + item.preview"
|
|
||||||
style="max-height: 60px;max-width: 120px;" v-if="item.preview">
|
|
||||||
<template v-else>_</template>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-data-table>
|
|
||||||
</v-card-text>
|
|
||||||
<v-divider></v-divider>
|
|
||||||
<v-card-actions>
|
|
||||||
<v-btn color="blue darken-1" text @click="cacheDialog = false">Close</v-btn>
|
|
||||||
<v-spacer></v-spacer>
|
|
||||||
<v-switch v-model="cacheOnlyTexture" label="只显示纹理"></v-switch>
|
|
||||||
</v-card-actions>
|
|
||||||
</v-card>
|
|
||||||
</v-dialog>
|
|
||||||
|
|
||||||
</v-app>
|
|
||||||
|
|
||||||
<script src="app/editor/static/preview-templates/ccc-devtools/libs/js/vue.min.js"></script>
|
|
||||||
<script src="app/editor/static/preview-templates/ccc-devtools/libs/js/vuetify.js"></script>
|
|
||||||
<script src="app/editor/static/preview-templates/ccc-devtools/config.js"></script>
|
|
||||||
<script src="app/editor/static/preview-templates/ccc-devtools/libs/js/cc-console-utils.js"></script>
|
|
||||||
<script src="app/editor/static/preview-templates/ccc-devtools/preview.js"></script>
|
|
@ -1,336 +0,0 @@
|
|||||||
/* cyrillic-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff2) format('woff2');
|
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
||||||
}
|
|
||||||
/* cyrillic */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff22) format('woff2');
|
|
||||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
||||||
}
|
|
||||||
/* greek-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff22) format('woff2');
|
|
||||||
unicode-range: U+1F00-1FFF;
|
|
||||||
}
|
|
||||||
/* greek */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff22) format('woff2');
|
|
||||||
unicode-range: U+0370-03FF;
|
|
||||||
}
|
|
||||||
/* vietnamese */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff22) format('woff2');
|
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
|
||||||
}
|
|
||||||
/* latin-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff22) format('woff2');
|
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
||||||
}
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
src: local('Roboto Thin'), local('Roboto-Thin'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
/* cyrillic-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
||||||
}
|
|
||||||
/* cyrillic */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
||||||
}
|
|
||||||
/* greek-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+1F00-1FFF;
|
|
||||||
}
|
|
||||||
/* greek */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0370-03FF;
|
|
||||||
}
|
|
||||||
/* vietnamese */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
|
||||||
}
|
|
||||||
/* latin-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
||||||
}
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/googlefonts-base.woff2) format('woff2');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
/* cyrillic-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
||||||
}
|
|
||||||
/* cyrillic */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
||||||
}
|
|
||||||
/* greek-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+1F00-1FFF;
|
|
||||||
}
|
|
||||||
/* greek */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+0370-03FF;
|
|
||||||
}
|
|
||||||
/* vietnamese */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
|
||||||
}
|
|
||||||
/* latin-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2format('woff2');
|
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
||||||
}
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/googlefonts-base.woff2rmat('woff2');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
/* cyrillic-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
||||||
}
|
|
||||||
/* cyrillic */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
||||||
}
|
|
||||||
/* greek-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+1F00-1FFF;
|
|
||||||
}
|
|
||||||
/* greek */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0370-03FF;
|
|
||||||
}
|
|
||||||
/* vietnamese */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
|
||||||
}
|
|
||||||
/* latin-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
||||||
}
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/googlefonts-base.woff2) format('woff2');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
/* cyrillic-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
||||||
}
|
|
||||||
/* cyrillic */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
||||||
}
|
|
||||||
/* greek-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+1F00-1FFF;
|
|
||||||
}
|
|
||||||
/* greek */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0370-03FF;
|
|
||||||
}
|
|
||||||
/* vietnamese */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
|
||||||
}
|
|
||||||
/* latin-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
||||||
}
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/googlefonts-base.woff2) format('woff2');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
/* cyrillic-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
||||||
}
|
|
||||||
/* cyrillic */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
||||||
}
|
|
||||||
/* greek-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+1F00-1FFF;
|
|
||||||
}
|
|
||||||
/* greek */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0370-03FF;
|
|
||||||
}
|
|
||||||
/* vietnamese */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
|
||||||
}
|
|
||||||
/* latin-ext */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2f2) format('woff2');
|
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
||||||
}
|
|
||||||
/* latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
src: local('Roboto Black'), local('Roboto-Black'), url(../fonts/googlefonts-base.woff2) format('woff2');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
1
libs/css/materialdesignicons.min.css
vendored
8
libs/css/vuetify.min.css
vendored
@ -1,167 +0,0 @@
|
|||||||
const initConsoleUtil = function () {
|
|
||||||
if (cc.tree) return;
|
|
||||||
cc.tree = function (key) {
|
|
||||||
let index = key || 0;
|
|
||||||
let treeNode = function (node) {
|
|
||||||
let nameStyle =
|
|
||||||
`color: ${node.parent === null || node.activeInHierarchy ? 'green' : 'grey'}; font-size: 14px;font-weight:bold`;
|
|
||||||
let propStyle =
|
|
||||||
`color: black; background: lightgrey;margin-left: 5px;border-radius:3px;padding: 0 3px;font-size: 10px;font-weight:bold`;
|
|
||||||
let indexStyle =
|
|
||||||
`color: orange; background: black;margin-left: 5px;border-radius:3px;padding:0 3px;fonrt-size: 10px;font-weight:bold;`
|
|
||||||
let nameValue = `%c${node.name}`;
|
|
||||||
let propValue =
|
|
||||||
`%c${node.x.toFixed(0) + ',' + node.y.toFixed(0) + ',' + node.width.toFixed(0) + ',' + node.height.toFixed(0) + ',' + node.scale.toFixed(1)}`
|
|
||||||
let indexValue = `%c${index++}`;
|
|
||||||
if (node.childrenCount > 0) {
|
|
||||||
console.groupCollapsed(nameValue + propValue + indexValue, nameStyle,
|
|
||||||
propStyle, indexStyle);
|
|
||||||
for (let i = 0; i < node.childrenCount; i++) {
|
|
||||||
treeNode(node.children[i]);
|
|
||||||
}
|
|
||||||
console.groupEnd();
|
|
||||||
} else {
|
|
||||||
console.log(nameValue + propValue + indexValue, nameStyle, propStyle,
|
|
||||||
indexStyle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (key) {
|
|
||||||
let node = cc.cat(key);
|
|
||||||
index = node['tempIndex'];
|
|
||||||
treeNode(node);
|
|
||||||
} else {
|
|
||||||
let scene = cc.director.getScene();
|
|
||||||
treeNode(scene);
|
|
||||||
}
|
|
||||||
return '属性依次为x,y,width,height,scale.使用cc.cat(id)查看详细属性.';
|
|
||||||
}
|
|
||||||
cc.cat = function (key) {
|
|
||||||
let index = 0;
|
|
||||||
let target;
|
|
||||||
let sortId = function (node) {
|
|
||||||
if (target) return;
|
|
||||||
if (cc.js.isNumber(key)) {
|
|
||||||
if (key === index++) {
|
|
||||||
target = node;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (key.toLowerCase() === node.name.toLowerCase()) {
|
|
||||||
target = node;
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (node.childrenCount > 0) {
|
|
||||||
for (let i = 0; i < node.childrenCount; i++) {
|
|
||||||
sortId(node.children[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let scene = cc.director.getScene();
|
|
||||||
sortId(scene);
|
|
||||||
target['tempIndex'] = cc.js.isNumber(key) ? key : index;
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
cc.list = function (key) {
|
|
||||||
let targets = [];
|
|
||||||
let step = function (node) {
|
|
||||||
if (node.name.toLowerCase().indexOf(key.toLowerCase()) > -1) {
|
|
||||||
targets.push(node);
|
|
||||||
}
|
|
||||||
if (node.childrenCount > 0) {
|
|
||||||
for (let i = 0; i < node.childrenCount; i++) {
|
|
||||||
step(node.children[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let scene = cc.director.getScene();
|
|
||||||
step(scene);
|
|
||||||
if (targets.length === 1) {
|
|
||||||
return targets[0];
|
|
||||||
} else {
|
|
||||||
return targets;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cc.where = function (key) {
|
|
||||||
let target = key.name ? key : cc.cat(key);
|
|
||||||
if (!target) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
let rect = target.getBoundingBoxToWorld();
|
|
||||||
let bgNode = new cc.Node();
|
|
||||||
let graphics = bgNode.addComponent(cc.Graphics);
|
|
||||||
let scene = cc.director.getScene();
|
|
||||||
scene.addChild(bgNode);
|
|
||||||
bgNode.position = rect.center;
|
|
||||||
bgNode.group = target.group;
|
|
||||||
bgNode.zIndex = cc.macro.MAX_ZINDEX;
|
|
||||||
let isZeroSize = rect.width === 0 || rect.height === 0;
|
|
||||||
if (isZeroSize) {
|
|
||||||
graphics.circle(0, 0, 100);
|
|
||||||
graphics.fillColor = cc.Color.GREEN;
|
|
||||||
graphics.fill();
|
|
||||||
} else {
|
|
||||||
bgNode.width = rect.width;
|
|
||||||
bgNode.height = rect.height;
|
|
||||||
graphics.rect(-bgNode.width / 2, -bgNode.height / 2, bgNode.width, bgNode.height);
|
|
||||||
graphics.fillColor = new cc.Color().fromHEX('#E91E6390');
|
|
||||||
graphics.fill();
|
|
||||||
}
|
|
||||||
setTimeout(() => {
|
|
||||||
if (cc.isValid(bgNode)) {
|
|
||||||
bgNode.destroy();
|
|
||||||
}
|
|
||||||
}, 2000);
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
cc.cache = function () {
|
|
||||||
let rawCacheData = cc.loader._cache;
|
|
||||||
let cacheData = [];
|
|
||||||
let totalTextureSize = 0;
|
|
||||||
for (let k in rawCacheData) {
|
|
||||||
let item = rawCacheData[k];
|
|
||||||
if (item.type !== 'js' && item.type !== 'json') {
|
|
||||||
let itemName = '_';
|
|
||||||
let preview = '';
|
|
||||||
let content = (item.content && item.content.__classname__) ? item.content.__classname__ : item.type;
|
|
||||||
let formatSize = -1;
|
|
||||||
if (item.type === 'png' || item.type === 'jpg') {
|
|
||||||
let texture = rawCacheData[k.replace('.' + item.type, '.json')];
|
|
||||||
if (texture && texture._owner && texture._owner._name) {
|
|
||||||
itemName = texture._owner._name;
|
|
||||||
preview = texture.content.url;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (item.content.name && item.content.name.length > 0) {
|
|
||||||
itemName = item.content.name;
|
|
||||||
} else if (item._owner) {
|
|
||||||
itemName = (item._owner && item._owner.name) || '_';
|
|
||||||
}
|
|
||||||
if (content === 'cc.Texture2D') {
|
|
||||||
let texture = item.content;
|
|
||||||
preview = texture.url;
|
|
||||||
let textureSize = texture.width * texture.height * ((texture._native === '.jpg' ? 3 : 4) / 1024 / 1024);
|
|
||||||
totalTextureSize += textureSize;
|
|
||||||
// sizeStr = textureSize.toFixed(3) + 'M';
|
|
||||||
formatSize = Math.round(textureSize * 1000) / 1000;
|
|
||||||
} else if (content === 'cc.SpriteFrame') {
|
|
||||||
preview = item.content._texture.url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cacheData.push({
|
|
||||||
queueId: item.queueId,
|
|
||||||
type: item.type,
|
|
||||||
name: itemName,
|
|
||||||
preview: preview,
|
|
||||||
id: item.id,
|
|
||||||
content: content,
|
|
||||||
size: formatSize
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let cacheTitle = `缓存 [文件总数:${cacheData.length}][纹理缓存:${totalTextureSize.toFixed(2) + 'M'}]`;
|
|
||||||
return [cacheData, cacheTitle];
|
|
||||||
}
|
|
||||||
}
|
|
6
libs/js/vue.min.js
vendored
41498
libs/js/vuetify.js
26
package.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "ccc-devtools",
|
||||||
|
"private": true,
|
||||||
|
"version": "0.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "vue-tsc --noEmit && vite build",
|
||||||
|
"preview": "vite preview",
|
||||||
|
"package": "node scripts/package.js"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"element-plus": "^2.2.6",
|
||||||
|
"vue": "^3.2.25",
|
||||||
|
"vue-final-modal": "^3.4.4"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vitejs/plugin-vue": "^2.3.3",
|
||||||
|
"adm-zip": "^0.5.9",
|
||||||
|
"typescript": "^4.5.4",
|
||||||
|
"unplugin-auto-import": "^0.9.3",
|
||||||
|
"unplugin-vue-components": "^0.21.1",
|
||||||
|
"vite": "^2.9.9",
|
||||||
|
"vue-tsc": "^0.34.7"
|
||||||
|
}
|
||||||
|
}
|
193
preview.js
@ -1,193 +0,0 @@
|
|||||||
const app = new Vue({
|
|
||||||
el: '#app',
|
|
||||||
vuetify: new Vuetify({
|
|
||||||
theme: { dark: true }
|
|
||||||
}),
|
|
||||||
data: {
|
|
||||||
isShowTop: true,
|
|
||||||
drawer: false,
|
|
||||||
cacheDialog: false,
|
|
||||||
cacheTitle: '',
|
|
||||||
cacheHeaders: [
|
|
||||||
{ text: 'Type', value: 'type' },
|
|
||||||
{ text: 'Name', value: 'name' },
|
|
||||||
{ text: 'Preivew', value: 'preview' },
|
|
||||||
{ text: 'ID', value: 'id' },
|
|
||||||
{ text: 'Content', value: 'content' },
|
|
||||||
{ text: 'Size', value: 'size' },
|
|
||||||
],
|
|
||||||
cacheRawData: [],
|
|
||||||
cacheData: [],
|
|
||||||
cacheSearchText: null,
|
|
||||||
cacheOnlyTexture: true,
|
|
||||||
treeData: [],
|
|
||||||
selectedNodes: [],
|
|
||||||
intervalId: -1,
|
|
||||||
treeSearchText: null,
|
|
||||||
nodeSchema: {},
|
|
||||||
componentsSchema: [],
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
if (window.innerHeight === window.outerHeight) { // 手机端,chrome device模式
|
|
||||||
this.isShowTop = false;
|
|
||||||
}
|
|
||||||
this.waitCCInit().then(() => {
|
|
||||||
if (this.isShowTop) {
|
|
||||||
this.startUpdateTree();
|
|
||||||
}
|
|
||||||
initConsoleUtil();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
cacheOnlyTexture() {
|
|
||||||
this.updateCacheData();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
treeFilter() {
|
|
||||||
return (item, search, textKey) => item[textKey].indexOf(search) > -1;
|
|
||||||
},
|
|
||||||
selectedNode() {
|
|
||||||
if (!this.selectedNodes.length) return undefined
|
|
||||||
let node = getNodeById(this.selectedNodes[0]);
|
|
||||||
if (node) {
|
|
||||||
if (!node.hex_color) {
|
|
||||||
cc.js.getset(node, 'hex_color', () => {
|
|
||||||
return '#' + node.color.toHEX('#rrggbb');
|
|
||||||
}, (hex) => {
|
|
||||||
node.color = new cc.Color().fromHEX(hex);
|
|
||||||
}, false, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
let superPreLoad = node._onPreDestroy;
|
|
||||||
node._onPreDestroy = () => {
|
|
||||||
superPreLoad.apply(node);
|
|
||||||
if (this.selectedNodes.length > 0 && this.selectedNodes[0] === node._id) {
|
|
||||||
this.selectedNodes.pop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.nodeSchema = NEX_CONFIG.nodeSchema.node2d;
|
|
||||||
let componentsSchema = [];
|
|
||||||
for (let component of node._components) {
|
|
||||||
let schema = NEX_CONFIG.componentsSchema[component.__classname__];
|
|
||||||
if (schema) {
|
|
||||||
node[schema.key] = node.getComponent(schema.key);
|
|
||||||
for (let i = 0; i < schema.rows.length; i++) {
|
|
||||||
if (schema.rows[i].type === 'color') {
|
|
||||||
if (!node[schema.key][schema.rows[i].key]) {
|
|
||||||
cc.js.getset(node[schema.key], schema.rows[i].key, () => {
|
|
||||||
return '#' + node.getComponent(schema.key)[schema.rows[i].rawKey].toHEX('#rrggbb');
|
|
||||||
}, (hex) => {
|
|
||||||
node.getComponent(schema.key)[schema.rows[i].rawKey] = new cc.Color().fromHEX(hex);
|
|
||||||
}, false, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
schema = {
|
|
||||||
title: component.__classname__,
|
|
||||||
key: component.__classname__
|
|
||||||
};
|
|
||||||
node[schema.key] = node.getComponent(schema.key);
|
|
||||||
}
|
|
||||||
componentsSchema.push(schema);
|
|
||||||
}
|
|
||||||
this.componentsSchema = componentsSchema;
|
|
||||||
}
|
|
||||||
return node;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
waitCCInit() {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
let id = setInterval(() => {
|
|
||||||
if (window.cc) {
|
|
||||||
resolve();
|
|
||||||
clearInterval(id);
|
|
||||||
}
|
|
||||||
}, 500);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
refreshTree: function () {
|
|
||||||
if (!this.$data.drawer || !window.cc || !cc.director.getScene() || !cc.director.getScene().children) return;
|
|
||||||
this.$data.treeData = getChildren(cc.director.getScene());
|
|
||||||
},
|
|
||||||
startUpdateTree: function () {
|
|
||||||
this.$data.intervalId = setInterval(() => {
|
|
||||||
this.refreshTree();
|
|
||||||
}, 200);
|
|
||||||
},
|
|
||||||
stopUpdateTree: function () {
|
|
||||||
clearInterval(this.$data.intervalId);
|
|
||||||
},
|
|
||||||
outputNodeHandler(id) {
|
|
||||||
let i = 1;
|
|
||||||
while (window['temp' + i] !== undefined) {
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
window['temp' + i] = this.selectedNode;
|
|
||||||
console.log('temp' + i);
|
|
||||||
console.log(window['temp' + i]);
|
|
||||||
},
|
|
||||||
outputComponentHandler(component) {
|
|
||||||
let i = 1;
|
|
||||||
while (window['temp' + i] !== undefined) {
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
window['temp' + i] = this.selectedNode.getComponent(component);
|
|
||||||
console.log('temp' + i);
|
|
||||||
console.log(window['temp' + i]);
|
|
||||||
},
|
|
||||||
drawNodeRect() {
|
|
||||||
cc.where(this.selectedNode);
|
|
||||||
},
|
|
||||||
updateCacheData() {
|
|
||||||
if (this.$data.cacheOnlyTexture) {
|
|
||||||
this.$data.cacheData = this.$data.cacheRawData.filter(item => item.content === 'cc.Texture2D');
|
|
||||||
} else {
|
|
||||||
this.$data.cacheData = this.$data.cacheRawData;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
openCacheDialog() {
|
|
||||||
[this.$data.cacheRawData, this.$data.cacheTitle] = cc.cache();
|
|
||||||
this.updateCacheData();
|
|
||||||
this.$data.cacheDialog = true;
|
|
||||||
},
|
|
||||||
openGithub() {
|
|
||||||
window.open('https://github.com/potato47/ccc-devtools');
|
|
||||||
},
|
|
||||||
openCocosForum() {
|
|
||||||
window.open('https://forum.cocos.com/');
|
|
||||||
},
|
|
||||||
openCocosDocs() {
|
|
||||||
window.open('https://docs.cocos.com/');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function getChildren(node) {
|
|
||||||
return node.children.map(child => {
|
|
||||||
let children = (child.children && child.children.length > 0) ? getChildren(child) : [];
|
|
||||||
return { id: child._id, name: child.name, active: child.activeInHierarchy, children };
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNodeById(id) {
|
|
||||||
let target;
|
|
||||||
const search = function (node) {
|
|
||||||
if (node._id === id) {
|
|
||||||
target = node;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (node.childrenCount) {
|
|
||||||
for (let i = 0; i < node.childrenCount; i++) {
|
|
||||||
if (!target) {
|
|
||||||
search(node.children[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const scene = cc.director.getScene();
|
|
||||||
search(scene);
|
|
||||||
return target;
|
|
||||||
}
|
|
BIN
release/preview-template.zip
Normal file
1
release/preview-template/dist/assets/index.2ee0cb33.css
vendored
Normal file
111
release/preview-template/dist/assets/index.5ef8f116.js
vendored
Normal file
3
release/preview-template/dist/index.html
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<script type="module" crossorigin src="/dist/assets/index.5ef8f116.js"></script>
|
||||||
|
<link rel="stylesheet" href="/dist/assets/index.2ee0cb33.css">
|
||||||
|
<div id="app"></div>
|
58
release/preview-template/index.ejs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<html class="dark">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<link rel="icon" href="./favicon.ico" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>
|
||||||
|
<%=title%>
|
||||||
|
</title>
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width,user-scalable=no,initial-scale=1,minimum-scale=1,maximum-scale=1,minimal-ui=true" />
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
<meta name="full-screen" content="yes" />
|
||||||
|
<meta name="screen-orientation" content="portrait" />
|
||||||
|
<meta name="x5-fullscreen" content="true" />
|
||||||
|
<meta name="360-fullscreen" content="true" />
|
||||||
|
<meta name="renderer" content="webkit" />
|
||||||
|
<meta name="force-rendering" content="webkit" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="./index.css" />
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css" />
|
||||||
|
<script src="https://unpkg.com/vue@next"></script>
|
||||||
|
<script src="https://unpkg.com/element-plus"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<%- include(cocosToolBar, {config: config}) %>
|
||||||
|
<div style="flex: auto;display: flex;">
|
||||||
|
<% include ./dist/index.html %>
|
||||||
|
<div id="content" class="content">
|
||||||
|
<div class="contentWrap">
|
||||||
|
<div id="GameDiv" class="wrapper">
|
||||||
|
<div id="Cocos3dGameContainer">
|
||||||
|
<canvas id="GameCanvas"></canvas>
|
||||||
|
</div>
|
||||||
|
<div id="splash">
|
||||||
|
<div class="progress-bar stripes"><span></span></div>
|
||||||
|
</div>
|
||||||
|
<div id="bulletin">
|
||||||
|
<div id="sceneIsEmpty" class="inner">
|
||||||
|
<%=tip_sceneIsEmpty%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="error" id="error">
|
||||||
|
<div class="title">Error <i>(Please open the console to see detailed errors)</i></div>
|
||||||
|
<div class="error-main"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="footer">
|
||||||
|
Created with <a href="https://www.cocos.com/products" target="_blank" title="Cocos Creator">Cocos
|
||||||
|
Creator</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%- include(cocosTemplate, {}) %>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
1
release/preview-template/version.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"name":"ccc-devtools","version":"2022/7/17","author":"Next","repo":"https://github.com/potato47/ccc-devtools.git"}
|
Before Width: | Height: | Size: 849 KiB |
Before Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 205 KiB |
Before Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 211 KiB |
14
scripts/package.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
const AdmZip = require('adm-zip');
|
||||||
|
const path = require('path');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const versionPath = path.join(__dirname, '../release/preview-template/version.json');
|
||||||
|
const versionContent = fs.readFileSync(versionPath, 'utf-8');
|
||||||
|
const fileObject = JSON.parse(versionContent);
|
||||||
|
fileObject.version = new Date().toLocaleDateString();
|
||||||
|
fs.writeFileSync(versionPath, JSON.stringify(fileObject), 'utf-8');
|
||||||
|
|
||||||
|
const zip = new AdmZip();
|
||||||
|
|
||||||
|
zip.addLocalFolder(path.join(__dirname, '../release/preview-template'));
|
||||||
|
zip.writeZip(path.join(__dirname, '../release/preview-template.zip'));
|
39
src/App.vue
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import TreePanel from './components/TreePanel.vue';
|
||||||
|
import { ref } from 'vue';
|
||||||
|
let showTree = ref(false);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<vue-final-modal v-model="showTree" classes="modal-container" content-class="modal-content" :hide-overlay="true"
|
||||||
|
:click-to-close="false" :prevent-click="true" :drag="true" :fit-parent="true" drag-selector=".modal-drag">
|
||||||
|
<TreePanel :show="showTree"></TreePanel>
|
||||||
|
</vue-final-modal>
|
||||||
|
<el-button size="small" @click="showTree = !showTree">节点树</el-button>
|
||||||
|
<el-button size="small" @click="showTree = !showTree">自定义监听</el-button>
|
||||||
|
<el-button size="small" @click="showTree = !showTree">设置</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
:deep(.modal-container) {
|
||||||
|
display: flex;
|
||||||
|
justify-content: start;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.modal-content) {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 1px solid #e2e8f0;
|
||||||
|
border-radius: 0.25rem;
|
||||||
|
background: #171920;
|
||||||
|
min-width: 400px;
|
||||||
|
height: 80%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
24
src/components/CCComponent.vue
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<template>
|
||||||
|
<div class="row">
|
||||||
|
<el-checkbox v-model="component!.enabled" size="small" style="margin-right: 10px;" />
|
||||||
|
<span style="flex: 1;">{{ name }}</span>
|
||||||
|
<el-button size="small" @click="Utils.outputToConsole(component)">></el-button>
|
||||||
|
</div>
|
||||||
|
<PropItem v-if="model" v-for="prop in model.props" :key="prop.key" :model="prop.custom ? model : component" :prop-name="prop.name" :prop-key="prop.key"
|
||||||
|
:update-key="updateKey!"></PropItem>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import PropItem from './PropItem.vue';
|
||||||
|
import Utils from '../misc/Utils';
|
||||||
|
import { ComponentManager } from '../misc/ComponentManager';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
name: String,
|
||||||
|
component: Object,
|
||||||
|
updateKey: Number,
|
||||||
|
});
|
||||||
|
|
||||||
|
const model = ComponentManager.getViewModel(props.name!, () => props.component)!;
|
||||||
|
|
||||||
|
</script>
|
101
src/components/CCNode.vue
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<template>
|
||||||
|
<div class="row">
|
||||||
|
<el-checkbox v-model="ccNode!.active" size="small" style="margin-right: 10px;" />
|
||||||
|
<span class="header-title" style="flex: 1;">Node</span>
|
||||||
|
<el-button size="small">+</el-button>
|
||||||
|
<el-button size="small" @click="Utils.outputToConsole(ccNode)">></el-button>
|
||||||
|
</div>
|
||||||
|
<PropItem v-for="prop in NodeModel.props" :key="prop.key" :model="NodeModel" :prop-name="prop.name"
|
||||||
|
:prop-key="prop.key" :update-key="updateKey!"></PropItem>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import PropItem from './PropItem.vue';
|
||||||
|
import Utils from '../misc/Utils';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
ccNode: Object,
|
||||||
|
updateKey: Number,
|
||||||
|
});
|
||||||
|
|
||||||
|
class NodeModel {
|
||||||
|
|
||||||
|
static props = [
|
||||||
|
{ name: 'Name', key: 'nodeName' },
|
||||||
|
{ name: 'X', key: 'x' },
|
||||||
|
{ name: 'Y', key: 'y' },
|
||||||
|
{ name: 'Z', key: 'z' },
|
||||||
|
{ name: 'Scale X', key: 'scaleX' },
|
||||||
|
{ name: 'Scale Y', key: 'scaleY' },
|
||||||
|
{ name: 'Scale Z', key: 'scaleZ' },
|
||||||
|
]
|
||||||
|
|
||||||
|
static get ccNode(): any {
|
||||||
|
return props.ccNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
static get nodeName() {
|
||||||
|
return this.ccNode.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set nodeName(value: number) {
|
||||||
|
this.ccNode.name = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static get x() {
|
||||||
|
return this.ccNode.getPosition().x;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set x(value: number) {
|
||||||
|
const originPos = this.ccNode.getPosition();
|
||||||
|
this.ccNode.setPosition(value, originPos.y, originPos.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
static get y() {
|
||||||
|
return this.ccNode.getPosition().y;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set y(value: number) {
|
||||||
|
const originPos = this.ccNode.getPosition();
|
||||||
|
this.ccNode.setPosition(originPos.x, value, originPos.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
static get z() {
|
||||||
|
return this.ccNode.getPosition().z;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set z(value: number) {
|
||||||
|
const originPos = this.ccNode.getPosition();
|
||||||
|
this.ccNode.setPosition(originPos.x, originPos.y, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static get scaleX() {
|
||||||
|
return this.ccNode.getScale().x;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set scaleX(value: number) {
|
||||||
|
const originScale = this.ccNode.getScale();
|
||||||
|
this.ccNode.setScale(value, originScale.y, originScale.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
static get scaleY() {
|
||||||
|
return this.ccNode.getScale().y;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set scaleY(value: number) {
|
||||||
|
const originScale = this.ccNode.getScale();
|
||||||
|
this.ccNode.setScale(originScale.x, value, originScale.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
static get scaleZ() {
|
||||||
|
return this.ccNode.getScale().z;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set scaleZ(value: number) {
|
||||||
|
const originScale = this.ccNode.getScale();
|
||||||
|
this.ccNode.setScale(originScale.x, originScale.y, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
43
src/components/PropItem.vue
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<template>
|
||||||
|
<div class="row">
|
||||||
|
<span style="flex: 1">{{ propName }}</span>
|
||||||
|
<el-input-number v-model="model[propKey]" :precision="2" size="small" controls-position="right" style="flex: 1"
|
||||||
|
v-if="getPropType() == 'number'" />
|
||||||
|
<el-input size="small" v-model="model[propKey]" style="flex: 1" v-else-if="getPropType() == 'string'" />
|
||||||
|
<el-checkbox v-model="model[propKey]" size="small" style="margin-left: 10px"
|
||||||
|
v-else-if="getPropType() == 'boolean'" />
|
||||||
|
<el-color-picker v-model="CustomModel.color" size="small" style="flex: 1" color-format="hex" show-alpha
|
||||||
|
v-else-if="getPropType() == 'cc.Color'" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
const props = defineProps<{
|
||||||
|
model: any;
|
||||||
|
propName: string;
|
||||||
|
propKey: string;
|
||||||
|
updateKey: number;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
function getPropType() {
|
||||||
|
const data = props.model[props.propKey];
|
||||||
|
const dataType = typeof data;
|
||||||
|
if (dataType === "object" && data.__classname__) {
|
||||||
|
return data.__classname__;
|
||||||
|
}
|
||||||
|
return dataType;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CustomModel {
|
||||||
|
static get color() {
|
||||||
|
const origin = props.model[props.propKey];
|
||||||
|
const hexA = origin.a.toString(16);
|
||||||
|
return `#${origin.toHEX()}${hexA.length === 1 ? "0" + hexA : hexA}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
static set color(v: string) {
|
||||||
|
// @ts-ignore
|
||||||
|
props.model[props.propKey] = new cc.Color().fromHEX(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
169
src/components/TreePanel.vue
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<template>
|
||||||
|
<div style="width: 100%;height: 30px;background-color: #26282f;display: flex;align-items: center;justify-content: center;color: white;" class="modal-drag">
|
||||||
|
节点树
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%;overflow: auto;" :style="{ height: treeViewHeight }">
|
||||||
|
<el-tree-v2 ref="treeView" :props="defaultProps" empty-text="正在加载场景" :highlight-current="true"
|
||||||
|
:expand-on-click-node="false" :default-expanded-keys="expandedKeys" @current-change="handleCurrentNodeChange"
|
||||||
|
@node-expand="handleNodeExpand" @node-collapse="handleNodeCollapse" :height="treeViewHeight">
|
||||||
|
<template #default="{ node }">
|
||||||
|
<span :class="{ 'node-hide': !node.data.active }">{{ node.label }}</span>
|
||||||
|
</template>
|
||||||
|
</el-tree-v2>
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%;border-top: 2px solid #1d1e21;overflow: auto;flex: 1;">
|
||||||
|
<template v-if="updateKey !== 0 && Utils.checkNodeValid(currentNode)">
|
||||||
|
<el-scrollbar>
|
||||||
|
<CCNode :cc-node="currentNode" :update-key="updateKey"></CCNode>
|
||||||
|
<div class="row" style="height: 2px;background-color: #1d1e21"></div>
|
||||||
|
<template v-for="component in Utils.getComponents(currentNode)" :key="component.name">
|
||||||
|
<CCComponent v-if="component.name.startsWith('cc.')" :component="component.target" :name="component.name"
|
||||||
|
:update-key="updateKey"></CCComponent>
|
||||||
|
<UserComponent v-else :component="component.target" :name="component.name" :update-key="updateKey">
|
||||||
|
</UserComponent>
|
||||||
|
<div class="row" style="height: 2px;background-color: #1d1e21"></div>
|
||||||
|
</template>
|
||||||
|
</el-scrollbar>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { onMounted } from 'vue';
|
||||||
|
import { ref } from 'vue-demi';
|
||||||
|
import CCNode from './CCNode.vue';
|
||||||
|
import Utils from '../misc/Utils';
|
||||||
|
import CCComponent from './CCComponent.vue';
|
||||||
|
import UserComponent from './UserComponent.vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
show: Boolean,
|
||||||
|
});
|
||||||
|
|
||||||
|
interface TreeNode {
|
||||||
|
name: string;
|
||||||
|
uuid: string;
|
||||||
|
active: boolean;
|
||||||
|
children?: TreeNode[];
|
||||||
|
path: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
let updateKey = ref(1);
|
||||||
|
let currentNode: any;
|
||||||
|
const expandedNodeMap = new Map();
|
||||||
|
let expandedKeys: string[] = [];
|
||||||
|
const defaultProps = {
|
||||||
|
value: 'uuid',
|
||||||
|
label: 'name',
|
||||||
|
children: 'children',
|
||||||
|
};
|
||||||
|
|
||||||
|
const treeViewHeight = window.innerHeight * 0.4;
|
||||||
|
const treeView = ref(null);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
console.log('ccc-devtools init');
|
||||||
|
});
|
||||||
|
|
||||||
|
function getChildByUuidPath(node: any, path: string[], index: number): any {
|
||||||
|
if (index >= path.length) {
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
node = node.getChildByUuid(path[index]);
|
||||||
|
return getChildByUuidPath(node, path, index + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleCurrentNodeChange(data: TreeNode) {
|
||||||
|
console.log(data);
|
||||||
|
// @ts-ignore
|
||||||
|
const ccNode = getChildByUuidPath(cc.director.getScene(), data.path, 0);
|
||||||
|
if (data) {
|
||||||
|
currentNode = ccNode;
|
||||||
|
} else {
|
||||||
|
currentNode = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleNodeExpand(data: TreeNode) {
|
||||||
|
expandedNodeMap.set(data.uuid, true);
|
||||||
|
expandedKeys = [...expandedNodeMap.keys()];
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleNodeCollapse(data: TreeNode) {
|
||||||
|
expandedNodeMap.delete(data.uuid);
|
||||||
|
expandedKeys = [...expandedNodeMap.keys()];
|
||||||
|
}
|
||||||
|
|
||||||
|
function setChildren(container: TreeNode[], children: any[], path: string[]) {
|
||||||
|
children.forEach(ccNode => {
|
||||||
|
const childPath = path.concat(ccNode.uuid);
|
||||||
|
const node = {
|
||||||
|
uuid: ccNode.uuid,
|
||||||
|
name: ccNode.name,
|
||||||
|
active: ccNode.activeInHierarchy,
|
||||||
|
children: [],
|
||||||
|
path: childPath,
|
||||||
|
};
|
||||||
|
if (ccNode.children && ccNode.children.length > 0) {
|
||||||
|
setChildren(node.children, ccNode.children, childPath);
|
||||||
|
}
|
||||||
|
container.push(node);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function refreshTree() {
|
||||||
|
if (props.show) {
|
||||||
|
let value: TreeNode[] = [];
|
||||||
|
//@ts-ignore
|
||||||
|
setChildren(value, cc.director.getScene().children, []);
|
||||||
|
(treeView.value as any).setData(value);
|
||||||
|
updateKey.value = -updateKey.value;
|
||||||
|
}
|
||||||
|
window.requestAnimationFrame(refreshTree);
|
||||||
|
}
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
refreshTree();
|
||||||
|
}
|
||||||
|
|
||||||
|
const intervalId = setInterval(() => {
|
||||||
|
// @ts-ignore
|
||||||
|
if (window['cc'] && cc.director.getScene()) {
|
||||||
|
init();
|
||||||
|
clearInterval(intervalId);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input__inner {
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input__wrapper {
|
||||||
|
padding-left: 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-color-picker {
|
||||||
|
flex: 1 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-color-picker__trigger {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #cfd3dc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node-hide {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
</style>
|
18
src/components/UserComponent.vue
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<template>
|
||||||
|
<div class="row">
|
||||||
|
<el-checkbox v-model="component!.enabled" size="small" style="margin-right: 10px;" />
|
||||||
|
<span class="header-title" style="flex: 1;">{{ name }}</span>
|
||||||
|
<el-button size="small" @click="Utils.outputToConsole(component)">></el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import Utils from '../misc/Utils';
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
name: String,
|
||||||
|
component: Object,
|
||||||
|
updateKey: Number,
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
12
src/env.d.ts
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/// <reference types="vite/client" />
|
||||||
|
|
||||||
|
declare module '*.vue' {
|
||||||
|
import type { DefineComponent } from 'vue'
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
|
||||||
|
const component: DefineComponent<{}, {}, any>
|
||||||
|
export default component
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module "ccc" {
|
||||||
|
function hehe(): void;
|
||||||
|
}
|
6
src/main.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { createApp } from 'vue';
|
||||||
|
import App from './App.vue';
|
||||||
|
import 'element-plus/theme-chalk/dark/css-vars.css';
|
||||||
|
import vfmPlugin from 'vue-final-modal'
|
||||||
|
|
||||||
|
createApp(App).use(vfmPlugin).mount('#app');
|
100
src/misc/ComponentManager.ts
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
interface IComponentProp {
|
||||||
|
name: string;
|
||||||
|
key: string;
|
||||||
|
custom?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IComponentViewModel {
|
||||||
|
props: IComponentProp[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ComponentManager {
|
||||||
|
static getViewModel(name: string, componentGetter: any) {
|
||||||
|
switch (name) {
|
||||||
|
case 'cc.UITransform':
|
||||||
|
return new CCUITransformModel(componentGetter);
|
||||||
|
case 'cc.Label':
|
||||||
|
return new CCLabelModel();
|
||||||
|
case 'cc.Sprite':
|
||||||
|
return new CCSpriteModel();
|
||||||
|
default:
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CCUITransformModel implements IComponentViewModel {
|
||||||
|
|
||||||
|
private componentGetter: any;
|
||||||
|
|
||||||
|
props: IComponentProp[] = [
|
||||||
|
{ name: 'Width', key: 'width', custom: true },
|
||||||
|
{ name: 'Height', key: 'height', custom: true },
|
||||||
|
{ name: 'Anchor X', key: 'anchorX', custom: true },
|
||||||
|
{ name: 'Anchor Y', key: 'anchorY', custom: true },
|
||||||
|
]
|
||||||
|
|
||||||
|
constructor(componentGetter: any) {
|
||||||
|
this.componentGetter = componentGetter;
|
||||||
|
}
|
||||||
|
|
||||||
|
get component(): any {
|
||||||
|
return this.componentGetter();
|
||||||
|
}
|
||||||
|
|
||||||
|
get width() {
|
||||||
|
return this.componentGetter().contentSize.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
set width(value: number) {
|
||||||
|
const origin = this.component.contentSize;
|
||||||
|
this.component.setContentSize(value, origin.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
get height() {
|
||||||
|
return this.component.contentSize.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
set height(value: number) {
|
||||||
|
const origin = this.component.contentSize;
|
||||||
|
this.component.setContentSize(origin.width, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
get anchorX() {
|
||||||
|
return this.component.anchorPoint.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
set anchorX(value: number) {
|
||||||
|
const origin = this.component.anchorPoint;
|
||||||
|
this.component.setAnchorPoint(value, origin.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
get anchorY() {
|
||||||
|
return this.component.anchorPoint.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
set anchorY(value: number) {
|
||||||
|
const origin = this.component.anchorPoint;
|
||||||
|
this.component.setAnchorPoint(origin.x, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class CCLabelModel implements IComponentViewModel {
|
||||||
|
|
||||||
|
props: IComponentProp[] = [
|
||||||
|
{ name: 'String', key: 'string' },
|
||||||
|
{ name: 'Color', key: 'color' },
|
||||||
|
{ name: 'Font Size', key: 'fontSize' },
|
||||||
|
{ name: 'Line Height', key: 'lineHeight' },
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class CCSpriteModel implements IComponentViewModel {
|
||||||
|
|
||||||
|
props: IComponentProp[] = [
|
||||||
|
{ name: 'Color', key: 'color' },
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
31
src/misc/Utils.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
export default class Utils {
|
||||||
|
|
||||||
|
static checkNodeValid(ccNode: any) {
|
||||||
|
// @ts-ignore
|
||||||
|
return ccNode && cc.isValid(ccNode)
|
||||||
|
}
|
||||||
|
|
||||||
|
static outputToConsole(target: any) {
|
||||||
|
let i = 1;
|
||||||
|
// @ts-ignore
|
||||||
|
while (window['temp' + i] !== undefined) {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
// @ts-ignore
|
||||||
|
window['temp' + i] = target;
|
||||||
|
console.log('temp' + i);
|
||||||
|
// @ts-ignore
|
||||||
|
console.log(window['temp' + i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static getComponentName(component: any) {
|
||||||
|
return component.__classname__;
|
||||||
|
}
|
||||||
|
|
||||||
|
static getComponents(ccNode: any) {
|
||||||
|
return ccNode.components.map((component: any) => {
|
||||||
|
return { name: component.__classname__, target: component }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
tsconfig.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "esnext",
|
||||||
|
"useDefineForClassFields": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"strict": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"sourceMap": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": false,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"lib": ["esnext", "dom"],
|
||||||
|
"skipLibCheck": true
|
||||||
|
},
|
||||||
|
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
|
||||||
|
"references": [{ "path": "./tsconfig.node.json" }]
|
||||||
|
}
|
8
tsconfig.node.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node"
|
||||||
|
},
|
||||||
|
"include": ["vite.config.ts"]
|
||||||
|
}
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "ccc-devtools",
|
|
||||||
"version": "2d-v2.0",
|
|
||||||
"author": "Next",
|
|
||||||
"repo": "https://github.com/potato47/ccc-devtools.git"
|
|
||||||
}
|
|
23
vite.config.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import vue from '@vitejs/plugin-vue'
|
||||||
|
import AutoImport from 'unplugin-auto-import/vite'
|
||||||
|
import Components from 'unplugin-vue-components/vite'
|
||||||
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
||||||
|
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [
|
||||||
|
vue(),
|
||||||
|
AutoImport({
|
||||||
|
resolvers: [ElementPlusResolver()],
|
||||||
|
}),
|
||||||
|
Components({
|
||||||
|
resolvers: [ElementPlusResolver()],
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
base: '/dist/',
|
||||||
|
build: {
|
||||||
|
outDir: './release/preview-template/dist',
|
||||||
|
emptyOutDir: true
|
||||||
|
}
|
||||||
|
})
|
876
yarn.lock
Normal file
@ -0,0 +1,876 @@
|
|||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@antfu/utils@^0.5.2":
|
||||||
|
version "0.5.2"
|
||||||
|
resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz#8c2d931ff927be0ebe740169874a3d4004ab414b"
|
||||||
|
integrity sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==
|
||||||
|
|
||||||
|
"@babel/parser@^7.16.4":
|
||||||
|
version "7.18.8"
|
||||||
|
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf"
|
||||||
|
integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==
|
||||||
|
|
||||||
|
"@ctrl/tinycolor@^3.4.1":
|
||||||
|
version "3.4.1"
|
||||||
|
resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz#75b4c27948c81e88ccd3a8902047bcd797f38d32"
|
||||||
|
integrity sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==
|
||||||
|
|
||||||
|
"@element-plus/icons-vue@^2.0.6":
|
||||||
|
version "2.0.6"
|
||||||
|
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz#8490e7a3193c17515d10c3be0544d800afe6a228"
|
||||||
|
integrity sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==
|
||||||
|
|
||||||
|
"@floating-ui/core@^0.7.3":
|
||||||
|
version "0.7.3"
|
||||||
|
resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-0.7.3.tgz#d274116678ffae87f6b60e90f88cc4083eefab86"
|
||||||
|
integrity sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==
|
||||||
|
|
||||||
|
"@floating-ui/dom@^0.5.4":
|
||||||
|
version "0.5.4"
|
||||||
|
resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.5.4.tgz#4eae73f78bcd4bd553ae2ade30e6f1f9c73fe3f1"
|
||||||
|
integrity sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==
|
||||||
|
dependencies:
|
||||||
|
"@floating-ui/core" "^0.7.3"
|
||||||
|
|
||||||
|
"@nodelib/fs.scandir@2.1.5":
|
||||||
|
version "2.1.5"
|
||||||
|
resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||||
|
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
||||||
|
dependencies:
|
||||||
|
"@nodelib/fs.stat" "2.0.5"
|
||||||
|
run-parallel "^1.1.9"
|
||||||
|
|
||||||
|
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
||||||
|
version "2.0.5"
|
||||||
|
resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
|
||||||
|
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||||
|
|
||||||
|
"@nodelib/fs.walk@^1.2.3":
|
||||||
|
version "1.2.8"
|
||||||
|
resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
|
||||||
|
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
||||||
|
dependencies:
|
||||||
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
|
fastq "^1.6.0"
|
||||||
|
|
||||||
|
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
|
||||||
|
version "2.11.7"
|
||||||
|
resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz#a7f69e3665d3da9b115f9e71671dae1b97e13671"
|
||||||
|
integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
|
||||||
|
|
||||||
|
"@rollup/pluginutils@^4.2.1":
|
||||||
|
version "4.2.1"
|
||||||
|
resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d"
|
||||||
|
integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==
|
||||||
|
dependencies:
|
||||||
|
estree-walker "^2.0.1"
|
||||||
|
picomatch "^2.2.2"
|
||||||
|
|
||||||
|
"@types/lodash-es@^4.17.6":
|
||||||
|
version "4.17.6"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz#c2ed4c8320ffa6f11b43eb89e9eaeec65966a0a0"
|
||||||
|
integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==
|
||||||
|
dependencies:
|
||||||
|
"@types/lodash" "*"
|
||||||
|
|
||||||
|
"@types/lodash@*", "@types/lodash@^4.14.182":
|
||||||
|
version "4.14.182"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2"
|
||||||
|
integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==
|
||||||
|
|
||||||
|
"@types/web-bluetooth@^0.0.14":
|
||||||
|
version "0.0.14"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz#94e175b53623384bff1f354cdb3197a8d63cdbe5"
|
||||||
|
integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==
|
||||||
|
|
||||||
|
"@vitejs/plugin-vue@^2.3.3":
|
||||||
|
version "2.3.3"
|
||||||
|
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz#fbf80cc039b82ac21a1acb0f0478de8f61fbf600"
|
||||||
|
integrity sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==
|
||||||
|
|
||||||
|
"@volar/code-gen@0.34.17":
|
||||||
|
version "0.34.17"
|
||||||
|
resolved "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.34.17.tgz#fd46e369454e6bd9599b511500b4c43acb9730bd"
|
||||||
|
integrity sha512-rHR7BA71BJ/4S7xUOPMPiB7uk6iU9oTWpEMZxFi5VGC9iJmDncE82WzU5iYpcbOBCVHsOjMh0+5CGMgdO6SaPA==
|
||||||
|
dependencies:
|
||||||
|
"@volar/source-map" "0.34.17"
|
||||||
|
|
||||||
|
"@volar/source-map@0.34.17":
|
||||||
|
version "0.34.17"
|
||||||
|
resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.34.17.tgz#79efc4d088e11f59fc857953185a1f852df70968"
|
||||||
|
integrity sha512-3yn1IMXJGGWB/G817/VFlFMi8oh5pmE7VzUqvgMZMrppaZpKj6/juvJIEiXNxRsgWc0RxIO8OSp4htdPUg1Raw==
|
||||||
|
|
||||||
|
"@volar/vue-code-gen@0.34.17":
|
||||||
|
version "0.34.17"
|
||||||
|
resolved "https://registry.npmmirror.com/@volar/vue-code-gen/-/vue-code-gen-0.34.17.tgz#55ca9c21b38c91bf362761b268a77b9f0ecae8bf"
|
||||||
|
integrity sha512-17pzcK29fyFWUc+C82J3JYSnA+jy3QNrIldb9kPaP9Itbik05ZjEIyEue9FjhgIAuHeYSn4LDM5s6nGjxyfhsQ==
|
||||||
|
dependencies:
|
||||||
|
"@volar/code-gen" "0.34.17"
|
||||||
|
"@volar/source-map" "0.34.17"
|
||||||
|
"@vue/compiler-core" "^3.2.36"
|
||||||
|
"@vue/compiler-dom" "^3.2.36"
|
||||||
|
"@vue/shared" "^3.2.36"
|
||||||
|
|
||||||
|
"@volar/vue-typescript@0.34.17":
|
||||||
|
version "0.34.17"
|
||||||
|
resolved "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.34.17.tgz#497eb471ebac25ff61af04031b78ec71a34d470b"
|
||||||
|
integrity sha512-U0YSVIBPRWVPmgJHNa4nrfq88+oS+tmyZNxmnfajIw9A/GOGZQiKXHC0k09SVvbYXlsjgJ6NIjhm9NuAhGRQjg==
|
||||||
|
dependencies:
|
||||||
|
"@volar/code-gen" "0.34.17"
|
||||||
|
"@volar/source-map" "0.34.17"
|
||||||
|
"@volar/vue-code-gen" "0.34.17"
|
||||||
|
"@vue/compiler-sfc" "^3.2.36"
|
||||||
|
"@vue/reactivity" "^3.2.36"
|
||||||
|
|
||||||
|
"@vue/compiler-core@3.2.37", "@vue/compiler-core@^3.2.36":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz#b3c42e04c0e0f2c496ff1784e543fbefe91e215a"
|
||||||
|
integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/parser" "^7.16.4"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
estree-walker "^2.0.2"
|
||||||
|
source-map "^0.6.1"
|
||||||
|
|
||||||
|
"@vue/compiler-dom@3.2.37", "@vue/compiler-dom@^3.2.36":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz#10d2427a789e7c707c872da9d678c82a0c6582b5"
|
||||||
|
integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==
|
||||||
|
dependencies:
|
||||||
|
"@vue/compiler-core" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
|
||||||
|
"@vue/compiler-sfc@3.2.37", "@vue/compiler-sfc@^3.2.36":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4"
|
||||||
|
integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/parser" "^7.16.4"
|
||||||
|
"@vue/compiler-core" "3.2.37"
|
||||||
|
"@vue/compiler-dom" "3.2.37"
|
||||||
|
"@vue/compiler-ssr" "3.2.37"
|
||||||
|
"@vue/reactivity-transform" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
estree-walker "^2.0.2"
|
||||||
|
magic-string "^0.25.7"
|
||||||
|
postcss "^8.1.10"
|
||||||
|
source-map "^0.6.1"
|
||||||
|
|
||||||
|
"@vue/compiler-ssr@3.2.37":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz#4899d19f3a5fafd61524a9d1aee8eb0505313cff"
|
||||||
|
integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==
|
||||||
|
dependencies:
|
||||||
|
"@vue/compiler-dom" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
|
||||||
|
"@vue/reactivity-transform@3.2.37":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz#0caa47c4344df4ae59f5a05dde2a8758829f8eca"
|
||||||
|
integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/parser" "^7.16.4"
|
||||||
|
"@vue/compiler-core" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
estree-walker "^2.0.2"
|
||||||
|
magic-string "^0.25.7"
|
||||||
|
|
||||||
|
"@vue/reactivity@3.2.37", "@vue/reactivity@^3.2.36":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz#5bc3847ac58828e2b78526e08219e0a1089f8848"
|
||||||
|
integrity sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==
|
||||||
|
dependencies:
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
|
||||||
|
"@vue/runtime-core@3.2.37":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz#7ba7c54bb56e5d70edfc2f05766e1ca8519966e3"
|
||||||
|
integrity sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==
|
||||||
|
dependencies:
|
||||||
|
"@vue/reactivity" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
|
||||||
|
"@vue/runtime-dom@3.2.37":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz#002bdc8228fa63949317756fb1e92cdd3f9f4bbd"
|
||||||
|
integrity sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==
|
||||||
|
dependencies:
|
||||||
|
"@vue/runtime-core" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
csstype "^2.6.8"
|
||||||
|
|
||||||
|
"@vue/server-renderer@3.2.37":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz#840a29c8dcc29bddd9b5f5ffa22b95c0e72afdfc"
|
||||||
|
integrity sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==
|
||||||
|
dependencies:
|
||||||
|
"@vue/compiler-ssr" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
|
||||||
|
"@vue/shared@3.2.37", "@vue/shared@^3.2.36":
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702"
|
||||||
|
integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==
|
||||||
|
|
||||||
|
"@vueuse/core@^8.7.5":
|
||||||
|
version "8.9.4"
|
||||||
|
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-8.9.4.tgz#c7db40f19390b3c9f4ff9294a30461497f62ec19"
|
||||||
|
integrity sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==
|
||||||
|
dependencies:
|
||||||
|
"@types/web-bluetooth" "^0.0.14"
|
||||||
|
"@vueuse/metadata" "8.9.4"
|
||||||
|
"@vueuse/shared" "8.9.4"
|
||||||
|
vue-demi "*"
|
||||||
|
|
||||||
|
"@vueuse/metadata@8.9.4":
|
||||||
|
version "8.9.4"
|
||||||
|
resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.9.4.tgz#a4132db33e4c1b1023636acfa20aa7b37ab3d978"
|
||||||
|
integrity sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==
|
||||||
|
|
||||||
|
"@vueuse/shared@8.9.4":
|
||||||
|
version "8.9.4"
|
||||||
|
resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.9.4.tgz#c9741c30ffb666b50d62f0dd80b76119fd47573e"
|
||||||
|
integrity sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==
|
||||||
|
dependencies:
|
||||||
|
vue-demi "*"
|
||||||
|
|
||||||
|
acorn@^8.7.1:
|
||||||
|
version "8.7.1"
|
||||||
|
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
|
||||||
|
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
|
||||||
|
|
||||||
|
adm-zip@^0.5.9:
|
||||||
|
version "0.5.9"
|
||||||
|
resolved "https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.9.tgz#b33691028333821c0cf95c31374c5462f2905a83"
|
||||||
|
integrity sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==
|
||||||
|
|
||||||
|
anymatch@~3.1.2:
|
||||||
|
version "3.1.2"
|
||||||
|
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
||||||
|
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
||||||
|
dependencies:
|
||||||
|
normalize-path "^3.0.0"
|
||||||
|
picomatch "^2.0.4"
|
||||||
|
|
||||||
|
async-validator@^4.2.5:
|
||||||
|
version "4.2.5"
|
||||||
|
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
|
||||||
|
integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
|
||||||
|
|
||||||
|
balanced-match@^1.0.0:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||||
|
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||||
|
|
||||||
|
binary-extensions@^2.0.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||||
|
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||||
|
|
||||||
|
brace-expansion@^2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
|
||||||
|
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
|
||||||
|
dependencies:
|
||||||
|
balanced-match "^1.0.0"
|
||||||
|
|
||||||
|
braces@^3.0.2, braces@~3.0.2:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||||
|
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||||
|
dependencies:
|
||||||
|
fill-range "^7.0.1"
|
||||||
|
|
||||||
|
chokidar@^3.5.3:
|
||||||
|
version "3.5.3"
|
||||||
|
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
||||||
|
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||||
|
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"
|
||||||
|
optionalDependencies:
|
||||||
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
|
csstype@^2.6.8:
|
||||||
|
version "2.6.20"
|
||||||
|
resolved "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
|
||||||
|
integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
|
||||||
|
|
||||||
|
dayjs@^1.11.3:
|
||||||
|
version "1.11.3"
|
||||||
|
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz#4754eb694a624057b9ad2224b67b15d552589258"
|
||||||
|
integrity sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==
|
||||||
|
|
||||||
|
debug@^4.3.4:
|
||||||
|
version "4.3.4"
|
||||||
|
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||||
|
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||||
|
dependencies:
|
||||||
|
ms "2.1.2"
|
||||||
|
|
||||||
|
element-plus@^2.2.6:
|
||||||
|
version "2.2.9"
|
||||||
|
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.9.tgz#f0366dfb2048d614813926274cb443f17e5fdef2"
|
||||||
|
integrity sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ==
|
||||||
|
dependencies:
|
||||||
|
"@ctrl/tinycolor" "^3.4.1"
|
||||||
|
"@element-plus/icons-vue" "^2.0.6"
|
||||||
|
"@floating-ui/dom" "^0.5.4"
|
||||||
|
"@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7"
|
||||||
|
"@types/lodash" "^4.14.182"
|
||||||
|
"@types/lodash-es" "^4.17.6"
|
||||||
|
"@vueuse/core" "^8.7.5"
|
||||||
|
async-validator "^4.2.5"
|
||||||
|
dayjs "^1.11.3"
|
||||||
|
escape-html "^1.0.3"
|
||||||
|
lodash "^4.17.21"
|
||||||
|
lodash-es "^4.17.21"
|
||||||
|
lodash-unified "^1.0.2"
|
||||||
|
memoize-one "^6.0.0"
|
||||||
|
normalize-wheel-es "^1.1.2"
|
||||||
|
|
||||||
|
esbuild-android-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz#9e4682c36dcf6e7b71b73d2a3723a96e0fdc5054"
|
||||||
|
integrity sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==
|
||||||
|
|
||||||
|
esbuild-android-arm64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz#9861b1f7e57d1dd1f23eeef6198561c5f34b51f6"
|
||||||
|
integrity sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==
|
||||||
|
|
||||||
|
esbuild-darwin-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz#fd30a5ebe28704a3a117126c60f98096c067c8d1"
|
||||||
|
integrity sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==
|
||||||
|
|
||||||
|
esbuild-darwin-arm64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz#c04a3a57dad94a972c66a697a68a25aa25947f41"
|
||||||
|
integrity sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==
|
||||||
|
|
||||||
|
esbuild-freebsd-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz#c404dbd66c98451395b1eef0fa38b73030a7be82"
|
||||||
|
integrity sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==
|
||||||
|
|
||||||
|
esbuild-freebsd-arm64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz#b62cec96138ebc5937240ce3e1b97902963ea74a"
|
||||||
|
integrity sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==
|
||||||
|
|
||||||
|
esbuild-linux-32@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz#495b1cc011b8c64d8bbaf65509c1e7135eb9ddbf"
|
||||||
|
integrity sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==
|
||||||
|
|
||||||
|
esbuild-linux-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz#3f28dd8f986e6ff42f38888ee435a9b1fb916a56"
|
||||||
|
integrity sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==
|
||||||
|
|
||||||
|
esbuild-linux-arm64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz#a52e99ae30246566dc5f33e835aa6ca98ef70e33"
|
||||||
|
integrity sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==
|
||||||
|
|
||||||
|
esbuild-linux-arm@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz#7c33d05a64ec540cf7474834adaa57b3167bbe97"
|
||||||
|
integrity sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==
|
||||||
|
|
||||||
|
esbuild-linux-mips64le@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz#ed062bd844b587be649443831eb84ba304685f25"
|
||||||
|
integrity sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==
|
||||||
|
|
||||||
|
esbuild-linux-ppc64le@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz#c0786fb5bddffd90c10a2078181513cbaf077958"
|
||||||
|
integrity sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==
|
||||||
|
|
||||||
|
esbuild-linux-riscv64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz#579b0e7cc6fce4bfc698e991a52503bb616bec49"
|
||||||
|
integrity sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==
|
||||||
|
|
||||||
|
esbuild-linux-s390x@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz#09eb15c753e249a500b4e28d07c5eef7524a9740"
|
||||||
|
integrity sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==
|
||||||
|
|
||||||
|
esbuild-netbsd-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz#f7337cd2bddb7cc9d100d19156f36c9ca117b58d"
|
||||||
|
integrity sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==
|
||||||
|
|
||||||
|
esbuild-openbsd-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz#1f8bdc49f8a44396e73950a3fb6b39828563631d"
|
||||||
|
integrity sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==
|
||||||
|
|
||||||
|
esbuild-sunos-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz#47d042739365b61aa8ca642adb69534a8eef9f7a"
|
||||||
|
integrity sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==
|
||||||
|
|
||||||
|
esbuild-windows-32@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz#79198c88ec9bde163c18a6b430c34eab098ec21a"
|
||||||
|
integrity sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==
|
||||||
|
|
||||||
|
esbuild-windows-64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz#b36b230d18d1ee54008e08814c4799c7806e8c79"
|
||||||
|
integrity sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==
|
||||||
|
|
||||||
|
esbuild-windows-arm64@0.14.49:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz#d83c03ff6436caf3262347cfa7e16b0a8049fae7"
|
||||||
|
integrity sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==
|
||||||
|
|
||||||
|
esbuild@^0.14.27:
|
||||||
|
version "0.14.49"
|
||||||
|
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.49.tgz#b82834760eba2ddc17b44f05cfcc0aaca2bae492"
|
||||||
|
integrity sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==
|
||||||
|
optionalDependencies:
|
||||||
|
esbuild-android-64 "0.14.49"
|
||||||
|
esbuild-android-arm64 "0.14.49"
|
||||||
|
esbuild-darwin-64 "0.14.49"
|
||||||
|
esbuild-darwin-arm64 "0.14.49"
|
||||||
|
esbuild-freebsd-64 "0.14.49"
|
||||||
|
esbuild-freebsd-arm64 "0.14.49"
|
||||||
|
esbuild-linux-32 "0.14.49"
|
||||||
|
esbuild-linux-64 "0.14.49"
|
||||||
|
esbuild-linux-arm "0.14.49"
|
||||||
|
esbuild-linux-arm64 "0.14.49"
|
||||||
|
esbuild-linux-mips64le "0.14.49"
|
||||||
|
esbuild-linux-ppc64le "0.14.49"
|
||||||
|
esbuild-linux-riscv64 "0.14.49"
|
||||||
|
esbuild-linux-s390x "0.14.49"
|
||||||
|
esbuild-netbsd-64 "0.14.49"
|
||||||
|
esbuild-openbsd-64 "0.14.49"
|
||||||
|
esbuild-sunos-64 "0.14.49"
|
||||||
|
esbuild-windows-32 "0.14.49"
|
||||||
|
esbuild-windows-64 "0.14.49"
|
||||||
|
esbuild-windows-arm64 "0.14.49"
|
||||||
|
|
||||||
|
escape-html@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
||||||
|
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
|
||||||
|
|
||||||
|
escape-string-regexp@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
|
||||||
|
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
|
||||||
|
|
||||||
|
estree-walker@^2.0.1, estree-walker@^2.0.2:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
||||||
|
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||||
|
|
||||||
|
fast-glob@^3.2.11:
|
||||||
|
version "3.2.11"
|
||||||
|
resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
|
||||||
|
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
|
||||||
|
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"
|
||||||
|
|
||||||
|
fastq@^1.6.0:
|
||||||
|
version "1.13.0"
|
||||||
|
resolved "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
|
||||||
|
integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
|
||||||
|
dependencies:
|
||||||
|
reusify "^1.0.4"
|
||||||
|
|
||||||
|
fill-range@^7.0.1:
|
||||||
|
version "7.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||||
|
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||||
|
dependencies:
|
||||||
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
|
fsevents@~2.3.2:
|
||||||
|
version "2.3.2"
|
||||||
|
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||||
|
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||||
|
|
||||||
|
function-bind@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||||
|
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||||
|
|
||||||
|
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
||||||
|
version "5.1.2"
|
||||||
|
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||||
|
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||||
|
dependencies:
|
||||||
|
is-glob "^4.0.1"
|
||||||
|
|
||||||
|
has@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||||
|
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
||||||
|
dependencies:
|
||||||
|
function-bind "^1.1.1"
|
||||||
|
|
||||||
|
is-binary-path@~2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
||||||
|
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
||||||
|
dependencies:
|
||||||
|
binary-extensions "^2.0.0"
|
||||||
|
|
||||||
|
is-core-module@^2.9.0:
|
||||||
|
version "2.9.0"
|
||||||
|
resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
|
||||||
|
integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
|
||||||
|
dependencies:
|
||||||
|
has "^1.0.3"
|
||||||
|
|
||||||
|
is-extglob@^2.1.1:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||||
|
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
|
||||||
|
|
||||||
|
is-glob@^4.0.1, is-glob@~4.0.1:
|
||||||
|
version "4.0.3"
|
||||||
|
resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
||||||
|
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
||||||
|
dependencies:
|
||||||
|
is-extglob "^2.1.1"
|
||||||
|
|
||||||
|
is-number@^7.0.0:
|
||||||
|
version "7.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||||
|
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||||
|
|
||||||
|
jsonc-parser@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.1.0.tgz#73b8f0e5c940b83d03476bc2e51a20ef0932615d"
|
||||||
|
integrity sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==
|
||||||
|
|
||||||
|
local-pkg@^0.4.1, local-pkg@^0.4.2:
|
||||||
|
version "0.4.2"
|
||||||
|
resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f"
|
||||||
|
integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==
|
||||||
|
|
||||||
|
lodash-es@^4.17.21:
|
||||||
|
version "4.17.21"
|
||||||
|
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||||
|
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||||
|
|
||||||
|
lodash-unified@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz#bb2694db3533781e5cce984af60cfaea318b83c1"
|
||||||
|
integrity sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==
|
||||||
|
|
||||||
|
lodash@^4.17.21:
|
||||||
|
version "4.17.21"
|
||||||
|
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||||
|
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||||
|
|
||||||
|
magic-string@^0.25.7:
|
||||||
|
version "0.25.9"
|
||||||
|
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
|
||||||
|
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
|
||||||
|
dependencies:
|
||||||
|
sourcemap-codec "^1.4.8"
|
||||||
|
|
||||||
|
magic-string@^0.26.2:
|
||||||
|
version "0.26.2"
|
||||||
|
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432"
|
||||||
|
integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==
|
||||||
|
dependencies:
|
||||||
|
sourcemap-codec "^1.4.8"
|
||||||
|
|
||||||
|
memoize-one@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
|
||||||
|
integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
|
||||||
|
|
||||||
|
merge2@^1.3.0:
|
||||||
|
version "1.4.1"
|
||||||
|
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
|
micromatch@^4.0.4:
|
||||||
|
version "4.0.5"
|
||||||
|
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||||
|
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||||
|
dependencies:
|
||||||
|
braces "^3.0.2"
|
||||||
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
|
minimatch@^5.1.0:
|
||||||
|
version "5.1.0"
|
||||||
|
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7"
|
||||||
|
integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==
|
||||||
|
dependencies:
|
||||||
|
brace-expansion "^2.0.1"
|
||||||
|
|
||||||
|
mlly@^0.5.3, mlly@^0.5.4:
|
||||||
|
version "0.5.4"
|
||||||
|
resolved "https://registry.npmmirror.com/mlly/-/mlly-0.5.4.tgz#e7c68574c95a4b2ba25e76dfcd1b2a545335af70"
|
||||||
|
integrity sha512-gFlsLWCjVwu/LM/ZfYUkmnbBoz7eyBIMUwVQYDqhd8IvtNFDeZ95uwAyxHE2Xx7tQwePQaCo4fECZ9MWFEUTgQ==
|
||||||
|
dependencies:
|
||||||
|
pathe "^0.3.1"
|
||||||
|
pkg-types "^0.3.3"
|
||||||
|
|
||||||
|
ms@2.1.2:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||||
|
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||||
|
|
||||||
|
nanoid@^3.3.4:
|
||||||
|
version "3.3.4"
|
||||||
|
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
|
||||||
|
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
|
||||||
|
|
||||||
|
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||||
|
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||||
|
|
||||||
|
normalize-wheel-es@^1.1.2:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz#285e43676a62d687bf145e33452ea6be435162d0"
|
||||||
|
integrity sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==
|
||||||
|
|
||||||
|
path-parse@^1.0.7:
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||||
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||||
|
|
||||||
|
pathe@^0.3.0, pathe@^0.3.1, pathe@^0.3.2:
|
||||||
|
version "0.3.2"
|
||||||
|
resolved "https://registry.npmmirror.com/pathe/-/pathe-0.3.2.tgz#016345ed643027404d7a9ed8d1454ad997a1483a"
|
||||||
|
integrity sha512-qhnmX0TOqlCvdWWTkoM83wh5J8fZ2yhbDEc9MlsnAEtEc+JCwxUKEwmd6pkY9hRe6JR1Uecbc14VcAKX2yFSTA==
|
||||||
|
|
||||||
|
picocolors@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
|
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||||
|
|
||||||
|
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1:
|
||||||
|
version "2.3.1"
|
||||||
|
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||||
|
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||||
|
|
||||||
|
pkg-types@^0.3.3:
|
||||||
|
version "0.3.3"
|
||||||
|
resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-0.3.3.tgz#3c25e45274e1c586ec7811dcc3449afde846e463"
|
||||||
|
integrity sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==
|
||||||
|
dependencies:
|
||||||
|
jsonc-parser "^3.0.0"
|
||||||
|
mlly "^0.5.3"
|
||||||
|
pathe "^0.3.0"
|
||||||
|
|
||||||
|
postcss@^8.1.10, postcss@^8.4.13:
|
||||||
|
version "8.4.14"
|
||||||
|
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
|
||||||
|
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
|
||||||
|
dependencies:
|
||||||
|
nanoid "^3.3.4"
|
||||||
|
picocolors "^1.0.0"
|
||||||
|
source-map-js "^1.0.2"
|
||||||
|
|
||||||
|
queue-microtask@^1.2.2:
|
||||||
|
version "1.2.3"
|
||||||
|
resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||||
|
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||||
|
|
||||||
|
readdirp@~3.6.0:
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||||
|
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||||
|
dependencies:
|
||||||
|
picomatch "^2.2.1"
|
||||||
|
|
||||||
|
resolve@^1.22.0, resolve@^1.22.1:
|
||||||
|
version "1.22.1"
|
||||||
|
resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
|
||||||
|
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
||||||
|
dependencies:
|
||||||
|
is-core-module "^2.9.0"
|
||||||
|
path-parse "^1.0.7"
|
||||||
|
supports-preserve-symlinks-flag "^1.0.0"
|
||||||
|
|
||||||
|
reusify@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||||
|
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||||
|
|
||||||
|
rollup@^2.59.0:
|
||||||
|
version "2.77.0"
|
||||||
|
resolved "https://registry.npmmirror.com/rollup/-/rollup-2.77.0.tgz#749eaa5ac09b6baa52acc076bc46613eddfd53f4"
|
||||||
|
integrity sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==
|
||||||
|
optionalDependencies:
|
||||||
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
|
run-parallel@^1.1.9:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
||||||
|
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
||||||
|
dependencies:
|
||||||
|
queue-microtask "^1.2.2"
|
||||||
|
|
||||||
|
scule@^0.2.1:
|
||||||
|
version "0.2.1"
|
||||||
|
resolved "https://registry.npmmirror.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc"
|
||||||
|
integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==
|
||||||
|
|
||||||
|
source-map-js@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||||
|
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||||
|
|
||||||
|
source-map@^0.6.1:
|
||||||
|
version "0.6.1"
|
||||||
|
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||||
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||||
|
|
||||||
|
sourcemap-codec@^1.4.8:
|
||||||
|
version "1.4.8"
|
||||||
|
resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
|
||||||
|
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
|
||||||
|
|
||||||
|
strip-literal@^0.4.0:
|
||||||
|
version "0.4.0"
|
||||||
|
resolved "https://registry.npmmirror.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634"
|
||||||
|
integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.7.1"
|
||||||
|
|
||||||
|
supports-preserve-symlinks-flag@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||||
|
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||||
|
|
||||||
|
to-regex-range@^5.0.1:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||||
|
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||||
|
dependencies:
|
||||||
|
is-number "^7.0.0"
|
||||||
|
|
||||||
|
typescript@^4.5.4:
|
||||||
|
version "4.7.4"
|
||||||
|
resolved "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
|
||||||
|
integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
|
||||||
|
|
||||||
|
unimport@^0.4.5:
|
||||||
|
version "0.4.5"
|
||||||
|
resolved "https://registry.npmmirror.com/unimport/-/unimport-0.4.5.tgz#aa4c4aa2ef1027352f9ad79693f083929f18b660"
|
||||||
|
integrity sha512-DnmiSt/HQIfhdcxOy4CGqwZDBh3WHg33euX1ge4X8hvquKBmw2PFvhoAJaBKxscOz0oYosoPoPT4tkDZWHhV0Q==
|
||||||
|
dependencies:
|
||||||
|
"@rollup/pluginutils" "^4.2.1"
|
||||||
|
escape-string-regexp "^5.0.0"
|
||||||
|
fast-glob "^3.2.11"
|
||||||
|
local-pkg "^0.4.2"
|
||||||
|
magic-string "^0.26.2"
|
||||||
|
mlly "^0.5.4"
|
||||||
|
pathe "^0.3.2"
|
||||||
|
scule "^0.2.1"
|
||||||
|
strip-literal "^0.4.0"
|
||||||
|
unplugin "^0.7.2"
|
||||||
|
|
||||||
|
unplugin-auto-import@^0.9.3:
|
||||||
|
version "0.9.3"
|
||||||
|
resolved "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.9.3.tgz#bdcfe8f40cf74eece7bad2b37ad319ae4e019b97"
|
||||||
|
integrity sha512-S3fC/kp98v+HhELCCG4jm4fhd/BbXhhcmFxxQ/JHXefLPtz9WTCOsSq3pq7U4D94xJ0eyZOPo/56Y9iUf3kskw==
|
||||||
|
dependencies:
|
||||||
|
"@antfu/utils" "^0.5.2"
|
||||||
|
"@rollup/pluginutils" "^4.2.1"
|
||||||
|
local-pkg "^0.4.2"
|
||||||
|
magic-string "^0.26.2"
|
||||||
|
unimport "^0.4.5"
|
||||||
|
unplugin "^0.7.2"
|
||||||
|
|
||||||
|
unplugin-vue-components@^0.21.1:
|
||||||
|
version "0.21.1"
|
||||||
|
resolved "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.21.1.tgz#8ff156da1faaef368d8fad9fa7573c80ad4ccfa0"
|
||||||
|
integrity sha512-8MhIT323q1EUu7rz6NfQeiHqDrZKtygy6s9jzcQAuuZUM2T38SHlPT5YJjBOZmM0Bau6YuNTKfBBX4iHzeusaQ==
|
||||||
|
dependencies:
|
||||||
|
"@antfu/utils" "^0.5.2"
|
||||||
|
"@rollup/pluginutils" "^4.2.1"
|
||||||
|
chokidar "^3.5.3"
|
||||||
|
debug "^4.3.4"
|
||||||
|
fast-glob "^3.2.11"
|
||||||
|
local-pkg "^0.4.1"
|
||||||
|
magic-string "^0.26.2"
|
||||||
|
minimatch "^5.1.0"
|
||||||
|
resolve "^1.22.1"
|
||||||
|
unplugin "^0.7.1"
|
||||||
|
|
||||||
|
unplugin@^0.7.1, unplugin@^0.7.2:
|
||||||
|
version "0.7.2"
|
||||||
|
resolved "https://registry.npmmirror.com/unplugin/-/unplugin-0.7.2.tgz#4127012fdc2c84ea4ce03ce75e3d4f54ea47bba1"
|
||||||
|
integrity sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.7.1"
|
||||||
|
chokidar "^3.5.3"
|
||||||
|
webpack-sources "^3.2.3"
|
||||||
|
webpack-virtual-modules "^0.4.4"
|
||||||
|
|
||||||
|
vite@^2.9.9:
|
||||||
|
version "2.9.14"
|
||||||
|
resolved "https://registry.npmmirror.com/vite/-/vite-2.9.14.tgz#c438324c6594afd1050df3777da981dee988bb1b"
|
||||||
|
integrity sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==
|
||||||
|
dependencies:
|
||||||
|
esbuild "^0.14.27"
|
||||||
|
postcss "^8.4.13"
|
||||||
|
resolve "^1.22.0"
|
||||||
|
rollup "^2.59.0"
|
||||||
|
optionalDependencies:
|
||||||
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
|
vue-demi@*:
|
||||||
|
version "0.13.5"
|
||||||
|
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.5.tgz#d5eddbc9eaefb89ce5995269d1fa6b0486312092"
|
||||||
|
integrity sha512-tO3K2bML3AwiHmVHeKCq6HLef2st4zBXIV5aEkoJl6HZ+gJWxWv2O8wLH8qrA3SX3lDoTDHNghLX1xZg83MXvw==
|
||||||
|
|
||||||
|
vue-final-modal@^3.4.4:
|
||||||
|
version "3.4.4"
|
||||||
|
resolved "https://registry.npmmirror.com/vue-final-modal/-/vue-final-modal-3.4.4.tgz#9f4cdb0aabab86a14eb0c005b2645159b0f2095c"
|
||||||
|
integrity sha512-4nOLU+cMcUqAT0kg+64+Hi96kkQPOph2LOJa7Fl58BXlTyhfRxaMuz3M91wi2ooMIL4poWA8428P5GIAXSpuZg==
|
||||||
|
|
||||||
|
vue-tsc@^0.34.7:
|
||||||
|
version "0.34.17"
|
||||||
|
resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.34.17.tgz#332fc5c31d64bb9b74b0f26050f3ab067a9a7d6f"
|
||||||
|
integrity sha512-jzUXky44ZLHC4daaJag7FQr3idlPYN719/K1eObGljz5KaS2UnVGTU/XSYCd7d6ampYYg4OsyalbHyJIxV0aEQ==
|
||||||
|
dependencies:
|
||||||
|
"@volar/vue-typescript" "0.34.17"
|
||||||
|
|
||||||
|
vue@^3.2.25:
|
||||||
|
version "3.2.37"
|
||||||
|
resolved "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz#da220ccb618d78579d25b06c7c21498ca4e5452e"
|
||||||
|
integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==
|
||||||
|
dependencies:
|
||||||
|
"@vue/compiler-dom" "3.2.37"
|
||||||
|
"@vue/compiler-sfc" "3.2.37"
|
||||||
|
"@vue/runtime-dom" "3.2.37"
|
||||||
|
"@vue/server-renderer" "3.2.37"
|
||||||
|
"@vue/shared" "3.2.37"
|
||||||
|
|
||||||
|
webpack-sources@^3.2.3:
|
||||||
|
version "3.2.3"
|
||||||
|
resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
||||||
|
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
||||||
|
|
||||||
|
webpack-virtual-modules@^0.4.4:
|
||||||
|
version "0.4.4"
|
||||||
|
resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz#a19fcf371923c59c4712d63d7d194b1e4d8262cc"
|
||||||
|
integrity sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==
|