Commit 8a9ca498d70a0a4f66c073fe869fc6d8a3e79a55

Authored by Vben
1 parent 5ffac409

chore: remove useless code

build/getShortName.ts renamed to build/getConfigFileName.ts
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 * Get the configuration file variable name 2 * Get the configuration file variable name
3 * @param env 3 * @param env
4 */ 4 */
5 -export const getShortName = (env: any) => { 5 +export const getConfigFileName = (env: Record<string, any>) => {
6 return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__` 6 return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__`
7 .toUpperCase() 7 .toUpperCase()
8 .replace(/\s/g, ''); 8 .replace(/\s/g, '');
build/script/buildConf.ts
@@ -5,8 +5,8 @@ import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from &#39;../constant&#39;; @@ -5,8 +5,8 @@ import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from &#39;../constant&#39;;
5 import fs, { writeFileSync } from 'fs-extra'; 5 import fs, { writeFileSync } from 'fs-extra';
6 import chalk from 'chalk'; 6 import chalk from 'chalk';
7 7
8 -import { getCwdPath, getEnvConfig } from '../utils';  
9 -import { getShortName } from '../getShortName'; 8 +import { getRootPath, getEnvConfig } from '../utils';
  9 +import { getConfigFileName } from '../getConfigFileName';
10 10
11 import pkg from '../../package.json'; 11 import pkg from '../../package.json';
12 12
@@ -27,8 +27,8 @@ function createConfig( @@ -27,8 +27,8 @@ function createConfig(
27 writable: false, 27 writable: false,
28 }); 28 });
29 `.replace(/\s/g, ''); 29 `.replace(/\s/g, '');
30 - fs.mkdirp(getCwdPath(OUTPUT_DIR));  
31 - writeFileSync(getCwdPath(`${OUTPUT_DIR}/${configFileName}`), configStr); 30 + fs.mkdirp(getRootPath(OUTPUT_DIR));
  31 + writeFileSync(getRootPath(`${OUTPUT_DIR}/${configFileName}`), configStr);
32 32
33 console.log(chalk.cyan(`✨ [${pkg.name}]`) + ` - configuration file is build successfully:`); 33 console.log(chalk.cyan(`✨ [${pkg.name}]`) + ` - configuration file is build successfully:`);
34 console.log(chalk.gray(OUTPUT_DIR + '/' + chalk.green(configFileName)) + '\n'); 34 console.log(chalk.gray(OUTPUT_DIR + '/' + chalk.green(configFileName)) + '\n');
@@ -39,6 +39,6 @@ function createConfig( @@ -39,6 +39,6 @@ function createConfig(
39 39
40 export function runBuildConfig() { 40 export function runBuildConfig() {
41 const config = getEnvConfig(); 41 const config = getEnvConfig();
42 - const configFileName = getShortName(config); 42 + const configFileName = getConfigFileName(config);
43 createConfig({ config, configName: configFileName }); 43 createConfig({ config, configName: configFileName });
44 } 44 }
build/script/postBuild.ts
@@ -14,6 +14,7 @@ export const runBuild = async () =&gt; { @@ -14,6 +14,7 @@ export const runBuild = async () =&gt; {
14 if (!argvList.includes('no-conf')) { 14 if (!argvList.includes('no-conf')) {
15 await runBuildConfig(); 15 await runBuildConfig();
16 } 16 }
  17 +
17 console.log(`✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - build successfully!'); 18 console.log(`✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - build successfully!');
18 } catch (error) { 19 } catch (error) {
19 console.log(chalk.red('vite build error:\n' + error)); 20 console.log(chalk.red('vite build error:\n' + error));
build/tsconfig.json
@@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
5 "moduleResolution": "node", 5 "moduleResolution": "node",
6 "strict": true, 6 "strict": true,
7 "forceConsistentCasingInFileNames": true, 7 "forceConsistentCasingInFileNames": true,
8 - "jsx": "react",  
9 "baseUrl": ".", 8 "baseUrl": ".",
10 "esModuleInterop": true, 9 "esModuleInterop": true,
11 "noUnusedLocals": true, 10 "noUnusedLocals": true,
build/typeing.d.ts
@@ -2,3 +2,5 @@ declare module &#39;*.json&#39; { @@ -2,3 +2,5 @@ declare module &#39;*.json&#39; {
2 const src: any; 2 const src: any;
3 export default src; 3 export default src;
4 } 4 }
  5 +
  6 +declare type Recordable = Record<string, any>;
build/utils.ts
@@ -2,12 +2,6 @@ import fs from &#39;fs&#39;; @@ -2,12 +2,6 @@ import fs from &#39;fs&#39;;
2 import path from 'path'; 2 import path from 'path';
3 import dotenv from 'dotenv'; 3 import dotenv from 'dotenv';
4 4
5 -export const isFunction = (arg: unknown): arg is (...args: any[]) => any =>  
6 - typeof arg === 'function';  
7 -  
8 -export const isRegExp = (arg: unknown): arg is RegExp =>  
9 - Object.prototype.toString.call(arg) === '[object RegExp]';  
10 -  
11 export function isDevFn(mode: string): boolean { 5 export function isDevFn(mode: string): boolean {
12 return mode === 'development'; 6 return mode === 'development';
13 } 7 }
@@ -34,18 +28,18 @@ export interface ViteEnv { @@ -34,18 +28,18 @@ export interface ViteEnv {
34 VITE_USE_CDN: boolean; 28 VITE_USE_CDN: boolean;
35 VITE_DROP_CONSOLE: boolean; 29 VITE_DROP_CONSOLE: boolean;
36 VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none'; 30 VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';
37 - VITE_DYNAMIC_IMPORT: boolean;  
38 VITE_LEGACY: boolean; 31 VITE_LEGACY: boolean;
39 VITE_USE_IMAGEMIN: boolean; 32 VITE_USE_IMAGEMIN: boolean;
40 } 33 }
41 34
42 // Read all environment variable configuration files to process.env 35 // Read all environment variable configuration files to process.env
43 -export function wrapperEnv(envConf: any): ViteEnv { 36 +export function wrapperEnv(envConf: Recordable): ViteEnv {
44 const ret: any = {}; 37 const ret: any = {};
45 38
46 for (const envName of Object.keys(envConf)) { 39 for (const envName of Object.keys(envConf)) {
47 let realName = envConf[envName].replace(/\\n/g, '\n'); 40 let realName = envConf[envName].replace(/\\n/g, '\n');
48 realName = realName === 'true' ? true : realName === 'false' ? false : realName; 41 realName = realName === 'true' ? true : realName === 'false' ? false : realName;
  42 +
49 if (envName === 'VITE_PORT') { 43 if (envName === 'VITE_PORT') {
50 realName = Number(realName); 44 realName = Number(realName);
51 } 45 }
@@ -70,10 +64,10 @@ export function getEnvConfig(match = &#39;VITE_GLOB_&#39;, confFiles = [&#39;.env&#39;, &#39;.env.pr @@ -70,10 +64,10 @@ export function getEnvConfig(match = &#39;VITE_GLOB_&#39;, confFiles = [&#39;.env&#39;, &#39;.env.pr
70 confFiles.forEach((item) => { 64 confFiles.forEach((item) => {
71 try { 65 try {
72 const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item))); 66 const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)));
73 -  
74 envConfig = { ...envConfig, ...env }; 67 envConfig = { ...envConfig, ...env };
75 } catch (error) {} 68 } catch (error) {}
76 }); 69 });
  70 +
77 Object.keys(envConfig).forEach((key) => { 71 Object.keys(envConfig).forEach((key) => {
78 const reg = new RegExp(`^(${match})`); 72 const reg = new RegExp(`^(${match})`);
79 if (!reg.test(key)) { 73 if (!reg.test(key)) {
@@ -87,6 +81,6 @@ export function getEnvConfig(match = &#39;VITE_GLOB_&#39;, confFiles = [&#39;.env&#39;, &#39;.env.pr @@ -87,6 +81,6 @@ export function getEnvConfig(match = &#39;VITE_GLOB_&#39;, confFiles = [&#39;.env&#39;, &#39;.env.pr
87 * Get user root directory 81 * Get user root directory
88 * @param dir file path 82 * @param dir file path
89 */ 83 */
90 -export function getCwdPath(...dir: string[]) { 84 +export function getRootPath(...dir: string[]) {
91 return path.resolve(process.cwd(), ...dir); 85 return path.resolve(process.cwd(), ...dir);
92 } 86 }
build/vite/plugin/index.ts
1 import type { Plugin } from 'vite'; 1 import type { Plugin } from 'vite';
  2 +import type { ViteEnv } from '../../utils';
2 3
3 import vue from '@vitejs/plugin-vue'; 4 import vue from '@vitejs/plugin-vue';
4 import vueJsx from '@vitejs/plugin-vue-jsx'; 5 import vueJsx from '@vitejs/plugin-vue-jsx';
@@ -6,7 +7,6 @@ import legacy from &#39;@vitejs/plugin-legacy&#39;; @@ -6,7 +7,6 @@ import legacy from &#39;@vitejs/plugin-legacy&#39;;
6 7
7 import PurgeIcons from 'vite-plugin-purge-icons'; 8 import PurgeIcons from 'vite-plugin-purge-icons';
8 9
9 -import { ViteEnv } from '../../utils';  
10 import { configHtmlPlugin } from './html'; 10 import { configHtmlPlugin } from './html';
11 import { configPwaConfig } from './pwa'; 11 import { configPwaConfig } from './pwa';
12 import { configMockPlugin } from './mock'; 12 import { configMockPlugin } from './mock';
build/vite/plugin/pwa.ts
@@ -2,11 +2,10 @@ @@ -2,11 +2,10 @@
2 * Zero-config PWA for Vite 2 * Zero-config PWA for Vite
3 * https://github.com/antfu/vite-plugin-pwa 3 * https://github.com/antfu/vite-plugin-pwa
4 */ 4 */
  5 +import type { ViteEnv } from '../../utils';
5 6
6 import { VitePWA } from 'vite-plugin-pwa'; 7 import { VitePWA } from 'vite-plugin-pwa';
7 8
8 -import { ViteEnv } from '../../utils';  
9 -  
10 export function configPwaConfig(env: ViteEnv) { 9 export function configPwaConfig(env: ViteEnv) {
11 const { VITE_USE_PWA, VITE_GLOB_APP_TITLE, VITE_GLOB_APP_SHORT_NAME } = env; 10 const { VITE_USE_PWA, VITE_GLOB_APP_TITLE, VITE_GLOB_APP_SHORT_NAME } = env;
12 11
build/vite/plugin/windicss.ts
1 -import windiCSS from 'vite-plugin-windicss';  
2 -  
3 import type { Plugin } from 'vite'; 1 import type { Plugin } from 'vite';
4 2
  3 +import windiCSS from 'vite-plugin-windicss';
  4 +
5 export function configWindiCssPlugin(): Plugin[] { 5 export function configWindiCssPlugin(): Plugin[] {
6 return windiCSS({ 6 return windiCSS({
7 safelist: 'no-select', 7 safelist: 'no-select',
mock/_createProductionServer.ts
1 import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; 1 import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer';
2 2
  3 +// @ts-ignore
3 const modules = import.meta.globEager('./**/*.ts'); 4 const modules = import.meta.globEager('./**/*.ts');
4 5
5 const mockModules: any[] = []; 6 const mockModules: any[] = [];
mock/_util.ts
@@ -18,13 +18,11 @@ export function resultPageSuccess&lt;T = any&gt;( @@ -18,13 +18,11 @@ export function resultPageSuccess&lt;T = any&gt;(
18 const pageData = pagination(page, pageSize, list); 18 const pageData = pagination(page, pageSize, list);
19 19
20 return { 20 return {
21 - code: 0,  
22 - result: { 21 + ...resultSuccess({
23 items: pageData, 22 items: pageData,
24 total: list.length, 23 total: list.length,
25 - }, 24 + }),
26 message, 25 message,
27 - type: 'success',  
28 }; 26 };
29 } 27 }
30 28
package.json
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 "name": "vben-admin", 2 "name": "vben-admin",
3 "version": "2.0.1", 3 "version": "2.0.1",
4 "scripts": { 4 "scripts": {
  5 + "bootstrap": "yarn install",
5 "serve": "vite", 6 "serve": "vite",
6 "dev": "vite", 7 "dev": "vite",
7 "build": "vite build && esno ./build/script/postBuild.ts", 8 "build": "vite build && esno ./build/script/postBuild.ts",
@@ -9,9 +10,9 @@ @@ -9,9 +10,9 @@
9 "report": "cross-env REPORT=true npm run build ", 10 "report": "cross-env REPORT=true npm run build ",
10 "preview": "npm run build && vite preview", 11 "preview": "npm run build && vite preview",
11 "preview:dist": "vite preview", 12 "preview:dist": "vite preview",
12 - "log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", 13 + "log": "conventional-changelog -p angular -i CHANGELOG.md -s",
13 "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite", 14 "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
14 - "clean:lib": "npx rimraf node_modules", 15 + "clean:lib": "rimraf node_modules",
15 "lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix", 16 "lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
16 "lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"", 17 "lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
17 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", 18 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
@@ -39,8 +40,8 @@ @@ -39,8 +40,8 @@
39 "qrcode": "^1.4.4", 40 "qrcode": "^1.4.4",
40 "sortablejs": "^1.13.0", 41 "sortablejs": "^1.13.0",
41 "vditor": "^3.8.1", 42 "vditor": "^3.8.1",
42 - "vue": "^3.0.6",  
43 - "vue-i18n": "9.0.0-rc.7", 43 + "vue": "3.0.5",
  44 + "vue-i18n": "9.0.0-rc.8",
44 "vue-router": "^4.0.4", 45 "vue-router": "^4.0.4",
45 "vue-types": "^3.0.2", 46 "vue-types": "^3.0.2",
46 "vuex": "^4.0.0", 47 "vuex": "^4.0.0",
@@ -50,7 +51,7 @@ @@ -50,7 +51,7 @@
50 "devDependencies": { 51 "devDependencies": {
51 "@commitlint/cli": "^12.0.0", 52 "@commitlint/cli": "^12.0.0",
52 "@commitlint/config-conventional": "^12.0.0", 53 "@commitlint/config-conventional": "^12.0.0",
53 - "@iconify/json": "^1.1.307", 54 + "@iconify/json": "^1.1.308",
54 "@ls-lint/ls-lint": "^1.9.2", 55 "@ls-lint/ls-lint": "^1.9.2",
55 "@purge-icons/generated": "^0.7.0", 56 "@purge-icons/generated": "^0.7.0",
56 "@types/fs-extra": "^9.0.7", 57 "@types/fs-extra": "^9.0.7",
@@ -68,7 +69,7 @@ @@ -68,7 +69,7 @@
68 "@vitejs/plugin-legacy": "^1.3.1", 69 "@vitejs/plugin-legacy": "^1.3.1",
69 "@vitejs/plugin-vue": "^1.1.4", 70 "@vitejs/plugin-vue": "^1.1.4",
70 "@vitejs/plugin-vue-jsx": "^1.1.2", 71 "@vitejs/plugin-vue-jsx": "^1.1.2",
71 - "@vue/compiler-sfc": "^3.0.6", 72 + "@vue/compiler-sfc": "3.0.5",
72 "autoprefixer": "^10.2.4", 73 "autoprefixer": "^10.2.4",
73 "commitizen": "^4.2.3", 74 "commitizen": "^4.2.3",
74 "conventional-changelog-cli": "^2.1.1", 75 "conventional-changelog-cli": "^2.1.1",
src/components/Tinymce/src/Editor.vue
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 import plugins from './plugins'; 26 import plugins from './plugins';
27 import { getTinymce } from './getTinymce'; 27 import { getTinymce } from './getTinymce';
28 import { useScript } from '/@/hooks/web/useScript'; 28 import { useScript } from '/@/hooks/web/useScript';
29 - import { snowUuid } from '/@/utils/uuid'; 29 + import { shortUuid } from '/@/utils/uuid';
30 import { bindHandlers } from './helper'; 30 import { bindHandlers } from './helper';
31 import lineHeight from './lineHeight'; 31 import lineHeight from './lineHeight';
32 import { onMountedOrActivated } from '/@/hooks/core/onMountedOrActivated'; 32 import { onMountedOrActivated } from '/@/hooks/core/onMountedOrActivated';
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 emits: ['change', 'update:modelValue'], 45 emits: ['change', 'update:modelValue'],
46 setup(props, { emit, attrs }) { 46 setup(props, { emit, attrs }) {
47 const editorRef = ref<any>(null); 47 const editorRef = ref<any>(null);
48 - const tinymceId = ref<string>(snowUuid('tiny-vue')); 48 + const tinymceId = ref<string>(shortUuid('tiny-vue'));
49 const elRef = ref<Nullable<HTMLElement>>(null); 49 const elRef = ref<Nullable<HTMLElement>>(null);
50 50
51 const { prefixCls } = useDesign('tinymce-container'); 51 const { prefixCls } = useDesign('tinymce-container');
@@ -104,7 +104,7 @@ @@ -104,7 +104,7 @@
104 } 104 }
105 ); 105 );
106 onMountedOrActivated(() => { 106 onMountedOrActivated(() => {
107 - tinymceId.value = snowUuid('tiny-vue'); 107 + tinymceId.value = shortUuid('tiny-vue');
108 nextTick(() => { 108 nextTick(() => {
109 init(); 109 init();
110 }); 110 });
src/hooks/setting/index.ts
1 import type { ProjectConfig, GlobConfig, GlobEnvConfig } from '/@/types/config'; 1 import type { ProjectConfig, GlobConfig, GlobEnvConfig } from '/@/types/config';
2 2
  3 +import { getConfigFileName } from '../../../build/getConfigFileName';
  4 +
3 import getProjectSetting from '/@/settings/projectSetting'; 5 import getProjectSetting from '/@/settings/projectSetting';
4 6
5 -import { getShortName } from '../../../build/getShortName';  
6 import { warn } from '/@/utils/log'; 7 import { warn } from '/@/utils/log';
7 import { getGlobEnvConfig, isDevMode } from '/@/utils/env'; 8 import { getGlobEnvConfig, isDevMode } from '/@/utils/env';
8 9
9 -const reg = /[a-zA-Z\_]*/;  
10 -  
11 -const ENV_NAME = getShortName(import.meta.env);  
12 -const ENV = ((isDevMode()  
13 - ? getGlobEnvConfig()  
14 - : window[ENV_NAME as any]) as unknown) as GlobEnvConfig;  
15 -  
16 -const {  
17 - VITE_GLOB_APP_TITLE,  
18 - VITE_GLOB_API_URL,  
19 - VITE_GLOB_APP_SHORT_NAME,  
20 - VITE_GLOB_API_URL_PREFIX,  
21 - VITE_GLOB_UPLOAD_URL,  
22 -} = ENV;  
23 -  
24 -if (!reg.test(VITE_GLOB_APP_SHORT_NAME)) {  
25 - warn(  
26 - `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`  
27 - );  
28 -}  
29 -  
30 export const useGlobSetting = (): Readonly<GlobConfig> => { 10 export const useGlobSetting = (): Readonly<GlobConfig> => {
  11 + const ENV_NAME = getConfigFileName(import.meta.env);
  12 +
  13 + const ENV = ((isDevMode()
  14 + ? getGlobEnvConfig()
  15 + : window[ENV_NAME as any]) as unknown) as GlobEnvConfig;
  16 +
  17 + const {
  18 + VITE_GLOB_APP_TITLE,
  19 + VITE_GLOB_API_URL,
  20 + VITE_GLOB_APP_SHORT_NAME,
  21 + VITE_GLOB_API_URL_PREFIX,
  22 + VITE_GLOB_UPLOAD_URL,
  23 + } = ENV;
  24 +
  25 + if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) {
  26 + warn(
  27 + `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`
  28 + );
  29 + }
  30 +
31 // Take global configuration 31 // Take global configuration
32 const glob: Readonly<GlobConfig> = { 32 const glob: Readonly<GlobConfig> = {
33 title: VITE_GLOB_APP_TITLE, 33 title: VITE_GLOB_APP_TITLE,
src/hooks/web/useApexCharts.ts
@@ -2,8 +2,6 @@ import { useTimeoutFn } from &#39;/@/hooks/core/useTimeout&#39;; @@ -2,8 +2,6 @@ import { useTimeoutFn } from &#39;/@/hooks/core/useTimeout&#39;;
2 import { tryOnUnmounted } from '/@/utils/helper/vueHelper'; 2 import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
3 import { unref, Ref, nextTick } from 'vue'; 3 import { unref, Ref, nextTick } from 'vue';
4 4
5 -import ApexCharts from 'apexcharts';  
6 -  
7 interface CallBackFn { 5 interface CallBackFn {
8 (instance: Nullable<ApexCharts>): void; 6 (instance: Nullable<ApexCharts>): void;
9 } 7 }
@@ -13,21 +11,22 @@ export function useApexCharts(elRef: Ref&lt;HTMLDivElement&gt;) { @@ -13,21 +11,22 @@ export function useApexCharts(elRef: Ref&lt;HTMLDivElement&gt;) {
13 11
14 function setOptions(options: any, callback?: CallBackFn) { 12 function setOptions(options: any, callback?: CallBackFn) {
15 nextTick(() => { 13 nextTick(() => {
16 - useTimeoutFn(() => { 14 + useTimeoutFn(async () => {
17 const el = unref(elRef); 15 const el = unref(elRef);
18 16
19 if (!el || !unref(el)) return; 17 if (!el || !unref(el)) return;
  18 + const ApexCharts = await (await import('apexcharts')).default;
20 chartInstance = new ApexCharts(el, options); 19 chartInstance = new ApexCharts(el, options);
21 20
22 chartInstance && chartInstance.render(); 21 chartInstance && chartInstance.render();
23 22
24 - // setOptions增加callback方法,返回chartInstance,以便于对图表进行再操作,例如调用updateOptions方法更新图表 23 + // The callback method is added to setOptions to return the chartInstance to facilitate the re-operation of the chart, such as calling the updateOptions method to update the chart
25 callback && callback(chartInstance); 24 callback && callback(chartInstance);
26 }, 30); 25 }, 30);
27 }); 26 });
28 } 27 }
29 28
30 - // 新增调用ApexCharts的updateOptions方法更新图表 29 + // Call the updateOptions method of ApexCharts to update the chart
31 function updateOptions( 30 function updateOptions(
32 chartInstance: Nullable<ApexCharts>, 31 chartInstance: Nullable<ApexCharts>,
33 options: any, 32 options: any,
src/hooks/web/useLockPage.ts
@@ -65,9 +65,3 @@ export function useLockPage() { @@ -65,9 +65,3 @@ export function useLockPage() {
65 } 65 }
66 }); 66 });
67 } 67 }
68 -  
69 -export const getIsLock = computed(() => {  
70 - const { getLockInfo } = lockStore;  
71 - const { isLock } = getLockInfo;  
72 - return isLock;  
73 -});  
src/hooks/web/usePermission.ts
@@ -40,7 +40,7 @@ export function usePermission() { @@ -40,7 +40,7 @@ export function usePermission() {
40 resetRouter(); 40 resetRouter();
41 const routes = await permissionStore.buildRoutesAction(id); 41 const routes = await permissionStore.buildRoutesAction(id);
42 routes.forEach((route) => { 42 routes.forEach((route) => {
43 - router.addRoute(route as RouteRecordRaw); 43 + router.addRoute((route as unknown) as RouteRecordRaw);
44 }); 44 });
45 permissionStore.commitLastBuildMenuTimeState(); 45 permissionStore.commitLastBuildMenuTimeState();
46 const { closeAll } = useTabs(); 46 const { closeAll } = useTabs();
src/hooks/web/useSortable.ts
1 -import Sortable from 'sortablejs';  
2 import { nextTick, unref } from 'vue'; 1 import { nextTick, unref } from 'vue';
3 import type { Ref } from 'vue'; 2 import type { Ref } from 'vue';
  3 +import type { Options } from 'sortablejs';
4 4
5 -export function useSortable(el: HTMLElement | Ref<HTMLElement>, options?: Sortable.Options) { 5 +export function useSortable(el: HTMLElement | Ref<HTMLElement>, options?: Options) {
6 function initSortable() { 6 function initSortable() {
7 - nextTick(() => { 7 + nextTick(async () => {
8 if (!el) return; 8 if (!el) return;
  9 +
  10 + const Sortable = (await import('sortablejs')).default;
9 Sortable.create(unref(el), { 11 Sortable.create(unref(el), {
10 animation: 500, 12 animation: 500,
11 delay: 400, 13 delay: 400,
src/layouts/default/tabs/useMultipleTabs.ts
@@ -43,7 +43,7 @@ export function initAffixTabs(): string[] { @@ -43,7 +43,7 @@ export function initAffixTabs(): string[] {
43 addAffixTabs(); 43 addAffixTabs();
44 isAddAffix = true; 44 isAddAffix = true;
45 } 45 }
46 - return affixList.value.map((item) => item.meta?.title).filter(Boolean); 46 + return affixList.value.map((item) => item.meta?.title).filter(Boolean) as string[];
47 } 47 }
48 48
49 export function useTabsDrag(affixTextList: string[]) { 49 export function useTabsDrag(affixTextList: string[]) {
src/logics/initAppConfig.ts
@@ -7,7 +7,7 @@ import type { ProjectConfig } from &#39;/@/types/config&#39;; @@ -7,7 +7,7 @@ import type { ProjectConfig } from &#39;/@/types/config&#39;;
7 import { PROJ_CFG_KEY } from '/@/enums/cacheEnum'; 7 import { PROJ_CFG_KEY } from '/@/enums/cacheEnum';
8 8
9 import projectSetting from '/@/settings/projectSetting'; 9 import projectSetting from '/@/settings/projectSetting';
10 -import { getLocal } from '/@/utils/helper/persistent'; 10 +import { getLocal } from '/@/utils/cache/persistent';
11 import { updateHeaderBgColor, updateSidebarBgColor } from '/@/logics/theme/updateBackground'; 11 import { updateHeaderBgColor, updateSidebarBgColor } from '/@/logics/theme/updateBackground';
12 import { updateColorWeak } from '/@/logics/theme/updateColorWeak'; 12 import { updateColorWeak } from '/@/logics/theme/updateColorWeak';
13 import { updateGrayMode } from '/@/logics/theme/updateGrayMode'; 13 import { updateGrayMode } from '/@/logics/theme/updateGrayMode';
src/router/helper/menuHelper.ts
@@ -46,12 +46,6 @@ export function transformRouteToMenu(routeModList: AppRouteModule[]) { @@ -46,12 +46,6 @@ export function transformRouteToMenu(routeModList: AppRouteModule[]) {
46 const cloneRouteModList = cloneDeep(routeModList); 46 const cloneRouteModList = cloneDeep(routeModList);
47 const routeList: AppRouteRecordRaw[] = []; 47 const routeList: AppRouteRecordRaw[] = [];
48 48
49 - // cloneRouteModList = filter(cloneRouteModList, (node) => {  
50 - // if (Reflect.has(node?.meta ?? {}, 'hideMenu')) {  
51 - // return !node?.meta.hideMenu;  
52 - // }  
53 - // return true;  
54 - // });  
55 cloneRouteModList.forEach((item) => { 49 cloneRouteModList.forEach((item) => {
56 if (item.meta?.single) { 50 if (item.meta?.single) {
57 const realItem = item?.children?.[0]; 51 const realItem = item?.children?.[0];
src/router/index.ts
@@ -3,9 +3,8 @@ import type { App } from &#39;vue&#39;; @@ -3,9 +3,8 @@ import type { App } from &#39;vue&#39;;
3 3
4 import { createRouter, createWebHashHistory } from 'vue-router'; 4 import { createRouter, createWebHashHistory } from 'vue-router';
5 5
6 -import { createGuard } from './guard/';  
7 -  
8 -import { basicRoutes } from './routes/'; 6 +import { createGuard } from './guard';
  7 +import { basicRoutes } from './routes';
9 import { REDIRECT_NAME } from './constant'; 8 import { REDIRECT_NAME } from './constant';
10 9
11 // app router 10 // app router
@@ -33,8 +32,4 @@ export function setupRouter(app: App&lt;Element&gt;) { @@ -33,8 +32,4 @@ export function setupRouter(app: App&lt;Element&gt;) {
33 createGuard(router); 32 createGuard(router);
34 } 33 }
35 34
36 -// router.onError((error) => {  
37 -// console.error(error);  
38 -// });  
39 -  
40 export default router; 35 export default router;
src/store/modules/app.ts
@@ -6,7 +6,7 @@ import store from &#39;/@/store&#39;; @@ -6,7 +6,7 @@ import store from &#39;/@/store&#39;;
6 import { PROJ_CFG_KEY } from '/@/enums/cacheEnum'; 6 import { PROJ_CFG_KEY } from '/@/enums/cacheEnum';
7 7
8 import { hotModuleUnregisterModule } from '/@/utils/helper/vuexHelper'; 8 import { hotModuleUnregisterModule } from '/@/utils/helper/vuexHelper';
9 -import { setLocal, getLocal, clearSession, clearLocal } from '/@/utils/helper/persistent'; 9 +import { setLocal, getLocal, clearSession, clearLocal } from '/@/utils/cache/persistent';
10 import { deepMerge } from '/@/utils'; 10 import { deepMerge } from '/@/utils';
11 11
12 import { resetRouter } from '/@/router'; 12 import { resetRouter } from '/@/router';
src/store/modules/lock.ts
@@ -4,7 +4,7 @@ import store from &#39;/@/store&#39;; @@ -4,7 +4,7 @@ import store from &#39;/@/store&#39;;
4 import { LOCK_INFO_KEY } from '/@/enums/cacheEnum'; 4 import { LOCK_INFO_KEY } from '/@/enums/cacheEnum';
5 5
6 import { hotModuleUnregisterModule } from '/@/utils/helper/vuexHelper'; 6 import { hotModuleUnregisterModule } from '/@/utils/helper/vuexHelper';
7 -import { setLocal, getLocal, removeLocal } from '/@/utils/helper/persistent'; 7 +import { setLocal, getLocal, removeLocal } from '/@/utils/cache/persistent';
8 8
9 import { userStore } from './user'; 9 import { userStore } from './user';
10 10
src/store/modules/user.ts
@@ -18,7 +18,7 @@ import router from &#39;/@/router&#39;; @@ -18,7 +18,7 @@ import router from &#39;/@/router&#39;;
18 18
19 import { loginApi, getUserInfoById } from '/@/api/sys/user'; 19 import { loginApi, getUserInfoById } from '/@/api/sys/user';
20 20
21 -import { setLocal, getLocal, getSession, setSession } from '/@/utils/helper/persistent'; 21 +import { setLocal, getLocal, getSession, setSession } from '/@/utils/cache/persistent';
22 import { useProjectSetting } from '/@/hooks/setting'; 22 import { useProjectSetting } from '/@/hooks/setting';
23 import { useI18n } from '/@/hooks/web/useI18n'; 23 import { useI18n } from '/@/hooks/web/useI18n';
24 import { ErrorMessageMode } from '/@/utils/http/axios/types'; 24 import { ErrorMessageMode } from '/@/utils/http/axios/types';
@@ -37,7 +37,6 @@ function getCache&lt;T&gt;(key: string) { @@ -37,7 +37,6 @@ function getCache&lt;T&gt;(key: string) {
37 37
38 function setCache(USER_INFO_KEY: string, info: any) { 38 function setCache(USER_INFO_KEY: string, info: any) {
39 if (!info) return; 39 if (!info) return;
40 - // const fn = permissionCacheType === CacheTypeEnum.LOCAL ? setLocal : setSession;  
41 setLocal(USER_INFO_KEY, info, true); 40 setLocal(USER_INFO_KEY, info, true);
42 // TODO 41 // TODO
43 setSession(USER_INFO_KEY, info, true); 42 setSession(USER_INFO_KEY, info, true);
src/types/config.d.ts
@@ -6,9 +6,10 @@ import { @@ -6,9 +6,10 @@ import {
6 RouterTransitionEnum, 6 RouterTransitionEnum,
7 SettingButtonPositionEnum, 7 SettingButtonPositionEnum,
8 } from '/@/enums/appEnum'; 8 } from '/@/enums/appEnum';
  9 +
9 import { CacheTypeEnum } from '/@/enums/cacheEnum'; 10 import { CacheTypeEnum } from '/@/enums/cacheEnum';
10 import type { LocaleType } from '/@/locales/types'; 11 import type { LocaleType } from '/@/locales/types';
11 -import { ThemeMode } from '../../build/config/lessModifyVars'; 12 +import { ThemeMode } from '../../build/config/themeConfig';
12 13
13 export interface MenuSetting { 14 export interface MenuSetting {
14 bgColor: string; 15 bgColor: string;
@@ -32,16 +33,10 @@ export interface MenuSetting { @@ -32,16 +33,10 @@ export interface MenuSetting {
32 } 33 }
33 34
34 export interface MultiTabsSetting { 35 export interface MultiTabsSetting {
35 - // 是否显示  
36 show: boolean; 36 show: boolean;
37 - // 开启快速操作  
38 showQuick: boolean; 37 showQuick: boolean;
39 canDrag: boolean; 38 canDrag: boolean;
40 -  
41 - // 显示刷新按钮  
42 showRedo: boolean; 39 showRedo: boolean;
43 -  
44 - // 显示折叠按钮  
45 showFold: boolean; 40 showFold: boolean;
46 } 41 }
47 42
@@ -50,16 +45,14 @@ export interface HeaderSetting { @@ -50,16 +45,14 @@ export interface HeaderSetting {
50 fixed: boolean; 45 fixed: boolean;
51 show: boolean; 46 show: boolean;
52 theme: ThemeEnum; 47 theme: ThemeEnum;
53 -  
54 - // 显示全屏按钮 48 + // Turn on full screen
55 showFullScreen: boolean; 49 showFullScreen: boolean;
56 - // 开启全屏功能 50 + // Whether to show the lock screen
57 useLockPage: boolean; 51 useLockPage: boolean;
58 - // 显示文档按钮 52 + // Show document button
59 showDoc: boolean; 53 showDoc: boolean;
60 - // 显示消息中心按钮 54 + // Show message center button
61 showNotice: boolean; 55 showNotice: boolean;
62 -  
63 showSearch: boolean; 56 showSearch: boolean;
64 } 57 }
65 58
@@ -76,96 +69,90 @@ export interface LocaleSetting { @@ -76,96 +69,90 @@ export interface LocaleSetting {
76 export interface TransitionSetting { 69 export interface TransitionSetting {
77 // Whether to open the page switching animation 70 // Whether to open the page switching animation
78 enable: boolean; 71 enable: boolean;
79 -  
80 // Route basic switching animation 72 // Route basic switching animation
81 basicTransition: RouterTransitionEnum; 73 basicTransition: RouterTransitionEnum;
82 -  
83 // Whether to open page switching loading 74 // Whether to open page switching loading
84 openPageLoading: boolean; 75 openPageLoading: boolean;
85 -  
86 // Whether to open the top progress bar 76 // Whether to open the top progress bar
87 openNProgress: boolean; 77 openNProgress: boolean;
88 } 78 }
89 79
90 export interface ProjectConfig { 80 export interface ProjectConfig {
  81 + // Multilingual configuration
91 locale: LocaleSetting; 82 locale: LocaleSetting;
92 - 83 + // Storage location of permission related information
93 permissionCacheType: CacheTypeEnum; 84 permissionCacheType: CacheTypeEnum;
94 -  
95 - // 是否显示配置按钮 85 + // Whether to show the configuration button
96 showSettingButton: boolean; 86 showSettingButton: boolean;
  87 + // Configure where the button is displayed
97 settingButtonPosition: SettingButtonPositionEnum; 88 settingButtonPosition: SettingButtonPositionEnum;
98 - // 权限模式 89 + // Permission mode
99 permissionMode: PermissionModeEnum; 90 permissionMode: PermissionModeEnum;
100 - // 网站灰色模式,用于可能悼念的日期开启 91 + // Website gray mode, open for possible mourning dates
101 grayMode: boolean; 92 grayMode: boolean;
102 - // 是否开启色弱模式 93 + // Whether to turn on the color weak mode
103 colorWeak: boolean; 94 colorWeak: boolean;
104 - // 主题色 95 + // Theme color
105 themeColor: string; 96 themeColor: string;
  97 +
106 themeMode: ThemeMode; 98 themeMode: ThemeMode;
107 - // 全屏显示主界面,不显示菜单,及顶部 99 + // The main interface is displayed in full screen, the menu is not displayed, and the top
108 fullContent: boolean; 100 fullContent: boolean;
109 - // 区域宽度 101 + // content width
110 contentMode: ContentEnum; 102 contentMode: ContentEnum;
111 - // 是否显示logo 103 + // Whether to display the logo
112 showLogo: boolean; 104 showLogo: boolean;
  105 + // Whether to show the global footer
113 showFooter: boolean; 106 showFooter: boolean;
114 - headerSetting: HeaderSetting;  
115 - // 菜单类型  
116 // menuType: MenuTypeEnum; 107 // menuType: MenuTypeEnum;
  108 + headerSetting: HeaderSetting;
  109 + // menuSetting
117 menuSetting: MenuSetting; 110 menuSetting: MenuSetting;
118 -  
119 - // 多标签页设置 111 + // Multi-tab settings
120 multiTabsSetting: MultiTabsSetting; 112 multiTabsSetting: MultiTabsSetting;
121 - 113 + // Animation configuration
122 transitionSetting: TransitionSetting; 114 transitionSetting: TransitionSetting;
123 -  
124 - // pageLayout是否开启keep-alive 115 + // pageLayout whether to enable keep-alive
125 openKeepAlive: boolean; 116 openKeepAlive: boolean;
126 -  
127 - //  
128 - // 锁屏时间 117 + // Lock screen time
129 lockTime: number; 118 lockTime: number;
130 - // 显示面包屑 119 + // Show breadcrumbs
131 showBreadCrumb: boolean; 120 showBreadCrumb: boolean;
132 - // 显示面包屑图标 121 + // Show breadcrumb icon
133 showBreadCrumbIcon: boolean; 122 showBreadCrumbIcon: boolean;
134 - // 使用error-handler-plugin 123 + // Use error-handler-plugin
135 useErrorHandle: boolean; 124 useErrorHandle: boolean;
136 - // 是否开启回到顶部 125 + // Whether to open back to top
137 useOpenBackTop: boolean; 126 useOpenBackTop: boolean;
138 - // 是否可以嵌入iframe页面 127 + // Is it possible to embed iframe pages
139 canEmbedIFramePage: boolean; 128 canEmbedIFramePage: boolean;
140 - // 切换界面的时候是否删除未关闭的message及notify 129 + // Whether to delete unclosed messages and notify when switching the interface
141 closeMessageOnSwitch: boolean; 130 closeMessageOnSwitch: boolean;
142 - // 切换界面的时候是否取消已经发送但是未响应的http请求。 131 + // Whether to cancel the http request that has been sent but not responded when switching the interface.
143 removeAllHttpPending: boolean; 132 removeAllHttpPending: boolean;
144 } 133 }
145 134
146 export interface GlobConfig { 135 export interface GlobConfig {
147 - // 网站标题 136 + // Site title
148 title: string; 137 title: string;
149 - // 项目路径 138 + // Service interface url
150 apiUrl: string; 139 apiUrl: string;
  140 + // Upload url
151 uploadUrl?: string; 141 uploadUrl?: string;
  142 + // Service interface url prefix
152 urlPrefix?: string; 143 urlPrefix?: string;
  144 + // Project abbreviation
153 shortName: string; 145 shortName: string;
154 } 146 }
155 export interface GlobEnvConfig { 147 export interface GlobEnvConfig {
156 - // 网站标题 148 + // Site title
157 VITE_GLOB_APP_TITLE: string; 149 VITE_GLOB_APP_TITLE: string;
158 - // 项目路径 150 + // Service interface url
159 VITE_GLOB_API_URL: string; 151 VITE_GLOB_API_URL: string;
  152 + // Service interface url prefix
160 VITE_GLOB_API_URL_PREFIX?: string; 153 VITE_GLOB_API_URL_PREFIX?: string;
  154 + // Project abbreviation
161 VITE_GLOB_APP_SHORT_NAME: string; 155 VITE_GLOB_APP_SHORT_NAME: string;
  156 + // Upload url
162 VITE_GLOB_UPLOAD_URL?: string; 157 VITE_GLOB_UPLOAD_URL?: string;
163 } 158 }
164 -  
165 -interface GlobWrap {  
166 - globSetting: Readonly<GlobConfig>;  
167 -}  
168 -  
169 -interface ProjectSettingWrap {  
170 - projectSetting: Readonly<ProjectConfig>;  
171 -}  
src/utils/helper/persistent.ts renamed to src/utils/cache/persistent.ts
src/utils/domUtils.ts
@@ -16,9 +16,9 @@ export function getBoundingClientRect(element: Element): DOMRect | number { @@ -16,9 +16,9 @@ export function getBoundingClientRect(element: Element): DOMRect | number {
16 return element.getBoundingClientRect(); 16 return element.getBoundingClientRect();
17 } 17 }
18 18
19 -const trim = function (string: string) { 19 +function trim(string: string) {
20 return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); 20 return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
21 -}; 21 +}
22 22
23 /* istanbul ignore next */ 23 /* istanbul ignore next */
24 export function hasClass(el: Element, cls: string) { 24 export function hasClass(el: Element, cls: string) {
src/utils/env.ts
1 import type { GlobEnvConfig } from '/@/types/config'; 1 import type { GlobEnvConfig } from '/@/types/config';
2 2
  3 +import { useGlobSetting } from '/@/hooks/setting';
  4 +import pkg from '../../package.json';
  5 +
3 /** 6 /**
4 * Get the global configuration (the configuration will be extracted independently when packaging) 7 * Get the global configuration (the configuration will be extracted independently when packaging)
5 */ 8 */
@@ -8,6 +11,12 @@ export function getGlobEnvConfig(): GlobEnvConfig { @@ -8,6 +11,12 @@ export function getGlobEnvConfig(): GlobEnvConfig {
8 return (env as unknown) as GlobEnvConfig; 11 return (env as unknown) as GlobEnvConfig;
9 } 12 }
10 13
  14 +// Generate cache key according to version
  15 +export function getStorageShortName() {
  16 + const globSetting = useGlobSetting();
  17 + return `${globSetting.shortName}__${getEnv()}${`__${pkg.version}`}__`.toUpperCase();
  18 +}
  19 +
11 /** 20 /**
12 * @description: Development model 21 * @description: Development model
13 */ 22 */
src/utils/index.ts
@@ -4,6 +4,7 @@ import { isObject } from &#39;/@/utils/is&#39;; @@ -4,6 +4,7 @@ import { isObject } from &#39;/@/utils/is&#39;;
4 export const clamp = (n: number, min: number, max: number) => Math.min(max, Math.max(min, n)); 4 export const clamp = (n: number, min: number, max: number) => Math.min(max, Math.max(min, n));
5 export const noop = () => {}; 5 export const noop = () => {};
6 export const now = () => Date.now(); 6 export const now = () => Date.now();
  7 +
7 /** 8 /**
8 * @description: Set ui mount node 9 * @description: Set ui mount node
9 */ 10 */
src/utils/uuid.ts
@@ -20,7 +20,7 @@ export function buildUUID(): string { @@ -20,7 +20,7 @@ export function buildUUID(): string {
20 } 20 }
21 21
22 let unique = 0; 22 let unique = 0;
23 -export function snowUuid(prefix = ''): string { 23 +export function shortUuid(prefix = ''): string {
24 const time = Date.now(); 24 const time = Date.now();
25 const random = Math.floor(Math.random() * 1000000000); 25 const random = Math.floor(Math.random() * 1000000000);
26 unique++; 26 unique++;
src/views/sys/lock/index.vue
@@ -4,13 +4,20 @@ @@ -4,13 +4,20 @@
4 </transition> 4 </transition>
5 </template> 5 </template>
6 <script lang="ts"> 6 <script lang="ts">
7 - import { defineComponent } from 'vue'; 7 + import { defineComponent, computed } from 'vue';
8 import LockPage from './LockPage.vue'; 8 import LockPage from './LockPage.vue';
9 - import { getIsLock } from '/@/hooks/web/useLockPage'; 9 +
  10 + import { lockStore } from '/@/store/modules/lock';
10 export default defineComponent({ 11 export default defineComponent({
11 name: 'Lock', 12 name: 'Lock',
12 components: { LockPage }, 13 components: { LockPage },
13 setup() { 14 setup() {
  15 + const getIsLock = computed(() => {
  16 + const { getLockInfo } = lockStore;
  17 + const { isLock } = getLockInfo;
  18 + return isLock;
  19 + });
  20 +
14 return { getIsLock }; 21 return { getIsLock };
15 }, 22 },
16 }); 23 });
stylelint.config.js
@@ -28,6 +28,7 @@ module.exports = { @@ -28,6 +28,7 @@ module.exports = {
28 ignore: ['after-comment', 'first-nested'], 28 ignore: ['after-comment', 'first-nested'],
29 }, 29 },
30 ], 30 ],
  31 + 'unit-no-unknown': [true, { ignoreUnits: ['rpx'] }],
31 // Specify the alphabetical order of the attributes in the declaration block 32 // Specify the alphabetical order of the attributes in the declaration block
32 'order/properties-order': [ 33 'order/properties-order': [
33 'position', 34 'position',
@@ -178,4 +179,5 @@ module.exports = { @@ -178,4 +179,5 @@ module.exports = {
178 'speak', 179 'speak',
179 ], 180 ],
180 }, 181 },
  182 + ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'],
181 }; 183 };
yarn.lock
@@ -1118,48 +1118,48 @@ @@ -1118,48 +1118,48 @@
1118 dependencies: 1118 dependencies:
1119 cross-fetch "^3.0.6" 1119 cross-fetch "^3.0.6"
1120 1120
1121 -"@iconify/json@^1.1.307":  
1122 - version "1.1.307"  
1123 - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.307.tgz#db97e8faba1183e0411471dafe210deba0cc1fe2"  
1124 - integrity sha512-2hyKd4DKGWNtQ9CNC4s7tRzMHyDai3GnARC26nGZo7f4/r86FTspvjCEbqpbuM5spJ1fn5jx00Iv4Qee89ooRA==  
1125 -  
1126 -"@intlify/core-base@9.0.0-rc.7":  
1127 - version "9.0.0-rc.7"  
1128 - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-rc.7.tgz#664e58d0c24465d19fb84d65be2bc4c4735c2b4e"  
1129 - integrity sha512-jYF6kQpSCeBXprZRcggGV/YQAwqXRWo2MtcdkPfZf0cP26Yx12UeFF0Uk5W5M/cgts3ktkhF/CzvxtXP1mevlQ==  
1130 - dependencies:  
1131 - "@intlify/message-compiler" "9.0.0-rc.7"  
1132 - "@intlify/message-resolver" "9.0.0-rc.7"  
1133 - "@intlify/runtime" "9.0.0-rc.7"  
1134 - "@intlify/shared" "9.0.0-rc.7"  
1135 -  
1136 -"@intlify/message-compiler@9.0.0-rc.7":  
1137 - version "9.0.0-rc.7"  
1138 - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-rc.7.tgz#383459a96220536ad675b77fef2d3f3f652d5647"  
1139 - integrity sha512-T8cPzSkNV0KHtLokQW8hBHMlqYcpknJy8JygwA4R6guiO2G9eyUdZ+rswDq5vrGfSIUglgHYusoIvOhFyQpkpQ==  
1140 - dependencies:  
1141 - "@intlify/message-resolver" "9.0.0-rc.7"  
1142 - "@intlify/shared" "9.0.0-rc.7" 1121 +"@iconify/json@^1.1.308":
  1122 + version "1.1.308"
  1123 + resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.308.tgz#162210182c14af4eb217f19e1a1707b787aca2aa"
  1124 + integrity sha512-zoVnvr5A1tpuTCzuw5EvRcWYV5rcmWLGLhEzg9+SuRAXWyT2st0ShF8hYbeHzm+MJHhJWodHVfsTu2DkshMX2g==
  1125 +
  1126 +"@intlify/core-base@9.0.0-rc.8":
  1127 + version "9.0.0-rc.8"
  1128 + resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-rc.8.tgz#674b88c313cbe471bb66f52dd0907106b01e1c38"
  1129 + integrity sha512-Nwj2GTZN7gOiN7uGgAeaaJAho/UamkXTheMrdjLrj7FPjE3d1oiSeB3fBgobJxzpyBRjhmjUmpPCEs1afokSxQ==
  1130 + dependencies:
  1131 + "@intlify/message-compiler" "9.0.0-rc.8"
  1132 + "@intlify/message-resolver" "9.0.0-rc.8"
  1133 + "@intlify/runtime" "9.0.0-rc.8"
  1134 + "@intlify/shared" "9.0.0-rc.8"
  1135 +
  1136 +"@intlify/message-compiler@9.0.0-rc.8":
  1137 + version "9.0.0-rc.8"
  1138 + resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-rc.8.tgz#b2c291b728858aa6fa57b6329a806c1accc8450b"
  1139 + integrity sha512-vtKk5z7ovenLUXMGHVUyS+snEYrTpHT4o6bQyjPeEL3BoXcVyHlLKIHXNJ6QzlHVQN8aN1bWyj3rMf9ZKEZF3A==
  1140 + dependencies:
  1141 + "@intlify/message-resolver" "9.0.0-rc.8"
  1142 + "@intlify/shared" "9.0.0-rc.8"
1143 source-map "0.6.1" 1143 source-map "0.6.1"
1144 1144
1145 -"@intlify/message-resolver@9.0.0-rc.7":  
1146 - version "9.0.0-rc.7"  
1147 - resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-rc.7.tgz#f41a552c7dd1c85f7042478bf264b0459c376376"  
1148 - integrity sha512-d0Jz0OWiH7jYTDk4VzTnVroJ2eylQUgVIk+2ztNJAHsrKoy3wxq6Tw/GlIGOrVJCFqZLWuxg7dmuhZDd4fliTw== 1145 +"@intlify/message-resolver@9.0.0-rc.8":
  1146 + version "9.0.0-rc.8"
  1147 + resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-rc.8.tgz#09382e6390298d6786cc53c483d4240e4654ec17"
  1148 + integrity sha512-8Qqh23yN3sM/hIZKIgJ1S6a9mNm1LVeUxkjhHdfyGV84P6G3Q9bgwCSenX1BKuUrVUJfK45FUkg87BZnUd2Qpg==
1149 1149
1150 -"@intlify/runtime@9.0.0-rc.7":  
1151 - version "9.0.0-rc.7"  
1152 - resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-rc.7.tgz#81ed1602447c387476aeaf6eea7ff0608768f67e"  
1153 - integrity sha512-SdM9Gqca4W+u/O6XHqDf38UwoiopbyRtUnnqWy5DGihbE1CTKlFZSGPMx95cLOVt0AIeVK/eRwclxLiRtQRM7A== 1150 +"@intlify/runtime@9.0.0-rc.8":
  1151 + version "9.0.0-rc.8"
  1152 + resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-rc.8.tgz#be5d1c776bba2678b51c3c0492d4676a910921ca"
  1153 + integrity sha512-ZK0eZwZQ6wb3nxUPc+WYSebnswSSt/lRJotmaVdcmS+tT9/FFz6PJ9pO0nNFV/cGn0uEGW92buldCiNVKA5aHg==
1154 dependencies: 1154 dependencies:
1155 - "@intlify/message-compiler" "9.0.0-rc.7"  
1156 - "@intlify/message-resolver" "9.0.0-rc.7"  
1157 - "@intlify/shared" "9.0.0-rc.7" 1155 + "@intlify/message-compiler" "9.0.0-rc.8"
  1156 + "@intlify/message-resolver" "9.0.0-rc.8"
  1157 + "@intlify/shared" "9.0.0-rc.8"
1158 1158
1159 -"@intlify/shared@9.0.0-rc.7":  
1160 - version "9.0.0-rc.7"  
1161 - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-rc.7.tgz#4bab9e58bbb09bc690fd953d1e83d9026e3a3893"  
1162 - integrity sha512-ynMHCCcBPtQAdJlOUMzrlvUp+DdKlnB0yrkPPMzAs8bBETwJbAK1Jq6zBHlMZzscPcF+1ia5pj4Gmmn7QL9b8w== 1159 +"@intlify/shared@9.0.0-rc.8":
  1160 + version "9.0.0-rc.8"
  1161 + resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-rc.8.tgz#0b1b387a3237d4ae95496e8ae60cec267625f55d"
  1162 + integrity sha512-HH05+lD4A9q6F0VLbGY5eZmmCbfaBMuCSSQXmrGgegtsRVu7WFiUMQLNsouN1UtHabOJC9PQarxKwfTzdHyN6Q==
1163 1163
1164 "@ls-lint/ls-lint@^1.9.2": 1164 "@ls-lint/ls-lint@^1.9.2":
1165 version "1.9.2" 1165 version "1.9.2"
@@ -1626,17 +1626,6 @@ @@ -1626,17 +1626,6 @@
1626 estree-walker "^2.0.1" 1626 estree-walker "^2.0.1"
1627 source-map "^0.6.1" 1627 source-map "^0.6.1"
1628 1628
1629 -"@vue/compiler-core@3.0.6":  
1630 - version "3.0.6"  
1631 - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.6.tgz#265bbe0711a81ab4c1344f8294e22e2d08ca167d"  
1632 - integrity sha512-O7QzQ39DskOoPpEDWRvKwDX7Py9UNT7SvLHvBdIfckGA3OsAEBdiAtuYQNcVmUDeBajm+08v5wyvHWBbWgkilQ==  
1633 - dependencies:  
1634 - "@babel/parser" "^7.12.0"  
1635 - "@babel/types" "^7.12.0"  
1636 - "@vue/shared" "3.0.6"  
1637 - estree-walker "^2.0.1"  
1638 - source-map "^0.6.1"  
1639 -  
1640 "@vue/compiler-dom@3.0.5": 1629 "@vue/compiler-dom@3.0.5":
1641 version "3.0.5" 1630 version "3.0.5"
1642 resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz#7885a13e6d18f64dde8ebceec052ed2c102696c2" 1631 resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz#7885a13e6d18f64dde8ebceec052ed2c102696c2"
@@ -1645,43 +1634,35 @@ @@ -1645,43 +1634,35 @@
1645 "@vue/compiler-core" "3.0.5" 1634 "@vue/compiler-core" "3.0.5"
1646 "@vue/shared" "3.0.5" 1635 "@vue/shared" "3.0.5"
1647 1636
1648 -"@vue/compiler-dom@3.0.6":  
1649 - version "3.0.6"  
1650 - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.6.tgz#f94c3959320a1252915bd02b943f96a7ee3fc951"  
1651 - integrity sha512-q1wfHzYwvDRAhBlx+Qa+n3Bu5nHr1qL/j0UbpNlbQDwIlt9zpvmXUrUCL+i55Bh5lLKvSe+mNo0qlwNEApm+jA==  
1652 - dependencies:  
1653 - "@vue/compiler-core" "3.0.6"  
1654 - "@vue/shared" "3.0.6"  
1655 -  
1656 -"@vue/compiler-sfc@^3.0.6":  
1657 - version "3.0.6"  
1658 - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.6.tgz#3945f73a93d52868799f1e332a75bb8849976ac9"  
1659 - integrity sha512-g1tkswnhtiJpj4ELQ3SzeGxtOd0t8E5GkT+n2VlElEnTI1BzueSvr41D5QthnUS+TNWZd52ZnPtdaNz+Lfum1w== 1637 +"@vue/compiler-sfc@3.0.5":
  1638 + version "3.0.5"
  1639 + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.5.tgz#3ae08e60244a72faf9598361874fb7bdb5b1d37c"
  1640 + integrity sha512-uOAC4X0Gx3SQ9YvDC7YMpbDvoCmPvP0afVhJoxRotDdJ+r8VO3q4hFf/2f7U62k4Vkdftp6DVni8QixrfYzs+w==
1660 dependencies: 1641 dependencies:
1661 "@babel/parser" "^7.12.0" 1642 "@babel/parser" "^7.12.0"
1662 "@babel/types" "^7.12.0" 1643 "@babel/types" "^7.12.0"
1663 - "@vue/compiler-core" "3.0.6"  
1664 - "@vue/compiler-dom" "3.0.6"  
1665 - "@vue/compiler-ssr" "3.0.6"  
1666 - "@vue/shared" "3.0.6" 1644 + "@vue/compiler-core" "3.0.5"
  1645 + "@vue/compiler-dom" "3.0.5"
  1646 + "@vue/compiler-ssr" "3.0.5"
  1647 + "@vue/shared" "3.0.5"
1667 consolidate "^0.16.0" 1648 consolidate "^0.16.0"
1668 estree-walker "^2.0.1" 1649 estree-walker "^2.0.1"
1669 hash-sum "^2.0.0" 1650 hash-sum "^2.0.0"
1670 lru-cache "^5.1.1" 1651 lru-cache "^5.1.1"
1671 magic-string "^0.25.7" 1652 magic-string "^0.25.7"
1672 merge-source-map "^1.1.0" 1653 merge-source-map "^1.1.0"
1673 - postcss "^8.1.10"  
1674 - postcss-modules "^4.0.0" 1654 + postcss "^7.0.32"
  1655 + postcss-modules "^3.2.2"
1675 postcss-selector-parser "^6.0.4" 1656 postcss-selector-parser "^6.0.4"
1676 source-map "^0.6.1" 1657 source-map "^0.6.1"
1677 1658
1678 -"@vue/compiler-ssr@3.0.6":  
1679 - version "3.0.6"  
1680 - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.6.tgz#7156361e4c465cbee2723275edc61e940678e47c"  
1681 - integrity sha512-Y4amPwRevUiiNQDho0cq1Ith9q6UU5N6CD6YiXkHIboFPeXEiGvH3ULJWjFzlGqn1eUV1AReNJpFJrhjtQNc7g== 1659 +"@vue/compiler-ssr@3.0.5":
  1660 + version "3.0.5"
  1661 + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.5.tgz#7661ad891a0be948726c7f7ad1e425253c587b83"
  1662 + integrity sha512-Wm//Kuxa1DpgjE4P9W0coZr8wklOfJ35Jtq61CbU+t601CpPTK4+FL2QDBItaG7aoUUDCWL5nnxMkuaOgzTBKg==
1682 dependencies: 1663 dependencies:
1683 - "@vue/compiler-dom" "3.0.6"  
1684 - "@vue/shared" "3.0.6" 1664 + "@vue/compiler-dom" "3.0.5"
  1665 + "@vue/shared" "3.0.5"
1685 1666
1686 "@vue/devtools-api@^6.0.0-beta.5": 1667 "@vue/devtools-api@^6.0.0-beta.5":
1687 version "6.0.0-beta.7" 1668 version "6.0.0-beta.7"
@@ -1695,13 +1676,6 @@ @@ -1695,13 +1676,6 @@
1695 dependencies: 1676 dependencies:
1696 "@vue/shared" "3.0.5" 1677 "@vue/shared" "3.0.5"
1697 1678
1698 -"@vue/reactivity@3.0.6":  
1699 - version "3.0.6"  
1700 - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.6.tgz#7b16f3d5d04cc55028085fff0bb8475cc0e32991"  
1701 - integrity sha512-hX8PnZayNMoljWSYrZW0OclQnRaMoHxvi5eeFVFPDr7+tzBeiftmmozKttxxCLoDxBWX1B4gNc237DIcYU63Lw==  
1702 - dependencies:  
1703 - "@vue/shared" "3.0.6"  
1704 -  
1705 "@vue/runtime-core@3.0.5": 1679 "@vue/runtime-core@3.0.5":
1706 version "3.0.5" 1680 version "3.0.5"
1707 resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz#da6331d5f300d5794e9e0ebdc8a8bd72a9e19962" 1681 resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz#da6331d5f300d5794e9e0ebdc8a8bd72a9e19962"
@@ -1710,14 +1684,6 @@ @@ -1710,14 +1684,6 @@
1710 "@vue/reactivity" "3.0.5" 1684 "@vue/reactivity" "3.0.5"
1711 "@vue/shared" "3.0.5" 1685 "@vue/shared" "3.0.5"
1712 1686
1713 -"@vue/runtime-core@3.0.6":  
1714 - version "3.0.6"  
1715 - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.6.tgz#d16779b5664593f1d25be677fb1b1968024aa532"  
1716 - integrity sha512-x6N38P0DeMyrHiAxCE/rACHTyydOzlg8IyUIPkSJ4rrSkuJnAtFKQicK6fm8NuD21dwdPr8KcZ4Cn4xaqL1JJg==  
1717 - dependencies:  
1718 - "@vue/reactivity" "3.0.6"  
1719 - "@vue/shared" "3.0.6"  
1720 -  
1721 "@vue/runtime-dom@3.0.5": 1687 "@vue/runtime-dom@3.0.5":
1722 version "3.0.5" 1688 version "3.0.5"
1723 resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz#1ce2c9c449e26ab06963da0064096e882a7a8935" 1689 resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz#1ce2c9c449e26ab06963da0064096e882a7a8935"
@@ -1727,25 +1693,11 @@ @@ -1727,25 +1693,11 @@
1727 "@vue/shared" "3.0.5" 1693 "@vue/shared" "3.0.5"
1728 csstype "^2.6.8" 1694 csstype "^2.6.8"
1729 1695
1730 -"@vue/runtime-dom@3.0.6":  
1731 - version "3.0.6"  
1732 - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.6.tgz#e7d6c61913d871f1f020a9a81b558c8fcbeba8c6"  
1733 - integrity sha512-Y6y4Tak9//VXB2mp2NVQxbwC4a5xsnJpotpo8yBAB3qB3L4v4HQLpqxSkwThRwI6Y6Z7dydX/sgfraqLBE8BWg==  
1734 - dependencies:  
1735 - "@vue/runtime-core" "3.0.6"  
1736 - "@vue/shared" "3.0.6"  
1737 - csstype "^2.6.8"  
1738 -  
1739 "@vue/shared@3.0.5": 1696 "@vue/shared@3.0.5":
1740 version "3.0.5" 1697 version "3.0.5"
1741 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0" 1698 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0"
1742 integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw== 1699 integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==
1743 1700
1744 -"@vue/shared@3.0.6":  
1745 - version "3.0.6"  
1746 - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.6.tgz#d65576430fc4ad383dc7c829118798e5169178d4"  
1747 - integrity sha512-c37C60HpelUZIx+SNZVEINSxkFzQYhIXFg5AynnIA4QDBmY4iSPoACfGSwSUTCTKImukPeCgY2oqRJVP3R1Mnw==  
1748 -  
1749 "@vueuse/core@^4.2.2": 1701 "@vueuse/core@^4.2.2":
1750 version "4.2.2" 1702 version "4.2.2"
1751 resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.2.2.tgz#ecbba4ba05e0360e9c9079b32e149fac803a1020" 1703 resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.2.2.tgz#ecbba4ba05e0360e9c9079b32e149fac803a1020"
@@ -4865,10 +4817,12 @@ icss-replace-symbols@^1.1.0: @@ -4865,10 +4817,12 @@ icss-replace-symbols@^1.1.0:
4865 resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" 4817 resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
4866 integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= 4818 integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
4867 4819
4868 -icss-utils@^5.0.0:  
4869 - version "5.1.0"  
4870 - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"  
4871 - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== 4820 +icss-utils@^4.0.0, icss-utils@^4.1.1:
  4821 + version "4.1.1"
  4822 + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
  4823 + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
  4824 + dependencies:
  4825 + postcss "^7.0.14"
4872 4826
4873 ieee754@^1.1.13: 4827 ieee754@^1.1.13:
4874 version "1.2.1" 4828 version "1.2.1"
@@ -6907,46 +6861,52 @@ postcss-media-query-parser@^0.2.3: @@ -6907,46 +6861,52 @@ postcss-media-query-parser@^0.2.3:
6907 resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" 6861 resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
6908 integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= 6862 integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
6909 6863
6910 -postcss-modules-extract-imports@^3.0.0:  
6911 - version "3.0.0"  
6912 - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"  
6913 - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== 6864 +postcss-modules-extract-imports@^2.0.0:
  6865 + version "2.0.0"
  6866 + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
  6867 + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
  6868 + dependencies:
  6869 + postcss "^7.0.5"
6914 6870
6915 -postcss-modules-local-by-default@^4.0.0:  
6916 - version "4.0.0"  
6917 - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"  
6918 - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== 6871 +postcss-modules-local-by-default@^3.0.2:
  6872 + version "3.0.3"
  6873 + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
  6874 + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
6919 dependencies: 6875 dependencies:
6920 - icss-utils "^5.0.0" 6876 + icss-utils "^4.1.1"
  6877 + postcss "^7.0.32"
6921 postcss-selector-parser "^6.0.2" 6878 postcss-selector-parser "^6.0.2"
6922 postcss-value-parser "^4.1.0" 6879 postcss-value-parser "^4.1.0"
6923 6880
6924 -postcss-modules-scope@^3.0.0:  
6925 - version "3.0.0"  
6926 - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"  
6927 - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== 6881 +postcss-modules-scope@^2.2.0:
  6882 + version "2.2.0"
  6883 + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
  6884 + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
6928 dependencies: 6885 dependencies:
6929 - postcss-selector-parser "^6.0.4" 6886 + postcss "^7.0.6"
  6887 + postcss-selector-parser "^6.0.0"
6930 6888
6931 -postcss-modules-values@^4.0.0:  
6932 - version "4.0.0"  
6933 - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"  
6934 - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== 6889 +postcss-modules-values@^3.0.0:
  6890 + version "3.0.0"
  6891 + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
  6892 + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
6935 dependencies: 6893 dependencies:
6936 - icss-utils "^5.0.0" 6894 + icss-utils "^4.0.0"
  6895 + postcss "^7.0.6"
6937 6896
6938 -postcss-modules@^4.0.0:  
6939 - version "4.0.0"  
6940 - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.0.0.tgz#2bc7f276ab88f3f1b0fadf6cbd7772d43b5f3b9b"  
6941 - integrity sha512-ghS/ovDzDqARm4Zj6L2ntadjyQMoyJmi0JkLlYtH2QFLrvNlxH5OAVRPWPeKilB0pY7SbuhO173KOWkPAxRJcw== 6897 +postcss-modules@^3.2.2:
  6898 + version "3.2.2"
  6899 + resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz#ee390de0f9f18e761e1778dfb9be26685c02c51f"
  6900 + integrity sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==
6942 dependencies: 6901 dependencies:
6943 generic-names "^2.0.1" 6902 generic-names "^2.0.1"
6944 icss-replace-symbols "^1.1.0" 6903 icss-replace-symbols "^1.1.0"
6945 lodash.camelcase "^4.3.0" 6904 lodash.camelcase "^4.3.0"
6946 - postcss-modules-extract-imports "^3.0.0"  
6947 - postcss-modules-local-by-default "^4.0.0"  
6948 - postcss-modules-scope "^3.0.0"  
6949 - postcss-modules-values "^4.0.0" 6905 + postcss "^7.0.32"
  6906 + postcss-modules-extract-imports "^2.0.0"
  6907 + postcss-modules-local-by-default "^3.0.2"
  6908 + postcss-modules-scope "^2.2.0"
  6909 + postcss-modules-values "^3.0.0"
6950 string-hash "^1.1.1" 6910 string-hash "^1.1.1"
6951 6911
6952 postcss-resolve-nested-selector@^0.1.1: 6912 postcss-resolve-nested-selector@^0.1.1:
@@ -6976,7 +6936,7 @@ postcss-scss@^2.1.1: @@ -6976,7 +6936,7 @@ postcss-scss@^2.1.1:
6976 dependencies: 6936 dependencies:
6977 postcss "^7.0.6" 6937 postcss "^7.0.6"
6978 6938
6979 -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: 6939 +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
6980 version "6.0.4" 6940 version "6.0.4"
6981 resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" 6941 resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
6982 integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== 6942 integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
@@ -7004,7 +6964,7 @@ postcss-value-parser@^4.1.0: @@ -7004,7 +6964,7 @@ postcss-value-parser@^4.1.0:
7004 resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" 6964 resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
7005 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 6965 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
7006 6966
7007 -postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6: 6967 +postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.5, postcss@^7.0.6:
7008 version "7.0.35" 6968 version "7.0.35"
7009 resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" 6969 resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
7010 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== 6970 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
@@ -7013,15 +6973,6 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0. @@ -7013,15 +6973,6 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.
7013 source-map "^0.6.1" 6973 source-map "^0.6.1"
7014 supports-color "^6.1.0" 6974 supports-color "^6.1.0"
7015 6975
7016 -postcss@^8.1.10:  
7017 - version "8.2.6"  
7018 - resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe"  
7019 - integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg==  
7020 - dependencies:  
7021 - colorette "^1.2.1"  
7022 - nanoid "^3.1.20"  
7023 - source-map "^0.6.1"  
7024 -  
7025 postcss@^8.2.1: 6976 postcss@^8.2.1:
7026 version "8.2.4" 6977 version "8.2.4"
7027 resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" 6978 resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04"
@@ -9049,13 +9000,13 @@ vue-eslint-parser@^7.5.0: @@ -9049,13 +9000,13 @@ vue-eslint-parser@^7.5.0:
9049 esquery "^1.4.0" 9000 esquery "^1.4.0"
9050 lodash "^4.17.15" 9001 lodash "^4.17.15"
9051 9002
9052 -vue-i18n@9.0.0-rc.7:  
9053 - version "9.0.0-rc.7"  
9054 - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-rc.7.tgz#4097dfaa0d66319bbcd9fe5fb22c4b72e97720b5"  
9055 - integrity sha512-weNLPLqGiitziBUpGQHyxYlhuw447yR4EcsvmqUX3MocIKciv6OMHKxUguCFC1m1ZRCzHQwik7fz+Q8u4UmEdQ== 9003 +vue-i18n@9.0.0-rc.8:
  9004 + version "9.0.0-rc.8"
  9005 + resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-rc.8.tgz#36d022516cf2527ce02eecf9de116b978e163da3"
  9006 + integrity sha512-WQC9q0UG1lbk+naBBoVTrJjHPZfHP6Pid35Ek9AkCxUcXolW1pXUCQg1gIMF8I0obxLd/fSx9GuOWrB/aaU3aQ==
9056 dependencies: 9007 dependencies:
9057 - "@intlify/core-base" "9.0.0-rc.7"  
9058 - "@intlify/shared" "9.0.0-rc.7" 9008 + "@intlify/core-base" "9.0.0-rc.8"
  9009 + "@intlify/shared" "9.0.0-rc.8"
9059 "@vue/devtools-api" "^6.0.0-beta.5" 9010 "@vue/devtools-api" "^6.0.0-beta.5"
9060 9011
9061 vue-router@^4.0.4: 9012 vue-router@^4.0.4:
@@ -9077,7 +9028,7 @@ vue-types@^3.0.2: @@ -9077,7 +9028,7 @@ vue-types@^3.0.2:
9077 dependencies: 9028 dependencies:
9078 is-plain-object "3.0.1" 9029 is-plain-object "3.0.1"
9079 9030
9080 -vue@^3.0.0: 9031 +vue@3.0.5, vue@^3.0.0:
9081 version "3.0.5" 9032 version "3.0.5"
9082 resolved "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz#de1b82eba24abfe71e0970fc9b8d4b2babdc3fe1" 9033 resolved "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz#de1b82eba24abfe71e0970fc9b8d4b2babdc3fe1"
9083 integrity sha512-TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg== 9034 integrity sha512-TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg==
@@ -9086,15 +9037,6 @@ vue@^3.0.0: @@ -9086,15 +9037,6 @@ vue@^3.0.0:
9086 "@vue/runtime-dom" "3.0.5" 9037 "@vue/runtime-dom" "3.0.5"
9087 "@vue/shared" "3.0.5" 9038 "@vue/shared" "3.0.5"
9088 9039
9089 -vue@^3.0.6:  
9090 - version "3.0.6"  
9091 - resolved "https://registry.npmjs.org/vue/-/vue-3.0.6.tgz#2c16ed4bb66f16d6c6f6eaa3b7d5835a76598049"  
9092 - integrity sha512-fgjbe/+f1EsqG7ZbaFSnxdzQXF2DKoFCdJlPxZZJy9XMtyXS6SY8pGzLi8WYb4zmsPLHvTZz4bHW30kFDk7vfA==  
9093 - dependencies:  
9094 - "@vue/compiler-dom" "3.0.6"  
9095 - "@vue/runtime-dom" "3.0.6"  
9096 - "@vue/shared" "3.0.6"  
9097 -  
9098 vuex-module-decorators@^1.0.1: 9040 vuex-module-decorators@^1.0.1:
9099 version "1.0.1" 9041 version "1.0.1"
9100 resolved "https://registry.npmjs.org/vuex-module-decorators/-/vuex-module-decorators-1.0.1.tgz#d34dafb5428a3636f1c26d3d014c15fc9659ccd0" 9042 resolved "https://registry.npmjs.org/vuex-module-decorators/-/vuex-module-decorators-1.0.1.tgz#d34dafb5428a3636f1c26d3d014c15fc9659ccd0"