优化 svg 加载

This commit is contained in:
神仙都没用 2024-07-29 18:28:09 +08:00
parent 7e40322207
commit 98bfeb9bfc
21 changed files with 576 additions and 440 deletions

4
env.d.ts vendored
View File

@ -1,7 +1,3 @@
/// <reference types="@cool-vue/crud/index.d.ts" />
/// <reference types="./build/cool/eps.d.ts" />
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_NAME: string;
readonly VITE_TIMEOUT: number;

View File

@ -1,6 +1,6 @@
{
"name": "cool-admin",
"version": "7.1.2",
"version": "7.2.0",
"scripts": {
"dev": "vite --host",
"build": "vite build",
@ -9,7 +9,7 @@
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .eslintignore"
},
"dependencies": {
"@cool-vue/crud": "^7.1.27",
"@cool-vue/crud": "^7.2.0",
"@element-plus/icons-vue": "^2.3.1",
"@vueuse/core": "^10.4.0",
"@wangeditor/editor": "^5.1.23",
@ -37,8 +37,8 @@
"xlsx": "^0.18.5"
},
"devDependencies": {
"@cool-vue/vite-plugin": "^7.2.1",
"@rushstack/eslint-patch": "^1.8.0",
"@cool-vue/vite-plugin": "^7.1.7",
"@types/file-saver": "^2.0.7",
"@types/lodash-es": "^4.17.8",
"@types/mockjs": "^1.0.7",

View File

@ -1,6 +1,6 @@
{
"name": "@cool-vue/crud",
"version": "7.1.27",
"version": "7.2.0",
"private": false,
"main": "./dist/index.umd.min.js",
"typings": "types/index.d.ts",

25
packages/vite-plugin/client.d.ts vendored Normal file
View File

@ -0,0 +1,25 @@
declare module "virtual:ctx" {
const ctx: {
serviceLang: string;
modules: string[];
};
export { ctx };
}
declare module "virtual:eps" {
const eps: {
list: any[];
service: any;
};
export { eps };
}
declare module "virtual:demo";
declare module "virtual:svg-register";
declare module "virtual:svg-icons" {
const svgIcons: string[];
export { svgIcons };
}

View File

@ -1,8 +1,8 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs'), require('path'), require('axios'), require('lodash'), require('prettier'), require('@vue/compiler-sfc'), require('magic-string'), require('glob')) :
typeof define === 'function' && define.amd ? define(['exports', 'fs', 'path', 'axios', 'lodash', 'prettier', '@vue/compiler-sfc', 'magic-string', 'glob'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.index = {}, global.fs, global.path, global.axios, global.lodash, global.prettier, global.compilerSfc, global.magicString, global.glob));
})(this, (function (exports, fs, path, axios, lodash, prettier, compilerSfc, magicString, glob) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs'), require('path'), require('axios'), require('lodash'), require('prettier'), require('@vue/compiler-sfc'), require('magic-string'), require('glob'), require('svgo')) :
typeof define === 'function' && define.amd ? define(['exports', 'fs', 'path', 'axios', 'lodash', 'prettier', '@vue/compiler-sfc', 'magic-string', 'glob', 'svgo'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.index = {}, global.fs, global.path, global.axios, global.lodash, global.prettier, global.compilerSfc, global.magicString, global.glob, global.svgo));
})(this, (function (exports, fs, path, axios, lodash, prettier, compilerSfc, magicString, glob, svgo) { 'use strict';
const config = {
type: "admin",
@ -533,52 +533,6 @@
return null;
}
function findFiles(dir) {
const res = [];
const dirs = fs.readdirSync(dir, {
withFileTypes: true,
});
for (const d of dirs) {
if (d.isDirectory()) {
res.push(...findFiles(dir + d.name + "/"));
}
else {
if (path.extname(d.name) == ".svg") {
const svg = fs.readFileSync(dir + d.name)
.toString()
.replace(/(\r)|(\n)/g, "")
.replace(/<svg([^>+].*?)>/, (_, $2) => {
let width = 0;
let height = 0;
let content = $2.replace(/(width|height)="([^>+].*?)"/g, (_, s2, s3) => {
if (s2 === "width") {
width = s3;
}
else if (s2 === "height") {
height = s3;
}
return "";
});
if (!/(viewBox="[^>+].*?")/g.test($2)) {
content += `viewBox="0 0 ${width} ${height}"`;
}
return `<symbol id="icon-${d.name.replace(".svg", "")}" ${content}>`;
})
.replace("</svg>", "</symbol>");
res.push(svg);
}
}
}
return res;
}
function createSvg(html) {
const res = findFiles(rootDir("./src/"));
return html.replace("<body>", `<body>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; width: 0; height: 0">
${res.join("")}
</svg>`);
}
// 创建文件
async function createMenu(options) {
// 格式化内容
@ -649,12 +603,6 @@
}
return code;
},
transformIndexHtml(html) {
if (config.type == "admin") {
return createSvg(html);
}
return html;
},
};
}
@ -775,8 +723,82 @@
return ctx;
}
let svgIcons = [];
function findSvg(dir) {
const arr = [];
const dirs = fs.readdirSync(dir, {
withFileTypes: true,
});
for (const d of dirs) {
if (d.isDirectory()) {
arr.push(...findSvg(dir + d.name + "/"));
}
else {
if (path.extname(d.name) == ".svg") {
svgIcons.push(path.basename(d.name, ".svg"));
const svg = fs.readFileSync(dir + d.name)
.toString()
.replace(/(\r)|(\n)/g, "")
.replace(/<svg([^>+].*?)>/, (_, $2) => {
let width = 0;
let height = 0;
let content = $2.replace(/(width|height)="([^>+].*?)"/g, (_, s2, s3) => {
if (s2 === "width") {
width = s3;
}
else if (s2 === "height") {
height = s3;
}
return "";
});
if (!/(viewBox="[^>+].*?")/g.test($2)) {
content += `viewBox="0 0 ${width} ${height}"`;
}
return `<symbol id="icon-${d.name.replace(".svg", "")}" ${content}>`;
})
.replace("</svg>", "</symbol>");
arr.push(svg);
}
}
}
return arr;
}
function compilerSvg() {
svgIcons = [];
return findSvg(rootDir("./src/"))
.map((e) => {
return svgo.optimize(e)?.data || e;
})
.join("");
}
async function createSvg() {
const html = compilerSvg();
const code = `
if (typeof window !== 'undefined') {
function loadSvg() {
const svgDom = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svgDom.style.position = 'absolute';
svgDom.style.width = '0';
svgDom.style.height = '0';
svgDom.setAttribute('xmlns','http://www.w3.org/2000/svg');
svgDom.setAttribute('xmlns:link','http://www.w3.org/1999/xlink');
svgDom.innerHTML = '${html}';
document.body.insertBefore(svgDom, document.body.firstChild);
}
loadSvg();
}
`;
return { code, svgIcons };
}
async function virtual() {
const virtualModuleIds = ["virtual:eps", "virtual:ctx"];
const virtualModuleIds = [
"virtual:eps",
"virtual:ctx",
"virtual:svg-register",
"virtual:svg-icons",
];
return {
name: "vite-cool-virtual",
enforce: "pre",
@ -829,6 +851,16 @@
export const ctx = ${JSON.stringify(ctx)}
`;
}
if (id == "\0virtual:svg-register") {
const { code } = await createSvg();
return code;
}
if (id == "\0virtual:svg-icons") {
const { svgIcons } = await createSvg();
return `
export const svgIcons = ${JSON.stringify(svgIcons)}
`;
}
},
};
}

View File

@ -1 +1,4 @@
export declare function createSvg(html: string): string;
export declare function createSvg(): Promise<{
code: string;
svgIcons: string[];
}>;

View File

@ -1,7 +1,7 @@
{
"name": "@cool-vue/vite-plugin",
"version": "7.1.7",
"description": "cool-admin/cool-uni builder",
"version": "7.2.1",
"description": "cool-admincool-uni builder",
"main": "/dist/index.js",
"scripts": {
"build": "rollup --c --bundleConfigAsCjs"
@ -12,6 +12,7 @@
"files": [
"dist/*",
"types/*",
"client.d.ts",
"package.json"
],
"types": "./dist/index.d.ts",
@ -33,6 +34,7 @@
"glob": "^10.3.12",
"lodash": "^4.17.21",
"magic-string": "^0.30.10",
"prettier": "^3.2.5"
"prettier": "^3.2.5",
"svgo": "^3.3.2"
}
}

View File

@ -23,6 +23,9 @@ dependencies:
prettier:
specifier: ^3.2.5
version: 3.2.5
svgo:
specifier: ^3.3.2
version: 3.3.2
devDependencies:
'@rollup/plugin-typescript':
@ -474,6 +477,7 @@ packages:
resolution: {integrity: sha512-/bjfUiXwy3P5vYr6/ezv//Yle2Y0ak3a+Av/BKoi76nFryjWCkki8AuVoPR7ZU/ckcvAWFo77OnFK14B9B5JsA==}
cpu: [arm]
os: [linux]
libc: [glibc]
requiresBuild: true
dev: true
optional: true
@ -482,6 +486,7 @@ packages:
resolution: {integrity: sha512-S24b+tJHwpq2TNRz9T+r71FjMvyBBApY8EkYxz8Cwi/rhH6h+lu/iDUxyc9PuHf9UvyeBFYkWWcrDahai/NCGw==}
cpu: [arm]
os: [linux]
libc: [musl]
requiresBuild: true
dev: true
optional: true
@ -490,6 +495,7 @@ packages:
resolution: {integrity: sha512-UN7VAXLyeyGbCQWiOtQN7BqmjTDw1ON2Oos4lfk0YR7yNhFEJWZiwGtvj9Ay4lsT/ueT04sh80Sg2MlWVVZ+Ug==}
cpu: [arm64]
os: [linux]
libc: [glibc]
requiresBuild: true
dev: true
optional: true
@ -498,6 +504,7 @@ packages:
resolution: {integrity: sha512-ZBKvz3+rIhQjusKMccuJiPsStCrPOtejCHxTe+yWp3tNnuPWtyCh9QLGPKz6bFNFbwbw28E2T6zDgzJZ05F1JQ==}
cpu: [arm64]
os: [linux]
libc: [musl]
requiresBuild: true
dev: true
optional: true
@ -506,6 +513,7 @@ packages:
resolution: {integrity: sha512-LjMMFiVBRL3wOe095vHAekL4b7nQqf4KZEpdMWd3/W+nIy5o9q/8tlVKiqMbfieDypNXLsxM9fexOxd9Qcklyg==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
requiresBuild: true
dev: true
optional: true
@ -514,6 +522,7 @@ packages:
resolution: {integrity: sha512-ohkPt0lKoCU0s4B6twro2aft+QROPdUiWwOjPNTzwTsBK5w+2+iT9kySdtOdq0gzWJAdiqsV4NFtXOwGZmIsHA==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
requiresBuild: true
dev: true
optional: true
@ -522,6 +531,7 @@ packages:
resolution: {integrity: sha512-jm2lvLc+/gqXfndlpDw05jKvsl/HKYxUEAt1h5UXcMFVpO4vGpoWmJVUfKDtTqSaHcCNw1his1XjkgR9aort3w==}
cpu: [s390x]
os: [linux]
libc: [glibc]
requiresBuild: true
dev: true
optional: true
@ -530,6 +540,7 @@ packages:
resolution: {integrity: sha512-oc5/SlITI/Vj/qL4UM+lXN7MERpiy1HEOnrE+SegXwzf7WP9bzmZd6+MDljCEZTdSY84CpvUv9Rq7bCaftn1+g==}
cpu: [x64]
os: [linux]
libc: [glibc]
requiresBuild: true
dev: true
optional: true
@ -538,6 +549,7 @@ packages:
resolution: {integrity: sha512-/2VWEBG6mKbS2itm7hzPwhIPaxfZh/KLWrYg20pCRLHhNFtF+epLgcBtwy3m07bl/k86Q3PFRAf2cX+VbZbwzQ==}
cpu: [x64]
os: [linux]
libc: [musl]
requiresBuild: true
dev: true
optional: true
@ -566,6 +578,11 @@ packages:
dev: true
optional: true
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
dev: false
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
@ -831,6 +848,10 @@ packages:
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
/boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: false
/brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
@ -879,6 +900,11 @@ packages:
delayed-stream: 1.0.0
dev: false
/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
dev: false
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
@ -891,6 +917,44 @@ packages:
shebang-command: 2.0.0
which: 2.0.2
/css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
domutils: 3.1.0
nth-check: 2.1.1
dev: false
/css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
mdn-data: 2.0.28
source-map-js: 1.2.0
dev: false
/css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.0
dev: false
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
dev: false
/csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
css-tree: 2.2.1
dev: false
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@ -919,6 +983,33 @@ packages:
path-type: 4.0.0
dev: true
/dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
dev: false
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
dev: false
/domhandler@5.0.3:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
dev: false
/domutils@3.1.0:
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
dev: false
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: false
@ -1359,6 +1450,14 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15
dev: false
/mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
dev: false
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
dev: false
/merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@ -1414,6 +1513,12 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
dev: false
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
@ -1644,6 +1749,20 @@ packages:
engines: {node: '>= 0.4'}
dev: true
/svgo@3.3.2:
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 5.1.0
css-tree: 2.3.1
css-what: 6.1.0
csso: 5.0.5
picocolors: 1.0.0
dev: false
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true

View File

@ -2,7 +2,6 @@ import type { Plugin } from "vite";
import { createEps } from "./eps";
import { parseJson } from "./utils";
import { createTag } from "./tag";
import { createSvg } from "./svg";
import { createMenu } from "./menu";
import { config } from "./config";
@ -53,12 +52,5 @@ export function base(): Plugin {
return code;
},
transformIndexHtml(html) {
if (config.type == "admin") {
return createSvg(html);
}
return html;
},
};
}

View File

@ -1,17 +1,22 @@
import { readFileSync, readdirSync } from "fs";
import { extname } from "path";
import { basename, extname } from "path";
import { rootDir } from "../utils";
import svgo from "svgo";
function findFiles(dir: string): string[] {
const res: string[] = [];
let svgIcons: string[] = [];
function findSvg(dir: string) {
const arr: string[] = [];
const dirs = readdirSync(dir, {
withFileTypes: true,
});
for (const d of dirs) {
if (d.isDirectory()) {
res.push(...findFiles(dir + d.name + "/"));
arr.push(...findSvg(dir + d.name + "/"));
} else {
if (extname(d.name) == ".svg") {
svgIcons.push(basename(d.name, ".svg"));
const svg = readFileSync(dir + d.name)
.toString()
.replace(/(\r)|(\n)/g, "")
@ -35,21 +40,43 @@ function findFiles(dir: string): string[] {
return `<symbol id="icon-${d.name.replace(".svg", "")}" ${content}>`;
})
.replace("</svg>", "</symbol>");
res.push(svg);
arr.push(svg);
}
}
}
return res;
return arr;
}
export function createSvg(html: string) {
const res = findFiles(rootDir("./src/"));
function compilerSvg() {
svgIcons = [];
return html.replace(
"<body>",
`<body>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; width: 0; height: 0">
${res.join("")}
</svg>`,
);
return findSvg(rootDir("./src/"))
.map((e) => {
return svgo.optimize(e)?.data || e;
})
.join("");
}
export async function createSvg() {
const html = compilerSvg();
const code = `
if (typeof window !== 'undefined') {
function loadSvg() {
const svgDom = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svgDom.style.position = 'absolute';
svgDom.style.width = '0';
svgDom.style.height = '0';
svgDom.setAttribute('xmlns','http://www.w3.org/2000/svg');
svgDom.setAttribute('xmlns:link','http://www.w3.org/1999/xlink');
svgDom.innerHTML = '${html}';
document.body.insertBefore(svgDom, document.body.firstChild);
}
loadSvg();
}
`;
return { code, svgIcons };
}

View File

@ -1,9 +1,15 @@
import type { Plugin } from "vite";
import { createEps } from "./eps";
import { createCtx } from "./ctx";
import { createSvg } from "./svg";
export async function virtual(): Promise<Plugin> {
const virtualModuleIds: string[] = ["virtual:eps", "virtual:ctx"];
const virtualModuleIds: string[] = [
"virtual:eps",
"virtual:ctx",
"virtual:svg-register",
"virtual:svg-icons",
];
return {
name: "vite-cool-virtual",
@ -65,6 +71,20 @@ export async function virtual(): Promise<Plugin> {
export const ctx = ${JSON.stringify(ctx)}
`;
}
if (id == "\0virtual:svg-register") {
const { code } = await createSvg();
return code;
}
if (id == "\0virtual:svg-icons") {
const { svgIcons } = await createSvg();
return `
export const svgIcons = ${JSON.stringify(svgIcons)}
`;
}
},
};
}

View File

@ -84,5 +84,3 @@ export namespace Config {
[key: string]: any;
}
}
// ts范型Config.EPS的类型改成全部可选

View File

@ -6,8 +6,8 @@ settings:
dependencies:
'@cool-vue/crud':
specifier: ^7.1.27
version: 7.1.27(typescript@5.4.2)
specifier: ^7.2.0
version: 7.2.0(typescript@5.4.2)
'@element-plus/icons-vue':
specifier: ^2.3.1
version: 2.3.1(vue@3.4.15)
@ -86,8 +86,8 @@ dependencies:
devDependencies:
'@cool-vue/vite-plugin':
specifier: ^7.1.7
version: 7.1.7
specifier: ^7.2.1
version: 7.2.1
'@rushstack/eslint-patch':
specifier: ^1.8.0
version: 1.8.0
@ -177,8 +177,8 @@ packages:
picocolors: 1.0.1
dev: true
/@babel/compat-data@7.24.9:
resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==}
/@babel/compat-data@7.25.0:
resolution: {integrity: sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==}
engines: {node: '>=6.9.0'}
dev: true
@ -188,16 +188,16 @@ packages:
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.24.7
'@babel/generator': 7.24.10
'@babel/generator': 7.25.0
'@babel/helper-compilation-targets': 7.24.8
'@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9)
'@babel/helpers': 7.24.8
'@babel/parser': 7.24.8
'@babel/template': 7.24.7
'@babel/traverse': 7.24.8
'@babel/types': 7.24.9
'@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9)
'@babel/helpers': 7.25.0
'@babel/parser': 7.25.0
'@babel/template': 7.25.0
'@babel/traverse': 7.25.1
'@babel/types': 7.25.0
convert-source-map: 2.0.0
debug: 4.3.5
debug: 4.3.6
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@ -205,11 +205,11 @@ packages:
- supports-color
dev: true
/@babel/generator@7.24.10:
resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==}
/@babel/generator@7.25.0:
resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
'@babel/types': 7.25.0
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
@ -219,68 +219,44 @@ packages:
resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
'@babel/types': 7.25.0
dev: true
/@babel/helper-compilation-targets@7.24.8:
resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/compat-data': 7.24.9
'@babel/compat-data': 7.25.0
'@babel/helper-validator-option': 7.24.8
browserslist: 4.23.2
lru-cache: 5.1.1
semver: 6.3.1
dev: true
/@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.9):
resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==}
/@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.24.9):
resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.9
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-member-expression-to-functions': 7.24.8
'@babel/helper-optimise-call-expression': 7.24.7
'@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9)
'@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.9)
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/traverse': 7.25.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
/@babel/helper-environment-visitor@7.24.7:
resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
dev: true
/@babel/helper-function-name@7.24.7:
resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.24.7
'@babel/types': 7.24.9
dev: true
/@babel/helper-hoist-variables@7.24.7:
resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
dev: true
/@babel/helper-member-expression-to-functions@7.24.8:
resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.8
'@babel/types': 7.24.9
'@babel/traverse': 7.25.1
'@babel/types': 7.25.0
transitivePeerDependencies:
- supports-color
dev: true
@ -289,31 +265,30 @@ packages:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
'@babel/types': 7.25.0
dev: true
/@babel/helper-module-imports@7.24.7:
resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.8
'@babel/types': 7.24.9
'@babel/traverse': 7.25.1
'@babel/types': 7.25.0
transitivePeerDependencies:
- supports-color
dev: true
/@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9):
resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==}
/@babel/helper-module-transforms@7.25.0(@babel/core@7.24.9):
resolution: {integrity: sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.9
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-module-imports': 7.24.7
'@babel/helper-simple-access': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/helper-validator-identifier': 7.24.7
'@babel/traverse': 7.25.1
transitivePeerDependencies:
- supports-color
dev: true
@ -322,7 +297,7 @@ packages:
resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
'@babel/types': 7.25.0
dev: true
/@babel/helper-plugin-utils@7.24.8:
@ -330,16 +305,16 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
/@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9):
resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==}
/@babel/helper-replace-supers@7.25.0(@babel/core@7.24.9):
resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.9
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-member-expression-to-functions': 7.24.8
'@babel/helper-optimise-call-expression': 7.24.7
'@babel/traverse': 7.25.1
transitivePeerDependencies:
- supports-color
dev: true
@ -348,8 +323,8 @@ packages:
resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.8
'@babel/types': 7.24.9
'@babel/traverse': 7.25.1
'@babel/types': 7.25.0
transitivePeerDependencies:
- supports-color
dev: true
@ -358,19 +333,12 @@ packages:
resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.8
'@babel/types': 7.24.9
'@babel/traverse': 7.25.1
'@babel/types': 7.25.0
transitivePeerDependencies:
- supports-color
dev: true
/@babel/helper-split-export-declaration@7.24.7:
resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.9
dev: true
/@babel/helper-string-parser@7.24.8:
resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
engines: {node: '>=6.9.0'}
@ -384,12 +352,12 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
/@babel/helpers@7.24.8:
resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==}
/@babel/helpers@7.25.0:
resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.24.7
'@babel/types': 7.24.9
'@babel/template': 7.25.0
'@babel/types': 7.25.0
dev: true
/@babel/highlight@7.24.7:
@ -402,12 +370,12 @@ packages:
picocolors: 1.0.1
dev: true
/@babel/parser@7.24.8:
resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==}
/@babel/parser@7.25.0:
resolution: {integrity: sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.24.9
'@babel/types': 7.25.0
/@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.24.9):
resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==}
@ -416,7 +384,7 @@ packages:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.9
'@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9)
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9)
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.9)
transitivePeerDependencies:
@ -472,65 +440,63 @@ packages:
'@babel/helper-plugin-utils': 7.24.8
dev: true
/@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.9):
resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==}
/@babel/plugin-transform-typescript@7.25.0(@babel/core@7.24.9):
resolution: {integrity: sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.9
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9)
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9)
transitivePeerDependencies:
- supports-color
dev: true
/@babel/runtime@7.24.8:
resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==}
/@babel/runtime@7.25.0:
resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
dev: false
/@babel/template@7.24.7:
resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
/@babel/template@7.25.0:
resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.7
'@babel/parser': 7.24.8
'@babel/types': 7.24.9
'@babel/parser': 7.25.0
'@babel/types': 7.25.0
dev: true
/@babel/traverse@7.24.8:
resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==}
/@babel/traverse@7.25.1:
resolution: {integrity: sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.7
'@babel/generator': 7.24.10
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/parser': 7.24.8
'@babel/types': 7.24.9
debug: 4.3.5
'@babel/generator': 7.25.0
'@babel/parser': 7.25.0
'@babel/template': 7.25.0
'@babel/types': 7.25.0
debug: 4.3.6
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
/@babel/types@7.24.9:
resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==}
/@babel/types@7.25.0:
resolution: {integrity: sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.24.8
'@babel/helper-validator-identifier': 7.24.7
to-fast-properties: 2.0.0
/@cool-vue/crud@7.1.27(typescript@5.4.2):
resolution: {integrity: sha512-S/Z6Q4Aw3lshVevpizQ5Z4DarXJdkBTEZFSOlLEnBkhzBLGFBzLiNI42vkm9Ru0mcV+WNic5RJ8C99/LUhC/6g==}
/@cool-vue/crud@7.2.0(typescript@5.4.2):
resolution: {integrity: sha512-keLG09B0lxGuImoIqU5aO4OOxeNe0Kqn8g802NhqRajija6gxeIQ5qunqYZRQpYWzBte6v6XkPEpz0sZ/M0lzQ==}
dependencies:
'@element-plus/icons-vue': 2.3.1(vue@3.4.15)
array.prototype.flat: 1.3.2
@ -544,8 +510,8 @@ packages:
- typescript
dev: false
/@cool-vue/vite-plugin@7.1.7:
resolution: {integrity: sha512-pSTXigNa2HrW7ps4EFEqI18KzZh19WEoDZlV8l84DDOJHV4jjaeSKbBpur/aCWBIogeZOaMCiboCCytfSUGYCQ==}
/@cool-vue/vite-plugin@7.2.1:
resolution: {integrity: sha512-cBb5R2jJD65i2D9Ma09YLZdmYWRXhe0k0MXUtimLZqPLIkIuVQ01GqUC9OT2XWFXlXIB0qEsZudCt/F2ldZ4nA==}
dependencies:
'@vue/compiler-sfc': 3.4.34
axios: 1.7.2
@ -553,6 +519,7 @@ packages:
lodash: 4.17.21
magic-string: 0.30.10
prettier: 3.3.3
svgo: 3.3.2
transitivePeerDependencies:
- debug
dev: true
@ -797,7 +764,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.5
debug: 4.3.6
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.1
@ -837,7 +804,7 @@ packages:
deprecated: Use @eslint/config-array instead
dependencies:
'@humanwhocodes/object-schema': 2.0.3
debug: 4.3.5
debug: 4.3.6
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@ -952,40 +919,40 @@ packages:
picomatch: 2.3.1
dev: true
/@rollup/rollup-android-arm-eabi@4.19.0:
resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==}
/@rollup/rollup-android-arm-eabi@4.19.1:
resolution: {integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-android-arm64@4.19.0:
resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==}
/@rollup/rollup-android-arm64@4.19.1:
resolution: {integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-arm64@4.19.0:
resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==}
/@rollup/rollup-darwin-arm64@4.19.1:
resolution: {integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-x64@4.19.0:
resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==}
/@rollup/rollup-darwin-x64@4.19.1:
resolution: {integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.19.0:
resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==}
/@rollup/rollup-linux-arm-gnueabihf@4.19.1:
resolution: {integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==}
cpu: [arm]
os: [linux]
libc: [glibc]
@ -993,8 +960,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-arm-musleabihf@4.19.0:
resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==}
/@rollup/rollup-linux-arm-musleabihf@4.19.1:
resolution: {integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==}
cpu: [arm]
os: [linux]
libc: [musl]
@ -1002,8 +969,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.19.0:
resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==}
/@rollup/rollup-linux-arm64-gnu@4.19.1:
resolution: {integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==}
cpu: [arm64]
os: [linux]
libc: [glibc]
@ -1011,8 +978,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.19.0:
resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==}
/@rollup/rollup-linux-arm64-musl@4.19.1:
resolution: {integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==}
cpu: [arm64]
os: [linux]
libc: [musl]
@ -1020,8 +987,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-powerpc64le-gnu@4.19.0:
resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==}
/@rollup/rollup-linux-powerpc64le-gnu@4.19.1:
resolution: {integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
@ -1029,8 +996,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.19.0:
resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==}
/@rollup/rollup-linux-riscv64-gnu@4.19.1:
resolution: {integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
@ -1038,8 +1005,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-s390x-gnu@4.19.0:
resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==}
/@rollup/rollup-linux-s390x-gnu@4.19.1:
resolution: {integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==}
cpu: [s390x]
os: [linux]
libc: [glibc]
@ -1047,8 +1014,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.19.0:
resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==}
/@rollup/rollup-linux-x64-gnu@4.19.1:
resolution: {integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==}
cpu: [x64]
os: [linux]
libc: [glibc]
@ -1056,8 +1023,8 @@ packages:
dev: true
optional: true
/@rollup/rollup-linux-x64-musl@4.19.0:
resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==}
/@rollup/rollup-linux-x64-musl@4.19.1:
resolution: {integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==}
cpu: [x64]
os: [linux]
libc: [musl]
@ -1065,24 +1032,24 @@ packages:
dev: true
optional: true
/@rollup/rollup-win32-arm64-msvc@4.19.0:
resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==}
/@rollup/rollup-win32-arm64-msvc@4.19.1:
resolution: {integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.19.0:
resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==}
/@rollup/rollup-win32-ia32-msvc@4.19.1:
resolution: {integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.19.0:
resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==}
/@rollup/rollup-win32-x64-msvc@4.19.1:
resolution: {integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==}
cpu: [x64]
os: [win32]
requiresBuild: true
@ -1105,6 +1072,11 @@ packages:
resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
dev: false
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
dev: true
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
@ -1192,7 +1164,7 @@ packages:
'@typescript-eslint/types': 7.17.0
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.2)
'@typescript-eslint/visitor-keys': 7.17.0
debug: 4.3.5
debug: 4.3.6
eslint: 8.57.0
typescript: 5.4.2
transitivePeerDependencies:
@ -1219,7 +1191,7 @@ packages:
dependencies:
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.2)
'@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.4.2)
debug: 4.3.5
debug: 4.3.6
eslint: 8.57.0
ts-api-utils: 1.3.0(typescript@5.4.2)
typescript: 5.4.2
@ -1243,7 +1215,7 @@ packages:
dependencies:
'@typescript-eslint/types': 7.17.0
'@typescript-eslint/visitor-keys': 7.17.0
debug: 4.3.5
debug: 4.3.6
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.5
@ -1331,7 +1303,7 @@ packages:
vue: ^3.0.0
dependencies:
'@babel/core': 7.24.9
'@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.9)
'@babel/plugin-transform-typescript': 7.25.0(@babel/core@7.24.9)
'@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9)
vite: 5.3.4(@types/node@20.14.5)(sass@1.53.0)(terser@5.27.0)
vue: 3.4.15(typescript@5.4.2)
@ -1366,9 +1338,9 @@ packages:
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9)
'@babel/template': 7.24.7
'@babel/traverse': 7.24.8
'@babel/types': 7.24.9
'@babel/template': 7.25.0
'@babel/traverse': 7.25.1
'@babel/types': 7.25.0
'@vue/babel-helper-vue-transform-on': 1.2.2
'@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.9)
camelcase: 6.3.0
@ -1387,14 +1359,14 @@ packages:
'@babel/core': 7.24.9
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.24.8
'@babel/parser': 7.24.8
'@vue/compiler-sfc': 3.4.34
'@babel/parser': 7.25.0
'@vue/compiler-sfc': 3.4.15
dev: true
/@vue/compiler-core@3.4.15:
resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==}
dependencies:
'@babel/parser': 7.24.8
'@babel/parser': 7.25.0
'@vue/shared': 3.4.15
entities: 4.5.0
estree-walker: 2.0.2
@ -1403,7 +1375,7 @@ packages:
/@vue/compiler-core@3.4.34:
resolution: {integrity: sha512-Z0izUf32+wAnQewjHu+pQf1yw00EGOmevl1kE+ljjjMe7oEfpQ+BI3/JNK7yMB4IrUsqLDmPecUrpj3mCP+yJQ==}
dependencies:
'@babel/parser': 7.24.8
'@babel/parser': 7.25.0
'@vue/shared': 3.4.34
entities: 4.5.0
estree-walker: 2.0.2
@ -1426,7 +1398,7 @@ packages:
/@vue/compiler-sfc@3.4.15:
resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==}
dependencies:
'@babel/parser': 7.24.8
'@babel/parser': 7.25.0
'@vue/compiler-core': 3.4.15
'@vue/compiler-dom': 3.4.15
'@vue/compiler-ssr': 3.4.15
@ -1439,7 +1411,7 @@ packages:
/@vue/compiler-sfc@3.4.34:
resolution: {integrity: sha512-x6lm0UrM03jjDXTPZgD9Ad8bIVD1ifWNit2EaWQIZB5CULr46+FbLQ5RpK7AXtDHGjx9rmvC7QRCTjsiGkAwRw==}
dependencies:
'@babel/parser': 7.24.8
'@babel/parser': 7.25.0
'@vue/compiler-core': 3.4.34
'@vue/compiler-dom': 3.4.34
'@vue/compiler-ssr': 3.4.34
@ -1978,7 +1950,7 @@ packages:
hasBin: true
dependencies:
caniuse-lite: 1.0.30001643
electron-to-chromium: 1.5.1
electron-to-chromium: 1.5.2
node-releases: 2.0.18
update-browserslist-db: 1.1.0(browserslist@4.23.2)
dev: true
@ -2113,6 +2085,11 @@ packages:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
dev: true
/compute-scroll-into-view@1.0.20:
resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
dev: false
@ -2152,12 +2129,50 @@ packages:
which: 2.0.2
dev: true
/css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
domutils: 3.1.0
nth-check: 2.1.1
dev: true
/css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
mdn-data: 2.0.28
source-map-js: 1.2.0
dev: true
/css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.0
dev: true
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
dev: true
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
css-tree: 2.2.1
dev: true
/csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@ -2200,8 +2215,8 @@ packages:
resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==}
dev: false
/debug@4.3.5:
resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
/debug@4.3.6:
resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@ -2274,12 +2289,39 @@ packages:
esutils: 2.0.3
dev: true
/dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
dev: true
/dom7@3.0.0:
resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
dependencies:
ssr-window: 3.0.0
dev: false
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
dev: true
/domhandler@5.0.3:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
dev: true
/domutils@3.1.0:
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
dev: true
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
@ -2291,8 +2333,8 @@ packages:
zrender: 5.4.4
dev: false
/electron-to-chromium@1.5.1:
resolution: {integrity: sha512-FKbOCOQ5QRB3VlIbl1LZQefWIYwszlBloaXcY2rbfpu9ioJnNh3TK03YtIDKDo3WKBi8u+YV4+Fn2CkEozgf4w==}
/electron-to-chromium@1.5.2:
resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==}
dev: true
/element-plus@2.7.7(vue@3.4.15):
@ -2332,7 +2374,7 @@ packages:
resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==}
dependencies:
'@socket.io/component-emitter': 3.1.2
debug: 4.3.5
debug: 4.3.6
engine.io-parser: 5.2.3
ws: 8.17.1
xmlhttprequest-ssl: 2.0.0
@ -2604,7 +2646,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.5
debug: 4.3.6
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
@ -3049,7 +3091,7 @@ packages:
/i18next@20.6.1:
resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
dependencies:
'@babel/runtime': 7.24.8
'@babel/runtime': 7.25.0
dev: false
/ignore@5.3.1:
@ -3441,6 +3483,14 @@ packages:
hasBin: true
dev: false
/mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
dev: true
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
dev: true
/memoize-one@6.0.0:
resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
dev: false
@ -3854,29 +3904,29 @@ packages:
yargs: 17.7.2
dev: true
/rollup@4.19.0:
resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==}
/rollup@4.19.1:
resolution: {integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.19.0
'@rollup/rollup-android-arm64': 4.19.0
'@rollup/rollup-darwin-arm64': 4.19.0
'@rollup/rollup-darwin-x64': 4.19.0
'@rollup/rollup-linux-arm-gnueabihf': 4.19.0
'@rollup/rollup-linux-arm-musleabihf': 4.19.0
'@rollup/rollup-linux-arm64-gnu': 4.19.0
'@rollup/rollup-linux-arm64-musl': 4.19.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.19.0
'@rollup/rollup-linux-riscv64-gnu': 4.19.0
'@rollup/rollup-linux-s390x-gnu': 4.19.0
'@rollup/rollup-linux-x64-gnu': 4.19.0
'@rollup/rollup-linux-x64-musl': 4.19.0
'@rollup/rollup-win32-arm64-msvc': 4.19.0
'@rollup/rollup-win32-ia32-msvc': 4.19.0
'@rollup/rollup-win32-x64-msvc': 4.19.0
'@rollup/rollup-android-arm-eabi': 4.19.1
'@rollup/rollup-android-arm64': 4.19.1
'@rollup/rollup-darwin-arm64': 4.19.1
'@rollup/rollup-darwin-x64': 4.19.1
'@rollup/rollup-linux-arm-gnueabihf': 4.19.1
'@rollup/rollup-linux-arm-musleabihf': 4.19.1
'@rollup/rollup-linux-arm64-gnu': 4.19.1
'@rollup/rollup-linux-arm64-musl': 4.19.1
'@rollup/rollup-linux-powerpc64le-gnu': 4.19.1
'@rollup/rollup-linux-riscv64-gnu': 4.19.1
'@rollup/rollup-linux-s390x-gnu': 4.19.1
'@rollup/rollup-linux-x64-gnu': 4.19.1
'@rollup/rollup-linux-x64-musl': 4.19.1
'@rollup/rollup-win32-arm64-msvc': 4.19.1
'@rollup/rollup-win32-ia32-msvc': 4.19.1
'@rollup/rollup-win32-x64-msvc': 4.19.1
fsevents: 2.3.3
dev: true
@ -4027,7 +4077,7 @@ packages:
engines: {node: '>=10.0.0'}
dependencies:
'@socket.io/component-emitter': 3.1.2
debug: 4.3.5
debug: 4.3.6
engine.io-client: 6.5.4
socket.io-parser: 4.2.4
transitivePeerDependencies:
@ -4041,7 +4091,7 @@ packages:
engines: {node: '>=10.0.0'}
dependencies:
'@socket.io/component-emitter': 3.1.2
debug: 4.3.5
debug: 4.3.6
transitivePeerDependencies:
- supports-color
dev: false
@ -4185,6 +4235,20 @@ packages:
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
dev: true
/svgo@3.3.2:
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 5.1.0
css-tree: 2.3.1
css-what: 6.1.0
csso: 5.0.5
picocolors: 1.0.1
dev: true
/synckit@0.9.1:
resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==}
engines: {node: ^14.18.0 || >=16.0.0}
@ -4363,7 +4427,7 @@ packages:
vite: '>=2.0.0'
dependencies:
chalk: 4.1.2
debug: 4.3.5
debug: 4.3.6
fs-extra: 10.1.0
vite: 5.3.4(@types/node@20.14.5)(sass@1.53.0)(terser@5.27.0)
transitivePeerDependencies:
@ -4382,7 +4446,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.0
debug: 4.3.5
debug: 4.3.6
error-stack-parser-es: 0.1.5
fs-extra: 11.2.0
open: 10.1.0
@ -4425,7 +4489,7 @@ packages:
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.9)
'@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.9)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9)
'@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.9)
'@babel/plugin-transform-typescript': 7.25.0(@babel/core@7.24.9)
'@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9)
'@vue/compiler-dom': 3.4.34
kolorist: 1.8.0
@ -4466,7 +4530,7 @@ packages:
'@types/node': 20.14.5
esbuild: 0.21.5
postcss: 8.4.40
rollup: 4.19.0
rollup: 4.19.1
sass: 1.53.0
terser: 5.27.0
optionalDependencies:
@ -4526,7 +4590,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.5
debug: 4.3.6
eslint: 8.57.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3

View File

@ -4,6 +4,7 @@ import { createModule } from "./module";
import { router } from "../router";
import { Loading } from "../utils";
import { createEps } from "./eps";
import "virtual:svg-register";
export async function bootstrap(app: App) {
// pinia

View File

@ -5,27 +5,22 @@
</template>
<script lang="ts">
import { computed, defineComponent, ref } from "vue";
import { isNumber } from "lodash-es";
import { computed, defineComponent, reactive } from "vue";
import { parsePx } from "/@/cool/utils";
export default defineComponent({
name: "cl-svg",
props: {
name: {
type: String
},
className: {
type: String
},
size: {
type: [String, Number]
}
name: String,
className: String,
color: String,
size: [String, Number]
},
setup(props) {
const style = ref({
fontSize: isNumber(props.size) ? props.size + "px" : props.size
const style = reactive({
fontSize: parsePx(props.size!)
});
const iconName = computed(() => `#icon-${props.name}`);

View File

@ -10,14 +10,7 @@
<script lang="ts" name="cl-menu-icon" setup>
import { ref, useModel } from "vue";
import { basename } from "/@/cool/utils";
// svg
const svgFiles = import.meta.glob("/src/modules/*/static/**/*.svg", {
eager: true
});
const emit = defineEmits(["update:modelValue"]);
import { svgIcons } from "virtual:svg-icons";
const props = defineProps({
modelValue: {
@ -26,20 +19,10 @@ const props = defineProps({
}
});
function iconList() {
const list: string[] = [];
for (const i in svgFiles) {
if (i.includes("icon-")) {
list.push(basename(i).replace(".svg", ""));
}
}
return list;
}
const emit = defineEmits(["update:modelValue"]);
//
const list = ref(iconList());
const list = ref(svgIcons.filter((e) => e.indexOf("icon-") === 0));
//
const value = useModel(props, "modelValue");

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

3
src/shims-vue.d.ts vendored
View File

@ -6,6 +6,3 @@ declare module "*.vue" {
}
declare module "element-plus/dist/locale/zh-cn.mjs";
declare module "virtual:ctx";
declare module "virtual:eps";
declare module "virtual:demo";

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,12 @@
"experimentalDecorators": true,
"esModuleInterop": true,
"lib": ["esnext", "dom", "WebWorker"],
"types": ["vite/client", "element-plus/global"],
"types": [
"vite/client",
"element-plus/global",
"@cool-vue/vite-plugin/client",
"./build/cool/eps.d.ts"
],
"paths": {
"/@/*": ["./src/*"],
"/$/*": ["./src/modules/*"],

File diff suppressed because one or more lines are too long