├── docs
├── logo.png
├── favicon.ico
├── index.html
└── assets
│ └── index.851dd584.css
├── public
├── logo.png
└── favicon.ico
├── src
├── main.ts
├── env.d.ts
├── components
│ ├── index.ts
│ ├── help.ts
│ └── vue-grid-layout-split.vue
└── App.vue
├── .gitignore
├── config
├── prod-html.config.ts
├── dev.config.ts
└── prod-comp.config.ts
├── types
├── help.d.ts
└── index.d.ts
├── vite.config.ts
├── tsconfig.json
├── index.html
├── plugins
├── vite-plugin-external
│ └── index.ts
└── vite-plugin-vue-export-helper
│ └── index.ts
├── LICENSE
├── package.json
├── README.md
├── lib
├── vue-grid-layout-split.es.js
├── vue-grid-layout-split.cjs.js
└── vue-grid-layout-split.umd.js
└── yarn.lock
/docs/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paobai/vue-grid-layout-split/HEAD/docs/logo.png
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paobai/vue-grid-layout-split/HEAD/docs/favicon.ico
--------------------------------------------------------------------------------
/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paobai/vue-grid-layout-split/HEAD/public/logo.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paobai/vue-grid-layout-split/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue"
2 | import App from "./App.vue"
3 | import layoutInstall from "./components/index"
4 |
5 | let app = createApp(App)
6 | app.use(layoutInstall)
7 | app.mount("#app")
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 |
3 | node_modules
4 | .DS_Store
5 |
6 | # Editor directories and files
7 | .vscode/*
8 | !.vscode/extensions.json
9 | .idea
10 | *.suo
11 | *.ntvs*
12 | *.njsproj
13 | *.sln
14 | *.sw?
15 |
--------------------------------------------------------------------------------
/config/prod-html.config.ts:
--------------------------------------------------------------------------------
1 | import { InlineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 |
4 | const config: InlineConfig = {
5 | mode: 'production',
6 | build:{
7 | emptyOutDir: true,
8 | outDir: 'docs',
9 | },
10 | base: "./",
11 | plugins: [vue()]
12 | };
13 |
14 | export default config;
15 |
--------------------------------------------------------------------------------
/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | declare module '*.vue' {
4 | import type { DefineComponent } from 'vue'
5 | const component: DefineComponent<{}, {}, any>
6 | export default component
7 | }
8 |
9 |
10 | declare module 'vue-grid-layout' {
11 | export class GridLayout {
12 | }
13 | export class GridItem {
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/types/help.d.ts:
--------------------------------------------------------------------------------
1 | export declare enum GridItemType {
2 | SMALL = 0,
3 | BIG = 1
4 | }
5 | export declare enum GridPosition {
6 | LEFT = 0,
7 | RIGHT = 1
8 | }
9 | export interface LayoutType {
10 | id: number;
11 | x: number;
12 | y: number;
13 | h: number;
14 | height: number;
15 | resetH: number;
16 | type: GridItemType;
17 | [key: string]: any;
18 | }
19 | export declare function fixCardHeight(layout: LayoutType[]): void;
20 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import prodCompConfig from "./config/prod-comp.config"
2 | import prodHtmlConfig from "./config/prod-html.config"
3 | import devConfig from "./config/dev.config"
4 | import { ConfigEnv, UserConfigExport } from "vite"
5 |
6 | //vitejs.dev/config/
7 | export default ({ command, mode }: ConfigEnv): UserConfigExport => {
8 | if (command === "serve") return devConfig
9 | else {
10 | if (process.env["BUILD_DIST"] === "component") return prodCompConfig
11 | else return prodHtmlConfig
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "outDir": "types",
4 | "target": "ES6",
5 | "module": "ES2020",
6 | "moduleResolution": "node",
7 | "removeComments": true,
8 | "strict": true,
9 | "allowJs": true,
10 | "isolatedModules": true,
11 | "esModuleInterop": true,
12 | "jsx": "preserve",
13 | "skipLibCheck": true,
14 | "allowUmdGlobalAccess": true
15 | },
16 | "files": [
17 | "./src/components/index.ts",
18 | "./src/env.d.ts"
19 | ],
20 | "include": ["./src/**/*.d.ts"]
21 | }
22 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Vue-Grid-Layout-Split
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/plugins/vite-plugin-external/index.ts:
--------------------------------------------------------------------------------
1 | import type { Plugin } from 'vite';
2 |
3 | export default function externalPlugin(): Plugin {
4 | return {
5 | name: 'vite:external-node_modules',
6 | enforce: 'pre',
7 | async resolveId(source: string, importer) {
8 | const result = await this.resolve(source, importer, {
9 | skipSelf: true,
10 | custom: { 'node-resolve': {} },
11 | });
12 |
13 | if (result && /node_modules/.test(result.id)) {
14 | return false;
15 | }
16 |
17 | return null;
18 | },
19 | };
20 | }
21 |
--------------------------------------------------------------------------------
/src/components/index.ts:
--------------------------------------------------------------------------------
1 | import _VueGridLayoutSplit from "./vue-grid-layout-split.vue"
2 | import type { App } from 'vue';
3 | export { GridItemType, GridPosition } from "./help"
4 | export type { LayoutType } from "./help"
5 | import vueGridLayoutInstall from "vue-grid-layout"
6 |
7 |
8 | const vueGridLayoutSplit = Object.assign(_VueGridLayoutSplit, {
9 | install: (app: App) => {
10 | app.component(_VueGridLayoutSplit.name, _VueGridLayoutSplit);
11 | // @ts-ignore
12 | app.use(vueGridLayoutInstall)
13 | console.log("had install3")
14 | },
15 | })
16 |
17 | export default vueGridLayoutSplit
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Vue-Grid-Layout-Split
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/types/index.d.ts:
--------------------------------------------------------------------------------
1 | import type { App } from 'vue';
2 | export { GridItemType, GridPosition } from "./help";
3 | export type { LayoutType } from "./help";
4 | declare const vueGridLayoutSplit: {
5 | new (...args: any[]): any;
6 | __isFragment?: undefined;
7 | __isTeleport?: undefined;
8 | __isSuspense?: undefined;
9 | } & import("vue").ComponentOptionsBase>, {}, any, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
10 | install: (app: App) => void;
11 | };
12 | export default vueGridLayoutSplit;
13 |
--------------------------------------------------------------------------------
/plugins/vite-plugin-vue-export-helper/index.ts:
--------------------------------------------------------------------------------
1 | import type { Plugin } from 'vite';
2 |
3 | const EXPORT_HELPER_ID = 'plugin-vue:export-helper';
4 | const helperCode = `
5 | export default (sfc, props) => {
6 | for (const [key, val] of props) {
7 | sfc[key] = val
8 | }
9 | return sfc
10 | }
11 | `;
12 |
13 | export default function virtualPlugin(): Plugin {
14 | return {
15 | name: 'vite:vue-export-helper',
16 | enforce: 'pre',
17 | resolveId(source: string) {
18 | if (source === EXPORT_HELPER_ID) {
19 | return `${EXPORT_HELPER_ID}.js`;
20 | }
21 | return null;
22 | },
23 | load(source) {
24 | if (source === `${EXPORT_HELPER_ID}.js`) {
25 | return helperCode;
26 | }
27 | return null;
28 | },
29 | };
30 | }
31 |
--------------------------------------------------------------------------------
/config/dev.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig, InlineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 | import vueJsx from '@vitejs/plugin-vue-jsx';
4 | import eslint from 'vite-plugin-eslint';
5 | import external from '../plugins/vite-plugin-external';
6 |
7 | export default defineConfig({
8 | mode: 'development',
9 | build: {
10 | target: 'modules',
11 | outDir: 'es',
12 | emptyOutDir: true,
13 | minify: false,
14 | brotliSize: false,
15 | rollupOptions: {
16 | output: {
17 | entryFileNames: '[name].js',
18 | preserveModules: true,
19 | preserveModulesRoot: 'components',
20 | },
21 | },
22 | lib: {
23 | entry: 'components/index.ts',
24 | formats: ['es'],
25 | },
26 | watch: {},
27 | },
28 | server:{
29 | },
30 | optimizeDeps: {
31 | // exclude: ['vue-grid-layout']
32 | },
33 |
34 | plugins: [
35 | // external(),
36 | vue(),
37 | vueJsx(),
38 | ],
39 | }) as InlineConfig;
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 greyby
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/config/prod-comp.config.ts:
--------------------------------------------------------------------------------
1 | import { InlineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 | import vueJsx from '@vitejs/plugin-vue-jsx';
4 | import external from '../plugins/vite-plugin-external';
5 | import vueExportHelper from '../plugins/vite-plugin-vue-export-helper';
6 | import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
7 |
8 |
9 |
10 | const config: InlineConfig = {
11 | mode: 'production',
12 | publicDir: false,
13 | build: {
14 | cssCodeSplit: false,
15 | target: 'modules',
16 | outDir: 'lib',
17 | emptyOutDir: true,
18 | minify: false,
19 | brotliSize: false,
20 | rollupOptions: {
21 | input: ['src/components/index.ts'],
22 | // output: [
23 | // {
24 | // format: 'es',
25 | // dir: 'es',
26 | // entryFileNames: '[name].js',
27 | // preserveModules: true,
28 | // preserveModulesRoot: 'components',
29 | // },
30 | // {
31 | // format: 'umd',
32 | // dir: 'lib',
33 | // entryFileNames: '[name].js',
34 | // preserveModules: true,
35 | // preserveModulesRoot: 'components',
36 | // },
37 | // ],
38 | },
39 | // 开启lib模式,但不使用下面配置
40 | lib: {
41 | name: "vue-grid-layout-split",
42 | entry: 'src/components/index.ts',
43 | formats: ['cjs', 'umd', 'es'],
44 | },
45 | },
46 | // @ts-ignore vite内部类型错误
47 | plugins: [external(), vue(), vueJsx(), vueExportHelper(), cssInjectedByJsPlugin()],
48 | };
49 |
50 | export default config;
51 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-grid-layout-split",
3 | "version": "1.0.2",
4 | "description": "A draggable layout",
5 | "main": "lib/vue-grid-layout-split.es.js",
6 | "module": "lib/vue-grid-layout-split.umd.js",
7 | "types": "types/index.d.ts",
8 | "scripts": {
9 | "test": "echo \"Error: no test specified\" && exit 1",
10 | "start": "vite",
11 | "preview": "cross-env BUILD_DIST=html vite preview --port 5050",
12 | "build": "vue-tsc --noEmit && yarn run build:types && yarn run build:component && yarn run build:html",
13 | "build:component": "cross-env BUILD_DIST=component vite build",
14 | "build:html": "cross-env BUILD_DIST=html vite build",
15 | "build:types": "tsc --emitDeclarationOnly --declaration"
16 | },
17 | "repository": {
18 | "type": "git",
19 | "url": "https://github.com/paobai/vue-grid-layout-split.git"
20 | },
21 | "author": "",
22 | "license": "ISC",
23 | "dependencies": {
24 | "@vitejs/plugin-vue": "^1.6.2",
25 | "@vitejs/plugin-vue-jsx": "^1.1.8",
26 | "cross-env": "^7.0.3",
27 | "glob": "^7.1.6",
28 | "ts-node": "^10.1.0",
29 | "vite": "^2.5.6",
30 | "vite-plugin-eslint": "^1.1.2",
31 | "vue": "^3.2.13",
32 | "vue-grid-layout": "^3.0.0-beta1"
33 | },
34 | "devDependencies": {
35 | "@types/node": "^18.6.4",
36 | "eslint": "^7.21.0",
37 | "eslint-plugin-vue": "^7.7.0",
38 | "less": "^4.1.2",
39 | "less-loader": "^10.2.0",
40 | "ts-node": "^10.1.0",
41 | "typescript": "^4.2.4",
42 | "vite-plugin-css-injected-by-js": "^1.5.1",
43 | "vue-tsc": "^0.38.4",
44 | "yarn": "^1.22.19"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/docs/assets/index.851dd584.css:
--------------------------------------------------------------------------------
1 | .vue-grid-layout[data-v-82449fba]{height:100%;width:100%}.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder{background-color:#000}.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder.not-allowed{background-color:red}.vue-grid-layout[data-v-82449fba] .vue-grid-item:not(.vue-grid-placeholder){border:1px solid black}.vue-grid-layout[data-v-82449fba] .vue-grid-item .resizing{opacity:.9}.vue-grid-layout[data-v-82449fba] .vue-grid-item .static{background:#cce}.vue-grid-layout[data-v-82449fba] .vue-grid-item.moving{border-radius:4px;border:2px solid #538dff}.vue-grid-layout[data-v-82449fba] .vue-grid-item .edit-mask{background-color:#5e739f33;position:absolute;left:0;top:0;width:100%;height:100%}.vue-grid-layout[data-v-82449fba] .vue-grid-item .delete-options{position:absolute;font-size:16px;color:#4e5969;top:0;right:0;padding:10px;cursor:pointer}.vue-grid-layout[data-v-82449fba] .vue-grid-item .default-show-text{font-size:24px;display:flex;align-items:center;justify-content:center;position:absolute;height:100%;width:100%}.vue-grid-layout[data-v-82449fba] .vue-grid-item .no-drag{height:100%;width:100%}.vue-grid-layout[data-v-82449fba] .vue-grid-item .minMax{font-size:12px}.vue-grid-layout[data-v-82449fba] .vue-grid-item .add{cursor:pointer}.vue-draggable-handle[data-v-82449fba]{position:absolute;width:20px;height:20px;top:0;left:0;padding:0 8px 8px 0;background:url("data:image/svg+xml;utf8,") no-repeat bottom right;background-origin:content-box;box-sizing:border-box;cursor:pointer}.layoutJSON[data-v-82449fba]{background:#ddd;border:1px solid black;margin-top:10px;padding:10px}.columns[data-v-82449fba]{-moz-columns:120px;-webkit-columns:120px;columns:120px}#app,body,html{height:100%;width:100%;margin:0}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#8f9097 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background-color:transparent;-webkit-border-radius:2em;-moz-border-radius:2em;border-radius:2em}::-webkit-scrollbar-thumb{background-color:#8f9097;-webkit-border-radius:2em;-moz-border-radius:2em;border-radius:2em}.App[data-v-514bce1b]{padding:12px;width:100%;height:100%;display:flex;flex-direction:column}.App .top-wrapper[data-v-514bce1b]{display:flex;align-items:center;justify-content:center}.App .top-wrapper .logo[data-v-514bce1b]{width:64px;height:64px;margin-right:26px}.App .top-wrapper .title[data-v-514bce1b]{margin-right:32px;font-size:26px;font-weight:700}.App .header-wrapper[data-v-514bce1b]{padding:10px}.App .header-wrapper .control-wrapper[data-v-514bce1b]{display:flex;flex-wrap:wrap;justify-content:space-between}.App .header-wrapper .control-wrapper .left-wrapper[data-v-514bce1b],.App .header-wrapper .control-wrapper .right-wrapper[data-v-514bce1b]{display:flex;align-items:center;margin-bottom:18px}.App .header-wrapper .control-wrapper .bt-class[data-v-514bce1b]{cursor:pointer;height:36px;color:#fff;line-height:36px;padding:0 13px;background:#538DFF;box-shadow:0 0 12px #538dff80;border-radius:25px;margin-right:16px}.App .header-wrapper .control-wrapper .bt-class.edit[data-v-514bce1b]{background:#ef0a0a;box-shadow:0 0 12px #ef0a0a80}.App .header-wrapper .control-wrapper .bt-class[data-v-514bce1b]:hover{filter:grayscale(20%)}.App .header-wrapper .control-wrapper .input-class[data-v-514bce1b]{width:80px;padding-left:8px;height:30px}.App .header-wrapper .item-wrapper[data-v-514bce1b]{display:grid;grid-template-columns:repeat(auto-fill,300px);grid-gap:8px}.App .header-wrapper .item-wrapper .item-card[data-v-514bce1b]{text-align:center;padding:8px 0;height:40px;border:1px gray solid;border-radius:8px}.App .layout-wrapper[data-v-514bce1b]{height:0;flex:1}.App .layout-wrapper .content-wrapper[data-v-514bce1b]{width:100%;height:100%;display:flex;font-size:28px;justify-content:center;align-items:center}
2 |
--------------------------------------------------------------------------------
/src/components/help.ts:
--------------------------------------------------------------------------------
1 | export enum GridItemType {
2 | SMALL = 0,
3 | BIG = 1
4 | }
5 | export enum GridPosition {
6 | LEFT = 0,
7 | RIGHT = 1
8 | }
9 |
10 | export interface LayoutType {
11 | id: number
12 | x: number
13 | y: number
14 | h: number
15 | height: number
16 | resetH: number
17 | type: GridItemType
18 | [key: string]: any
19 | }
20 |
21 | // 修复vue-grid-layout y高度小于0情况
22 | export function fixCardHeight(layout: LayoutType[]) {
23 | // 修复bug Y有可能从负数开始
24 | checkLessThanZeroY(layout)
25 | // 使在两个大卡片之间的卡片高度一样
26 | fixCardSameHeight(layout)
27 | }
28 |
29 | function fixCardSameHeight(layout: LayoutType[]) {
30 | const findLeftBigList = getLeftBigList(layout)
31 | findLeftBigList.forEach((e, index) => {
32 | const lessThanY = e.y + e.h
33 | let moreThanY = 0
34 | if (index > 0) moreThanY = findLeftBigList[index - 1].y + findLeftBigList[index - 1].h
35 | const { sumH: x0SumH, lastDist: x0LastDist } = findMaxY(layout, 0, lessThanY, moreThanY)
36 | const { sumH: x1SumH, lastDist: x1LastDist } = findMaxY(layout, 1, lessThanY, moreThanY)
37 | if (x0LastDist && x1LastDist) {
38 | const maxYAddH = Math.max(x0SumH, x1SumH)
39 | x0LastDist.h = x0LastDist.h + maxYAddH - x0SumH
40 | x1LastDist.h = x1LastDist.h + maxYAddH - x1SumH
41 | }
42 | })
43 | }
44 | function findMaxY(layout: LayoutType[], x: number, lessThanY: number, moreThanY: number) {
45 | const findInRangeList = layout
46 | .filter(e => e.x === x && e.y + e.h < lessThanY && e.y >= moreThanY)
47 | .sort((a, b) => a.y - b.y)
48 | findInRangeList.forEach(e => {
49 | e.h = e.resetH
50 | })
51 | let sumH = 0
52 | findInRangeList.forEach(e => {
53 | sumH += e.h
54 | })
55 | return { sumH, lastDist: findInRangeList[findInRangeList.length - 1], findInRangeList }
56 | }
57 |
58 | function getLeftBigList(layout: LayoutType[]): LayoutType[] {
59 | return layout
60 | .filter(e => {
61 | return e.type === GridItemType.BIG && e.x === 0
62 | })
63 | .sort((a, b) => a.y - b.y)
64 | }
65 |
66 | function checkLessThanZeroY(layout: LayoutType[]) {
67 | const findLeftBigList = getLeftBigList(layout)
68 | const fixLeft = () => {
69 | // 左边第一个是大的情况
70 | if (findLeftBigList.length > 0 && findLeftBigList[0].y <= 0) {
71 | const leftList = layout
72 | .filter(e => {
73 | return e.x === 0 || e.x === 1
74 | })
75 | .sort((a, b) => a.y - b.y)
76 | const diffY = Math.abs(findLeftBigList[0].y)
77 | leftList.forEach(e => {
78 | e.y += diffY
79 | })
80 | } else {
81 | let lessThanY = Number.MAX_SAFE_INTEGER
82 | let moreThanY = Number.MAX_SAFE_INTEGER
83 | if (findLeftBigList.length > 0) {
84 | lessThanY = findLeftBigList[0].y + findLeftBigList[0].h
85 | moreThanY = findLeftBigList[0].y
86 | }
87 |
88 | const { sumH: x0SumH, findInRangeList: x0FindInRangeList } = findMaxY(
89 | layout,
90 | 0,
91 | lessThanY,
92 | Number.MIN_SAFE_INTEGER
93 | )
94 | const { sumH: x1SumH, findInRangeList: x1FindInRangeList } = findMaxY(
95 | layout,
96 | 1,
97 | lessThanY,
98 | Number.MIN_SAFE_INTEGER
99 | )
100 | let startX0Y = 0
101 | let startX1Y = 0
102 | if (x0FindInRangeList.length !== 0) startX0Y = x0FindInRangeList[0].y
103 | if (x1FindInRangeList.length !== 0) startX1Y = x1FindInRangeList[0].y
104 | const maxYAddHBefore = Math.max(x0SumH, x1SumH)
105 | const maxYAddHAfter = Math.max(x0SumH + Math.abs(startX0Y), x1SumH + Math.abs(startX1Y))
106 | const diffY = maxYAddHAfter - maxYAddHBefore
107 | x0FindInRangeList.forEach((e: any) => {
108 | e.y += Math.abs(startX0Y)
109 | })
110 | x1FindInRangeList.forEach((e: any) => {
111 | e.y += Math.abs(startX1Y)
112 | })
113 | layout
114 | .filter(e => {
115 | return e.y >= moreThanY && (e.x === 0 || e.x === 1)
116 | })
117 | .forEach(e => {
118 | e.y += diffY
119 | })
120 | }
121 | }
122 | const fixRight = () => {
123 | const rightList = layout
124 | .filter(e => {
125 | return e.x === 2
126 | })
127 | .sort((a, b) => a.y - b.y)
128 | if (rightList.length === 0) return
129 | const diffY = Math.abs(rightList[0].y)
130 | rightList.forEach(e => {
131 | e.y += diffY
132 | })
133 | }
134 | fixLeft()
135 | fixRight()
136 | }
137 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | vue-grid-layout-split
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | `vue-grid-layout-split`是模仿阿里云控制台布局方式的栅格布局系统, 适用于Vue.js。
15 | **灵感源自于 [vue-grid-layout](https://www.npmjs.com/package/vue-grid-layout)**
16 |
17 | ### **当前版本:** 1.0.2 (目前仅支持 Vue 3.0+)
18 |
19 |
20 | # [在线演示](https://paobai.github.io/vue-grid-layout-split/)
21 |
22 | ## 特性
23 |
24 | * 参考阿里云控制台模块布局方式
25 | * 可拖拽
26 | * 可自定义栅格元素高度
27 | * 固定左右布局
28 | * 可自定义栅格元素间隙
29 | * 可序列化和还原的布局
30 |
31 |
32 | ## 入门指南
33 |
34 | ### 安装
35 |
36 | #### npm
37 |
38 | # 使用 npm
39 | npm install vue-grid-layout-split --save
40 |
41 | # 使用 yarn
42 | yarn add vue-grid-layout-split
43 |
44 |
45 | 引入
46 |
47 | 再main.js中使用组件
48 | ```javascript
49 | import vueGridLayoutSplit from "vue-grid-layout-split";
50 | app.use(vueGridLayoutSplit);
51 | ```
52 |
53 | ### 使用
54 |
55 | ```javascript
56 | import { GridItemType } from "vue-grid-layout-split";
57 | // ······
58 | var defaultLayout = [
59 | {id: 0, x: 0, y: 0, height: 100, type: GridItemType.SMALL},
60 | {id: 1, x: 0, y: 0, height: 200, type: GridItemType.BIG},
61 | {id: 2, x: 0, y: 0, height: 150, type: GridItemType.SMALL},
62 |
63 | {id: 3, x: 1, y: 0, height: 250, type: GridItemType.SMALL},
64 | {id: 4, x: 2, y: 0, height: 130, type: GridItemType.SMALL},
65 | {id: 5, x: 1, y: 0, height: 100, type: GridItemType.SMALL},
66 |
67 | {id: 6, x: 2, y: 0, height: 100, type: GridItemType.SMALL},
68 | {id: 7, x: 2, y: 0, height: 180, type: GridItemType.SMALL},
69 | {id: 8, x: 2, y: 0, height: 100, type: GridItemType.SMALL}
70 | ];
71 |
72 | new Vue({
73 | el: '#app',
74 | data: {
75 | defaultLayout: defaultLayout,
76 | },
77 | });
78 | ```
79 |
80 |
81 | ```html
82 |
86 |
87 |
88 |
89 | 序号:{{value.id}}
90 |
91 |
92 |
93 |
94 | ```
95 |
96 |
97 | ## 文档
98 |
99 | ### 属性
100 |
101 | #### vueGridLayoutSplit
102 |
103 | * **defaultLayout**
104 |
105 | * type: `Array`
106 | * required: `true`
107 |
108 | 数据源。值必须为 `Array`,其数据项为 `Object`。 每条数据项有 `id`, `x`, `y`, `height` 和 `type(GridItemType)` 属性。
109 | 其中 `id`, `height`为必填项。请参考下面的 `GridItem`。
110 |
111 | * **editMode**
112 |
113 | * type: `Boolean`
114 | * required: `false`
115 | * default: `false`
116 |
117 | 组件是否为编辑状态,为编辑状态可以进行拖动和删除操作。
118 |
119 | * **gridMargin**
120 |
121 | * type: `Number | Array`
122 | * required: `false`
123 | * default: `20`
124 |
125 | 定义栅格之间的间距,为列表时第一个参数为行间距,第二个参数为列间距。
126 |
127 | * **editMask**
128 |
129 | * type: `Boolean`
130 | * required: `false`
131 | * default: `true`
132 |
133 | 是否需要编辑状态的mask蒙版
134 |
135 | ##### GridItem
136 |
137 | * **id**
138 |
139 | * type: `String | Number`
140 | * required: `true`
141 |
142 | 栅格中元素的ID。
143 |
144 | * **x**
145 |
146 | * type: `Number`
147 | * required: `false`
148 | * default: `0`
149 |
150 | 标识栅格元素位于第几列。一共三列,其中左边布局为0,1列。右边布局为2列,其中的当`type`为`GridItemType.BIG`时候,自动调整为`0`。需为自然数。
151 |
152 | * **y**
153 |
154 | * type: `Number`
155 | * required: `false`
156 | * default: `0`
157 |
158 | 标识栅格元素位于第几行,需为自然数。
159 |
160 | * **height**
161 |
162 | * type: `Number`
163 | * required: `true`
164 |
165 | 标识栅格元素的高度,单位为px。
166 |
167 | * **type**
168 |
169 | * type: `GridItemType`
170 | * required: `false`
171 | * default: `GridItemType.SMALL`
172 |
173 | 标识栅格元素的类型。
174 |
175 | * **其他参数**
176 | * 其他参数自动保存到属性中,改变布局时一并返回
177 |
178 | ##### GridItemType
179 |
180 | * SMALL: 小号元素
181 | * BIG: 大号元素
182 |
183 | ### 事件
184 |
185 | * **changeLayout**
186 |
187 | 组件布局改变时的回调方法, 返回为当前layout
188 |
189 | * **addCardEvent**
190 |
191 | 调用新增方法`addCard`成功时的回调
192 | ### 方法
193 |
194 | * **getLayout**
195 | 获取当前layout布局
196 | * 参数: 无
197 | * 返回
198 | * `Array`
199 |
200 | * **setLayout**
201 | 重新设置layout布局
202 | * 参数
203 | * `Array`
204 | * 返回
205 | * 无
206 |
207 | * **clearLayout**
208 | 清空当前layout
209 | * 参数: 无
210 | * 返回: 无
211 |
212 | * **deleteCard**
213 | 删除某个栅格
214 | * 参数
215 | * id(元素的id)
216 | * 返回:无
217 |
218 | * **addCard**
219 | 添加某个栅格
220 | * 参数
221 | * obj
222 | * type: `GridItemType`
223 | * required: `true`
224 | * toTop(是否从头加入栅格元素, false从尾部)
225 | * type: `Boolean`
226 | * required: `false`
227 | * default: `true`
228 | * 返回: 无
229 | ### 插槽(slot)
230 | * **default**
231 |
232 | 元素内容
233 | * 参数
234 | * value
235 | * type: `GridItemType`
236 |
237 | * **delete-tip**
238 |
239 | 右上角删除内容
240 | * 参数
241 | * value
242 | * type: `GridItemType`
243 | ## 如何贡献
244 |
245 | 请提交issue或PR。
246 |
247 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Vue-Grid-Layout-Split
6 |
7 |
38 |
39 |
44 |
45 |
46 |
47 | 序号:{{value.id}}
48 |
49 |
50 |
51 |
52 | 序号:{{value.id}}
53 |
54 |
55 |
56 |
57 |
58 |
59 |
108 |
136 |
226 |
--------------------------------------------------------------------------------
/src/components/vue-grid-layout-split.vue:
--------------------------------------------------------------------------------
1 |
2 |
16 |
29 |
30 | {{ item.i }}
31 |
32 |
33 |
34 |
39 |
40 |
41 |
42 |
43 |
44 |
257 |
258 |
348 |
--------------------------------------------------------------------------------
/lib/vue-grid-layout-split.es.js:
--------------------------------------------------------------------------------
1 | (function(){ try {var elementStyle = document.createElement('style'); elementStyle.appendChild(document.createTextNode(".vue-grid-layout[data-v-82449fba] {\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder {\n background-color: black;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder.not-allowed {\n background-color: red;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item:not(.vue-grid-placeholder) {\n border: 1px solid black;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .resizing {\n opacity: 0.9;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .static {\n background: #cce;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.moving {\n border-radius: 4px;\n border: 2px solid #538dff;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .edit-mask {\n background-color: rgba(94, 115, 159, 0.2);\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .delete-options {\n position: absolute;\n font-size: 16px;\n color: #4e5969;\n top: 0;\n right: 0;\n padding: 10px;\n cursor: pointer;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .default-show-text {\n font-size: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .no-drag {\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .minMax {\n font-size: 12px;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .add {\n cursor: pointer;\n}\n.vue-draggable-handle[data-v-82449fba] {\n position: absolute;\n width: 20px;\n height: 20px;\n top: 0;\n left: 0;\n padding: 0 8px 8px 0;\n background: url(\"data:image/svg+xml;utf8,\") no-repeat bottom right;\n background-origin: content-box;\n box-sizing: border-box;\n cursor: pointer;\n}\n.layoutJSON[data-v-82449fba] {\n background: #ddd;\n border: 1px solid black;\n margin-top: 10px;\n padding: 10px;\n}\n.columns[data-v-82449fba] {\n -moz-columns: 120px;\n -webkit-columns: 120px;\n columns: 120px;\n}")); document.head.appendChild(elementStyle);} catch(e) {console.error('vite-plugin-css-injected-by-js', e);} })();import vueGridLayoutInstall, { GridLayout, GridItem } from "vue-grid-layout";
2 | import { resolveComponent, openBlock, createBlock, withCtx, createElementBlock, Fragment, renderList, normalizeClass, renderSlot, createElementVNode, toDisplayString, withModifiers, createCommentVNode, pushScopeId, popScopeId } from "vue";
3 | var GridItemType = /* @__PURE__ */ ((GridItemType2) => {
4 | GridItemType2[GridItemType2["SMALL"] = 0] = "SMALL";
5 | GridItemType2[GridItemType2["BIG"] = 1] = "BIG";
6 | return GridItemType2;
7 | })(GridItemType || {});
8 | var GridPosition = /* @__PURE__ */ ((GridPosition2) => {
9 | GridPosition2[GridPosition2["LEFT"] = 0] = "LEFT";
10 | GridPosition2[GridPosition2["RIGHT"] = 1] = "RIGHT";
11 | return GridPosition2;
12 | })(GridPosition || {});
13 | function fixCardHeight(layout) {
14 | checkLessThanZeroY(layout);
15 | fixCardSameHeight(layout);
16 | }
17 | function fixCardSameHeight(layout) {
18 | const findLeftBigList = getLeftBigList(layout);
19 | findLeftBigList.forEach((e, index) => {
20 | const lessThanY = e.y + e.h;
21 | let moreThanY = 0;
22 | if (index > 0)
23 | moreThanY = findLeftBigList[index - 1].y + findLeftBigList[index - 1].h;
24 | const { sumH: x0SumH, lastDist: x0LastDist } = findMaxY(layout, 0, lessThanY, moreThanY);
25 | const { sumH: x1SumH, lastDist: x1LastDist } = findMaxY(layout, 1, lessThanY, moreThanY);
26 | if (x0LastDist && x1LastDist) {
27 | const maxYAddH = Math.max(x0SumH, x1SumH);
28 | x0LastDist.h = x0LastDist.h + maxYAddH - x0SumH;
29 | x1LastDist.h = x1LastDist.h + maxYAddH - x1SumH;
30 | }
31 | });
32 | }
33 | function findMaxY(layout, x, lessThanY, moreThanY) {
34 | const findInRangeList = layout.filter((e) => e.x === x && e.y + e.h < lessThanY && e.y >= moreThanY).sort((a, b) => a.y - b.y);
35 | findInRangeList.forEach((e) => {
36 | e.h = e.resetH;
37 | });
38 | let sumH = 0;
39 | findInRangeList.forEach((e) => {
40 | sumH += e.h;
41 | });
42 | return { sumH, lastDist: findInRangeList[findInRangeList.length - 1], findInRangeList };
43 | }
44 | function getLeftBigList(layout) {
45 | return layout.filter((e) => {
46 | return e.type === 1 && e.x === 0;
47 | }).sort((a, b) => a.y - b.y);
48 | }
49 | function checkLessThanZeroY(layout) {
50 | const findLeftBigList = getLeftBigList(layout);
51 | const fixLeft = () => {
52 | if (findLeftBigList.length > 0 && findLeftBigList[0].y <= 0) {
53 | const leftList = layout.filter((e) => {
54 | return e.x === 0 || e.x === 1;
55 | }).sort((a, b) => a.y - b.y);
56 | const diffY = Math.abs(findLeftBigList[0].y);
57 | leftList.forEach((e) => {
58 | e.y += diffY;
59 | });
60 | } else {
61 | let lessThanY = Number.MAX_SAFE_INTEGER;
62 | let moreThanY = Number.MAX_SAFE_INTEGER;
63 | if (findLeftBigList.length > 0) {
64 | lessThanY = findLeftBigList[0].y + findLeftBigList[0].h;
65 | moreThanY = findLeftBigList[0].y;
66 | }
67 | const { sumH: x0SumH, findInRangeList: x0FindInRangeList } = findMaxY(
68 | layout,
69 | 0,
70 | lessThanY,
71 | Number.MIN_SAFE_INTEGER
72 | );
73 | const { sumH: x1SumH, findInRangeList: x1FindInRangeList } = findMaxY(
74 | layout,
75 | 1,
76 | lessThanY,
77 | Number.MIN_SAFE_INTEGER
78 | );
79 | let startX0Y = 0;
80 | let startX1Y = 0;
81 | if (x0FindInRangeList.length !== 0)
82 | startX0Y = x0FindInRangeList[0].y;
83 | if (x1FindInRangeList.length !== 0)
84 | startX1Y = x1FindInRangeList[0].y;
85 | const maxYAddHBefore = Math.max(x0SumH, x1SumH);
86 | const maxYAddHAfter = Math.max(x0SumH + Math.abs(startX0Y), x1SumH + Math.abs(startX1Y));
87 | const diffY = maxYAddHAfter - maxYAddHBefore;
88 | x0FindInRangeList.forEach((e) => {
89 | e.y += Math.abs(startX0Y);
90 | });
91 | x1FindInRangeList.forEach((e) => {
92 | e.y += Math.abs(startX1Y);
93 | });
94 | layout.filter((e) => {
95 | return e.y >= moreThanY && (e.x === 0 || e.x === 1);
96 | }).forEach((e) => {
97 | e.y += diffY;
98 | });
99 | }
100 | };
101 | const fixRight = () => {
102 | const rightList = layout.filter((e) => {
103 | return e.x === 2;
104 | }).sort((a, b) => a.y - b.y);
105 | if (rightList.length === 0)
106 | return;
107 | const diffY = Math.abs(rightList[0].y);
108 | rightList.forEach((e) => {
109 | e.y += diffY;
110 | });
111 | };
112 | fixLeft();
113 | fixRight();
114 | }
115 | var vueGridLayoutSplit_vue_vue_type_style_index_0_scoped_true_lang = "";
116 | var _export_sfc = (sfc, props) => {
117 | for (const [key, val] of props) {
118 | sfc[key] = val;
119 | }
120 | return sfc;
121 | };
122 | const _sfc_main = {
123 | name: "VueGridLayoutSplit",
124 | components: {
125 | GridLayout,
126 | GridItem
127 | },
128 | props: {
129 | defaultLayout: {
130 | type: Array,
131 | default: () => [],
132 | required: true
133 | },
134 | editMode: {
135 | type: Boolean,
136 | default: false
137 | },
138 | gridMargin: {
139 | type: [Number, Array],
140 | default: 20
141 | },
142 | editMask: {
143 | type: Boolean,
144 | default: true
145 | }
146 | },
147 | computed: {
148 | realGridMargin() {
149 | if (this.gridMargin instanceof Array)
150 | return this.gridMargin;
151 | else
152 | return [this.gridMargin, this.gridMargin];
153 | }
154 | },
155 | emits: ["changeLayout", "addCardEvent"],
156 | data() {
157 | return {
158 | layout: [],
159 | draggable: true,
160 | resizable: false,
161 | responsive: false,
162 | moving: false,
163 | index: 0,
164 | cashLayout: [],
165 | gridPlaceholder: null,
166 | rowHeight: 10
167 | };
168 | },
169 | watch: {
170 | editMode: {
171 | handler(v) {
172 | if (v) {
173 | this.draggable = true;
174 | } else {
175 | this.draggable = false;
176 | }
177 | },
178 | immediate: true
179 | }
180 | },
181 | created() {
182 | this.setLayout(this.defaultLayout);
183 | },
184 | methods: {
185 | transformLayoutToLocal(sourceLayout) {
186 | let res = JSON.parse(JSON.stringify(sourceLayout));
187 | res.forEach((e) => {
188 | e.x = e.x || 0;
189 | e.y = e.y || 0;
190 | e.type = e.type || GridItemType.SMALL;
191 | e.h = this.transH(e.height);
192 | e.resetH = e.h;
193 | e.i = e.id;
194 | e.w = e.type === GridItemType.BIG ? 2 : 1;
195 | e.x = e.type === GridItemType.BIG ? 0 : e.x;
196 | });
197 | return res;
198 | },
199 | transH(height) {
200 | if (height < this.rowHeight)
201 | return 1;
202 | else {
203 | return +((height - this.rowHeight) / (this.rowHeight + this.realGridMargin[1]) + 1).toFixed(2);
204 | }
205 | },
206 | getLayout() {
207 | return JSON.parse(JSON.stringify(this.layout));
208 | },
209 | addCard(obj, toTop = true) {
210 | let id = obj.id;
211 | let height = obj.height;
212 | let type = obj.type || GridItemType.SMALL;
213 | let y = -1;
214 | if (!toTop) {
215 | this.layout.forEach((e) => {
216 | y = Math.max(y, e.y + e.h);
217 | });
218 | }
219 | let dist = { ...obj, w: 1, x: 2, y, id, type, height };
220 | if (type === GridItemType.BIG)
221 | dist.x = 0;
222 | this.layout.push(...this.transformLayoutToLocal([dist]));
223 | this.$nextTick(() => {
224 | this.$refs.gridLayout.layoutUpdate();
225 | this.$nextTick(() => {
226 | this.changeLayoutEvent();
227 | this.$emit("addCardEvent");
228 | });
229 | });
230 | },
231 | deleteCard(i) {
232 | let findIndex = this.layout.findIndex((e) => e.i === i);
233 | if (findIndex !== -1) {
234 | this.layout.splice(findIndex, 1);
235 | this.$nextTick(() => {
236 | this.changeLayoutEvent();
237 | this.$refs.gridLayout.layoutUpdate();
238 | });
239 | }
240 | },
241 | removeCard(i) {
242 | this.layout.splice(i, 1);
243 | },
244 | movedEvent(i) {
245 | let dist = this.findDistById(i);
246 | if (!this.checkCanMove(dist)) {
247 | let cashLayout = JSON.parse(JSON.stringify(this.cashLayout));
248 | this.$nextTick(() => {
249 | this.layout = cashLayout;
250 | });
251 | }
252 | },
253 | layoutUpdatedEvent() {
254 | this.moving = false;
255 | this.cashLayout = null;
256 | this.checkHeight();
257 | let distDom = this.$refs.gridLayout.$el.getElementsByClassName(".moving");
258 | if (distDom.length > 0) {
259 | distDom.forEach((e) => {
260 | e.classList.remove("moving");
261 | });
262 | }
263 | this.changeLayoutEvent();
264 | },
265 | findDistById(i) {
266 | return this.layout.find((e) => e.i === i);
267 | },
268 | startMoveEvent(i, x) {
269 | let distCard = this.findDistById(i);
270 | if (!this.moving) {
271 | this.moving = true;
272 | this.cashLayout = JSON.parse(JSON.stringify(this.layout));
273 | this.layout.forEach((e) => {
274 | e.h = e.resetH;
275 | });
276 | }
277 | let distDom = this.getGridItem(this.$refs.gridLayout.$el, i);
278 | distDom.classList.add("moving");
279 | let gridPlaceholder = this.getGridPlaceholder(this.$refs.gridLayout.$el);
280 | if (distCard.type === GridItemType.BIG && x !== 0) {
281 | gridPlaceholder.classList.add("not-allowed");
282 | } else {
283 | gridPlaceholder.classList.remove("not-allowed");
284 | }
285 | },
286 | getGridPlaceholder(gridLayoutDom) {
287 | return gridLayoutDom.getElementsByClassName("vue-grid-placeholder")[0];
288 | },
289 | getGridItem(gridLayoutDom, i) {
290 | return gridLayoutDom.getElementsByClassName(`sk-grid-item-${i}`)[0];
291 | },
292 | layoutReadyEvent() {
293 | this.checkHeight();
294 | },
295 | checkHeight() {
296 | let sourceLayout = JSON.stringify(this.layout);
297 | fixCardHeight(this.layout);
298 | if (JSON.stringify(this.layout) !== sourceLayout) {
299 | this.$nextTick(() => {
300 | this.$refs.gridLayout.layoutUpdate();
301 | });
302 | }
303 | },
304 | clearLayout() {
305 | this.layout.splice(0, this.layout.length);
306 | this.$nextTick(() => {
307 | this.changeLayoutEvent();
308 | });
309 | },
310 | changeLayoutEvent() {
311 | this.$emit("changeLayout", this.getLayout());
312 | },
313 | checkCanMove(dist) {
314 | return !(dist.type === GridItemType.BIG && (dist.x === 1 || dist.x === 2));
315 | },
316 | setLayout(sourceLayout) {
317 | this.layout = this.transformLayoutToLocal(sourceLayout);
318 | }
319 | }
320 | };
321 | const _withScopeId = (n) => (pushScopeId("data-v-82449fba"), n = n(), popScopeId(), n);
322 | const _hoisted_1 = { class: "default-show-text" };
323 | const _hoisted_2 = ["onClick"];
324 | const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("svg", {
325 | t: "1659345568198",
326 | class: "icon",
327 | viewBox: "0 0 1024 1024",
328 | version: "1.1",
329 | xmlns: "http://www.w3.org/2000/svg",
330 | "p-id": "13132",
331 | width: "16",
332 | height: "16"
333 | }, [
334 | /* @__PURE__ */ createElementVNode("path", {
335 | d: "M972.8 204.8c28.16 0 51.2 23.04 51.2 51.2 0 28.16-23.04 51.2-51.2 51.2h-51.2v563.2c0 84.65-68.95 153.6-153.6 153.6H256c-84.65 0-153.6-68.95-153.6-153.6V307.2H51.2C23.04 307.2 0 284.16 0 256c0-28.16 23.04-51.2 51.2-51.2h256v-85.59C307.2 53.505 364.63 0 435.2 0h153.6c70.57 0 128 53.419 128 119.21v85.59h256z m-563.2-85.59v85.59h204.8v-85.59c0-7.935-10.923-16.81-25.6-16.81H435.2c-14.677 0-25.6 8.875-25.6 16.81zM819.2 870.4V307.2H204.8v563.2c0 28.16 22.955 51.2 51.2 51.2h512a51.2 51.2 0 0 0 51.2-51.2zM358.4 768c-28.16 0-51.2-23.04-51.2-51.2V512c0-28.16 23.04-51.2 51.2-51.2 28.16 0 51.2 23.04 51.2 51.2v204.8c0 28.16-23.04 51.2-51.2 51.2z m307.2 0c-28.16 0-51.2-23.04-51.2-51.2V512c0-28.16 23.04-51.2 51.2-51.2 28.16 0 51.2 23.04 51.2 51.2v204.8c0 28.16-23.04 51.2-51.2 51.2z",
336 | "p-id": "13133"
337 | })
338 | ], -1));
339 | function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
340 | const _component_grid_item = resolveComponent("grid-item");
341 | const _component_grid_layout = resolveComponent("grid-layout");
342 | return openBlock(), createBlock(_component_grid_layout, {
343 | ref: "gridLayout",
344 | layout: $data.layout,
345 | "onUpdate:layout": _cache[1] || (_cache[1] = ($event) => $data.layout = $event),
346 | "col-num": 3,
347 | margin: $options.realGridMargin,
348 | "row-height": $data.rowHeight,
349 | "is-draggable": $data.draggable,
350 | "is-resizable": $data.resizable,
351 | responsive: $data.responsive,
352 | "vertical-compact": true,
353 | "use-css-transforms": true,
354 | onLayoutUpdated: $options.layoutUpdatedEvent,
355 | onLayoutReady: $options.layoutReadyEvent
356 | }, {
357 | default: withCtx(() => [
358 | (openBlock(true), createElementBlock(Fragment, null, renderList($data.layout, (item) => {
359 | return openBlock(), createBlock(_component_grid_item, {
360 | key: item.i,
361 | x: item.x,
362 | y: item.y,
363 | w: item.w,
364 | h: item.h,
365 | i: item.i,
366 | "drag-ignore-from": ".delete-options",
367 | class: normalizeClass(`sk-grid-item-${item.i}`),
368 | onMove: $options.startMoveEvent,
369 | onMoved: $options.movedEvent
370 | }, {
371 | default: withCtx(() => [
372 | renderSlot(_ctx.$slots, "default", { value: item }, () => [
373 | createElementVNode("div", _hoisted_1, toDisplayString(item.i), 1)
374 | ], true),
375 | $props.editMode ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
376 | $props.editMode && $props.editMask ? (openBlock(), createElementBlock("div", {
377 | key: 0,
378 | class: "edit-mask",
379 | onClick: _cache[0] || (_cache[0] = withModifiers(() => {
380 | }, ["stop"]))
381 | })) : createCommentVNode("", true),
382 | createElementVNode("div", {
383 | class: "delete-options",
384 | onClick: ($event) => $options.deleteCard(item.i)
385 | }, [
386 | renderSlot(_ctx.$slots, "delete-tip", { value: item }, () => [
387 | _hoisted_3
388 | ], true)
389 | ], 8, _hoisted_2)
390 | ], 64)) : createCommentVNode("", true)
391 | ]),
392 | _: 2
393 | }, 1032, ["x", "y", "w", "h", "i", "class", "onMove", "onMoved"]);
394 | }), 128))
395 | ]),
396 | _: 3
397 | }, 8, ["layout", "margin", "row-height", "is-draggable", "is-resizable", "responsive", "onLayoutUpdated", "onLayoutReady"]);
398 | }
399 | var _VueGridLayoutSplit = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-82449fba"]]);
400 | const vueGridLayoutSplit = Object.assign(_VueGridLayoutSplit, {
401 | install: (app) => {
402 | app.component(_VueGridLayoutSplit.name, _VueGridLayoutSplit);
403 | app.use(vueGridLayoutInstall);
404 | console.log("had install3");
405 | }
406 | });
407 | export { GridItemType, GridPosition, vueGridLayoutSplit as default };
408 |
--------------------------------------------------------------------------------
/lib/vue-grid-layout-split.cjs.js:
--------------------------------------------------------------------------------
1 | (function(){ try {var elementStyle = document.createElement('style'); elementStyle.appendChild(document.createTextNode(".vue-grid-layout[data-v-82449fba] {\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder {\n background-color: black;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder.not-allowed {\n background-color: red;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item:not(.vue-grid-placeholder) {\n border: 1px solid black;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .resizing {\n opacity: 0.9;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .static {\n background: #cce;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.moving {\n border-radius: 4px;\n border: 2px solid #538dff;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .edit-mask {\n background-color: rgba(94, 115, 159, 0.2);\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .delete-options {\n position: absolute;\n font-size: 16px;\n color: #4e5969;\n top: 0;\n right: 0;\n padding: 10px;\n cursor: pointer;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .default-show-text {\n font-size: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .no-drag {\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .minMax {\n font-size: 12px;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .add {\n cursor: pointer;\n}\n.vue-draggable-handle[data-v-82449fba] {\n position: absolute;\n width: 20px;\n height: 20px;\n top: 0;\n left: 0;\n padding: 0 8px 8px 0;\n background: url(\"data:image/svg+xml;utf8,\") no-repeat bottom right;\n background-origin: content-box;\n box-sizing: border-box;\n cursor: pointer;\n}\n.layoutJSON[data-v-82449fba] {\n background: #ddd;\n border: 1px solid black;\n margin-top: 10px;\n padding: 10px;\n}\n.columns[data-v-82449fba] {\n -moz-columns: 120px;\n -webkit-columns: 120px;\n columns: 120px;\n}")); document.head.appendChild(elementStyle);} catch(e) {console.error('vite-plugin-css-injected-by-js', e);} })();"use strict";
2 | Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3 | var vueGridLayoutInstall = require("vue-grid-layout");
4 | var vue = require("vue");
5 | function _interopDefaultLegacy(e) {
6 | return e && typeof e === "object" && "default" in e ? e : { "default": e };
7 | }
8 | var vueGridLayoutInstall__default = /* @__PURE__ */ _interopDefaultLegacy(vueGridLayoutInstall);
9 | var GridItemType = /* @__PURE__ */ ((GridItemType2) => {
10 | GridItemType2[GridItemType2["SMALL"] = 0] = "SMALL";
11 | GridItemType2[GridItemType2["BIG"] = 1] = "BIG";
12 | return GridItemType2;
13 | })(GridItemType || {});
14 | var GridPosition = /* @__PURE__ */ ((GridPosition2) => {
15 | GridPosition2[GridPosition2["LEFT"] = 0] = "LEFT";
16 | GridPosition2[GridPosition2["RIGHT"] = 1] = "RIGHT";
17 | return GridPosition2;
18 | })(GridPosition || {});
19 | function fixCardHeight(layout) {
20 | checkLessThanZeroY(layout);
21 | fixCardSameHeight(layout);
22 | }
23 | function fixCardSameHeight(layout) {
24 | const findLeftBigList = getLeftBigList(layout);
25 | findLeftBigList.forEach((e, index) => {
26 | const lessThanY = e.y + e.h;
27 | let moreThanY = 0;
28 | if (index > 0)
29 | moreThanY = findLeftBigList[index - 1].y + findLeftBigList[index - 1].h;
30 | const { sumH: x0SumH, lastDist: x0LastDist } = findMaxY(layout, 0, lessThanY, moreThanY);
31 | const { sumH: x1SumH, lastDist: x1LastDist } = findMaxY(layout, 1, lessThanY, moreThanY);
32 | if (x0LastDist && x1LastDist) {
33 | const maxYAddH = Math.max(x0SumH, x1SumH);
34 | x0LastDist.h = x0LastDist.h + maxYAddH - x0SumH;
35 | x1LastDist.h = x1LastDist.h + maxYAddH - x1SumH;
36 | }
37 | });
38 | }
39 | function findMaxY(layout, x, lessThanY, moreThanY) {
40 | const findInRangeList = layout.filter((e) => e.x === x && e.y + e.h < lessThanY && e.y >= moreThanY).sort((a, b) => a.y - b.y);
41 | findInRangeList.forEach((e) => {
42 | e.h = e.resetH;
43 | });
44 | let sumH = 0;
45 | findInRangeList.forEach((e) => {
46 | sumH += e.h;
47 | });
48 | return { sumH, lastDist: findInRangeList[findInRangeList.length - 1], findInRangeList };
49 | }
50 | function getLeftBigList(layout) {
51 | return layout.filter((e) => {
52 | return e.type === 1 && e.x === 0;
53 | }).sort((a, b) => a.y - b.y);
54 | }
55 | function checkLessThanZeroY(layout) {
56 | const findLeftBigList = getLeftBigList(layout);
57 | const fixLeft = () => {
58 | if (findLeftBigList.length > 0 && findLeftBigList[0].y <= 0) {
59 | const leftList = layout.filter((e) => {
60 | return e.x === 0 || e.x === 1;
61 | }).sort((a, b) => a.y - b.y);
62 | const diffY = Math.abs(findLeftBigList[0].y);
63 | leftList.forEach((e) => {
64 | e.y += diffY;
65 | });
66 | } else {
67 | let lessThanY = Number.MAX_SAFE_INTEGER;
68 | let moreThanY = Number.MAX_SAFE_INTEGER;
69 | if (findLeftBigList.length > 0) {
70 | lessThanY = findLeftBigList[0].y + findLeftBigList[0].h;
71 | moreThanY = findLeftBigList[0].y;
72 | }
73 | const { sumH: x0SumH, findInRangeList: x0FindInRangeList } = findMaxY(
74 | layout,
75 | 0,
76 | lessThanY,
77 | Number.MIN_SAFE_INTEGER
78 | );
79 | const { sumH: x1SumH, findInRangeList: x1FindInRangeList } = findMaxY(
80 | layout,
81 | 1,
82 | lessThanY,
83 | Number.MIN_SAFE_INTEGER
84 | );
85 | let startX0Y = 0;
86 | let startX1Y = 0;
87 | if (x0FindInRangeList.length !== 0)
88 | startX0Y = x0FindInRangeList[0].y;
89 | if (x1FindInRangeList.length !== 0)
90 | startX1Y = x1FindInRangeList[0].y;
91 | const maxYAddHBefore = Math.max(x0SumH, x1SumH);
92 | const maxYAddHAfter = Math.max(x0SumH + Math.abs(startX0Y), x1SumH + Math.abs(startX1Y));
93 | const diffY = maxYAddHAfter - maxYAddHBefore;
94 | x0FindInRangeList.forEach((e) => {
95 | e.y += Math.abs(startX0Y);
96 | });
97 | x1FindInRangeList.forEach((e) => {
98 | e.y += Math.abs(startX1Y);
99 | });
100 | layout.filter((e) => {
101 | return e.y >= moreThanY && (e.x === 0 || e.x === 1);
102 | }).forEach((e) => {
103 | e.y += diffY;
104 | });
105 | }
106 | };
107 | const fixRight = () => {
108 | const rightList = layout.filter((e) => {
109 | return e.x === 2;
110 | }).sort((a, b) => a.y - b.y);
111 | if (rightList.length === 0)
112 | return;
113 | const diffY = Math.abs(rightList[0].y);
114 | rightList.forEach((e) => {
115 | e.y += diffY;
116 | });
117 | };
118 | fixLeft();
119 | fixRight();
120 | }
121 | var vueGridLayoutSplit_vue_vue_type_style_index_0_scoped_true_lang = "";
122 | var _export_sfc = (sfc, props) => {
123 | for (const [key, val] of props) {
124 | sfc[key] = val;
125 | }
126 | return sfc;
127 | };
128 | const _sfc_main = {
129 | name: "VueGridLayoutSplit",
130 | components: {
131 | GridLayout: vueGridLayoutInstall.GridLayout,
132 | GridItem: vueGridLayoutInstall.GridItem
133 | },
134 | props: {
135 | defaultLayout: {
136 | type: Array,
137 | default: () => [],
138 | required: true
139 | },
140 | editMode: {
141 | type: Boolean,
142 | default: false
143 | },
144 | gridMargin: {
145 | type: [Number, Array],
146 | default: 20
147 | },
148 | editMask: {
149 | type: Boolean,
150 | default: true
151 | }
152 | },
153 | computed: {
154 | realGridMargin() {
155 | if (this.gridMargin instanceof Array)
156 | return this.gridMargin;
157 | else
158 | return [this.gridMargin, this.gridMargin];
159 | }
160 | },
161 | emits: ["changeLayout", "addCardEvent"],
162 | data() {
163 | return {
164 | layout: [],
165 | draggable: true,
166 | resizable: false,
167 | responsive: false,
168 | moving: false,
169 | index: 0,
170 | cashLayout: [],
171 | gridPlaceholder: null,
172 | rowHeight: 10
173 | };
174 | },
175 | watch: {
176 | editMode: {
177 | handler(v) {
178 | if (v) {
179 | this.draggable = true;
180 | } else {
181 | this.draggable = false;
182 | }
183 | },
184 | immediate: true
185 | }
186 | },
187 | created() {
188 | this.setLayout(this.defaultLayout);
189 | },
190 | methods: {
191 | transformLayoutToLocal(sourceLayout) {
192 | let res = JSON.parse(JSON.stringify(sourceLayout));
193 | res.forEach((e) => {
194 | e.x = e.x || 0;
195 | e.y = e.y || 0;
196 | e.type = e.type || GridItemType.SMALL;
197 | e.h = this.transH(e.height);
198 | e.resetH = e.h;
199 | e.i = e.id;
200 | e.w = e.type === GridItemType.BIG ? 2 : 1;
201 | e.x = e.type === GridItemType.BIG ? 0 : e.x;
202 | });
203 | return res;
204 | },
205 | transH(height) {
206 | if (height < this.rowHeight)
207 | return 1;
208 | else {
209 | return +((height - this.rowHeight) / (this.rowHeight + this.realGridMargin[1]) + 1).toFixed(2);
210 | }
211 | },
212 | getLayout() {
213 | return JSON.parse(JSON.stringify(this.layout));
214 | },
215 | addCard(obj, toTop = true) {
216 | let id = obj.id;
217 | let height = obj.height;
218 | let type = obj.type || GridItemType.SMALL;
219 | let y = -1;
220 | if (!toTop) {
221 | this.layout.forEach((e) => {
222 | y = Math.max(y, e.y + e.h);
223 | });
224 | }
225 | let dist = { ...obj, w: 1, x: 2, y, id, type, height };
226 | if (type === GridItemType.BIG)
227 | dist.x = 0;
228 | this.layout.push(...this.transformLayoutToLocal([dist]));
229 | this.$nextTick(() => {
230 | this.$refs.gridLayout.layoutUpdate();
231 | this.$nextTick(() => {
232 | this.changeLayoutEvent();
233 | this.$emit("addCardEvent");
234 | });
235 | });
236 | },
237 | deleteCard(i) {
238 | let findIndex = this.layout.findIndex((e) => e.i === i);
239 | if (findIndex !== -1) {
240 | this.layout.splice(findIndex, 1);
241 | this.$nextTick(() => {
242 | this.changeLayoutEvent();
243 | this.$refs.gridLayout.layoutUpdate();
244 | });
245 | }
246 | },
247 | removeCard(i) {
248 | this.layout.splice(i, 1);
249 | },
250 | movedEvent(i) {
251 | let dist = this.findDistById(i);
252 | if (!this.checkCanMove(dist)) {
253 | let cashLayout = JSON.parse(JSON.stringify(this.cashLayout));
254 | this.$nextTick(() => {
255 | this.layout = cashLayout;
256 | });
257 | }
258 | },
259 | layoutUpdatedEvent() {
260 | this.moving = false;
261 | this.cashLayout = null;
262 | this.checkHeight();
263 | let distDom = this.$refs.gridLayout.$el.getElementsByClassName(".moving");
264 | if (distDom.length > 0) {
265 | distDom.forEach((e) => {
266 | e.classList.remove("moving");
267 | });
268 | }
269 | this.changeLayoutEvent();
270 | },
271 | findDistById(i) {
272 | return this.layout.find((e) => e.i === i);
273 | },
274 | startMoveEvent(i, x) {
275 | let distCard = this.findDistById(i);
276 | if (!this.moving) {
277 | this.moving = true;
278 | this.cashLayout = JSON.parse(JSON.stringify(this.layout));
279 | this.layout.forEach((e) => {
280 | e.h = e.resetH;
281 | });
282 | }
283 | let distDom = this.getGridItem(this.$refs.gridLayout.$el, i);
284 | distDom.classList.add("moving");
285 | let gridPlaceholder = this.getGridPlaceholder(this.$refs.gridLayout.$el);
286 | if (distCard.type === GridItemType.BIG && x !== 0) {
287 | gridPlaceholder.classList.add("not-allowed");
288 | } else {
289 | gridPlaceholder.classList.remove("not-allowed");
290 | }
291 | },
292 | getGridPlaceholder(gridLayoutDom) {
293 | return gridLayoutDom.getElementsByClassName("vue-grid-placeholder")[0];
294 | },
295 | getGridItem(gridLayoutDom, i) {
296 | return gridLayoutDom.getElementsByClassName(`sk-grid-item-${i}`)[0];
297 | },
298 | layoutReadyEvent() {
299 | this.checkHeight();
300 | },
301 | checkHeight() {
302 | let sourceLayout = JSON.stringify(this.layout);
303 | fixCardHeight(this.layout);
304 | if (JSON.stringify(this.layout) !== sourceLayout) {
305 | this.$nextTick(() => {
306 | this.$refs.gridLayout.layoutUpdate();
307 | });
308 | }
309 | },
310 | clearLayout() {
311 | this.layout.splice(0, this.layout.length);
312 | this.$nextTick(() => {
313 | this.changeLayoutEvent();
314 | });
315 | },
316 | changeLayoutEvent() {
317 | this.$emit("changeLayout", this.getLayout());
318 | },
319 | checkCanMove(dist) {
320 | return !(dist.type === GridItemType.BIG && (dist.x === 1 || dist.x === 2));
321 | },
322 | setLayout(sourceLayout) {
323 | this.layout = this.transformLayoutToLocal(sourceLayout);
324 | }
325 | }
326 | };
327 | const _withScopeId = (n) => (vue.pushScopeId("data-v-82449fba"), n = n(), vue.popScopeId(), n);
328 | const _hoisted_1 = { class: "default-show-text" };
329 | const _hoisted_2 = ["onClick"];
330 | const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("svg", {
331 | t: "1659345568198",
332 | class: "icon",
333 | viewBox: "0 0 1024 1024",
334 | version: "1.1",
335 | xmlns: "http://www.w3.org/2000/svg",
336 | "p-id": "13132",
337 | width: "16",
338 | height: "16"
339 | }, [
340 | /* @__PURE__ */ vue.createElementVNode("path", {
341 | d: "M972.8 204.8c28.16 0 51.2 23.04 51.2 51.2 0 28.16-23.04 51.2-51.2 51.2h-51.2v563.2c0 84.65-68.95 153.6-153.6 153.6H256c-84.65 0-153.6-68.95-153.6-153.6V307.2H51.2C23.04 307.2 0 284.16 0 256c0-28.16 23.04-51.2 51.2-51.2h256v-85.59C307.2 53.505 364.63 0 435.2 0h153.6c70.57 0 128 53.419 128 119.21v85.59h256z m-563.2-85.59v85.59h204.8v-85.59c0-7.935-10.923-16.81-25.6-16.81H435.2c-14.677 0-25.6 8.875-25.6 16.81zM819.2 870.4V307.2H204.8v563.2c0 28.16 22.955 51.2 51.2 51.2h512a51.2 51.2 0 0 0 51.2-51.2zM358.4 768c-28.16 0-51.2-23.04-51.2-51.2V512c0-28.16 23.04-51.2 51.2-51.2 28.16 0 51.2 23.04 51.2 51.2v204.8c0 28.16-23.04 51.2-51.2 51.2z m307.2 0c-28.16 0-51.2-23.04-51.2-51.2V512c0-28.16 23.04-51.2 51.2-51.2 28.16 0 51.2 23.04 51.2 51.2v204.8c0 28.16-23.04 51.2-51.2 51.2z",
342 | "p-id": "13133"
343 | })
344 | ], -1));
345 | function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
346 | const _component_grid_item = vue.resolveComponent("grid-item");
347 | const _component_grid_layout = vue.resolveComponent("grid-layout");
348 | return vue.openBlock(), vue.createBlock(_component_grid_layout, {
349 | ref: "gridLayout",
350 | layout: $data.layout,
351 | "onUpdate:layout": _cache[1] || (_cache[1] = ($event) => $data.layout = $event),
352 | "col-num": 3,
353 | margin: $options.realGridMargin,
354 | "row-height": $data.rowHeight,
355 | "is-draggable": $data.draggable,
356 | "is-resizable": $data.resizable,
357 | responsive: $data.responsive,
358 | "vertical-compact": true,
359 | "use-css-transforms": true,
360 | onLayoutUpdated: $options.layoutUpdatedEvent,
361 | onLayoutReady: $options.layoutReadyEvent
362 | }, {
363 | default: vue.withCtx(() => [
364 | (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.layout, (item) => {
365 | return vue.openBlock(), vue.createBlock(_component_grid_item, {
366 | key: item.i,
367 | x: item.x,
368 | y: item.y,
369 | w: item.w,
370 | h: item.h,
371 | i: item.i,
372 | "drag-ignore-from": ".delete-options",
373 | class: vue.normalizeClass(`sk-grid-item-${item.i}`),
374 | onMove: $options.startMoveEvent,
375 | onMoved: $options.movedEvent
376 | }, {
377 | default: vue.withCtx(() => [
378 | vue.renderSlot(_ctx.$slots, "default", { value: item }, () => [
379 | vue.createElementVNode("div", _hoisted_1, vue.toDisplayString(item.i), 1)
380 | ], true),
381 | $props.editMode ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
382 | $props.editMode && $props.editMask ? (vue.openBlock(), vue.createElementBlock("div", {
383 | key: 0,
384 | class: "edit-mask",
385 | onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
386 | }, ["stop"]))
387 | })) : vue.createCommentVNode("", true),
388 | vue.createElementVNode("div", {
389 | class: "delete-options",
390 | onClick: ($event) => $options.deleteCard(item.i)
391 | }, [
392 | vue.renderSlot(_ctx.$slots, "delete-tip", { value: item }, () => [
393 | _hoisted_3
394 | ], true)
395 | ], 8, _hoisted_2)
396 | ], 64)) : vue.createCommentVNode("", true)
397 | ]),
398 | _: 2
399 | }, 1032, ["x", "y", "w", "h", "i", "class", "onMove", "onMoved"]);
400 | }), 128))
401 | ]),
402 | _: 3
403 | }, 8, ["layout", "margin", "row-height", "is-draggable", "is-resizable", "responsive", "onLayoutUpdated", "onLayoutReady"]);
404 | }
405 | var _VueGridLayoutSplit = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-82449fba"]]);
406 | const vueGridLayoutSplit = Object.assign(_VueGridLayoutSplit, {
407 | install: (app) => {
408 | app.component(_VueGridLayoutSplit.name, _VueGridLayoutSplit);
409 | app.use(vueGridLayoutInstall__default["default"]);
410 | console.log("had install3");
411 | }
412 | });
413 | exports.GridItemType = GridItemType;
414 | exports.GridPosition = GridPosition;
415 | exports["default"] = vueGridLayoutSplit;
416 |
--------------------------------------------------------------------------------
/lib/vue-grid-layout-split.umd.js:
--------------------------------------------------------------------------------
1 | (function(){ try {var elementStyle = document.createElement('style'); elementStyle.appendChild(document.createTextNode(".vue-grid-layout[data-v-82449fba] {\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder {\n background-color: black;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.vue-grid-placeholder.not-allowed {\n background-color: red;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item:not(.vue-grid-placeholder) {\n border: 1px solid black;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .resizing {\n opacity: 0.9;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .static {\n background: #cce;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item.moving {\n border-radius: 4px;\n border: 2px solid #538dff;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .edit-mask {\n background-color: rgba(94, 115, 159, 0.2);\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .delete-options {\n position: absolute;\n font-size: 16px;\n color: #4e5969;\n top: 0;\n right: 0;\n padding: 10px;\n cursor: pointer;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .default-show-text {\n font-size: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .no-drag {\n height: 100%;\n width: 100%;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .minMax {\n font-size: 12px;\n}\n.vue-grid-layout[data-v-82449fba] .vue-grid-item .add {\n cursor: pointer;\n}\n.vue-draggable-handle[data-v-82449fba] {\n position: absolute;\n width: 20px;\n height: 20px;\n top: 0;\n left: 0;\n padding: 0 8px 8px 0;\n background: url(\"data:image/svg+xml;utf8,\") no-repeat bottom right;\n background-origin: content-box;\n box-sizing: border-box;\n cursor: pointer;\n}\n.layoutJSON[data-v-82449fba] {\n background: #ddd;\n border: 1px solid black;\n margin-top: 10px;\n padding: 10px;\n}\n.columns[data-v-82449fba] {\n -moz-columns: 120px;\n -webkit-columns: 120px;\n columns: 120px;\n}")); document.head.appendChild(elementStyle);} catch(e) {console.error('vite-plugin-css-injected-by-js', e);} })();(function(global, factory) {
2 | typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("vue-grid-layout"), require("vue")) : typeof define === "function" && define.amd ? define(["exports", "vue-grid-layout", "vue"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global["vue-grid-layout-split"] = {}, global.vueGridLayoutInstall, global.vue));
3 | })(this, function(exports2, vueGridLayoutInstall, vue) {
4 | "use strict";
5 | function _interopDefaultLegacy(e) {
6 | return e && typeof e === "object" && "default" in e ? e : { "default": e };
7 | }
8 | var vueGridLayoutInstall__default = /* @__PURE__ */ _interopDefaultLegacy(vueGridLayoutInstall);
9 | var GridItemType = /* @__PURE__ */ ((GridItemType2) => {
10 | GridItemType2[GridItemType2["SMALL"] = 0] = "SMALL";
11 | GridItemType2[GridItemType2["BIG"] = 1] = "BIG";
12 | return GridItemType2;
13 | })(GridItemType || {});
14 | var GridPosition = /* @__PURE__ */ ((GridPosition2) => {
15 | GridPosition2[GridPosition2["LEFT"] = 0] = "LEFT";
16 | GridPosition2[GridPosition2["RIGHT"] = 1] = "RIGHT";
17 | return GridPosition2;
18 | })(GridPosition || {});
19 | function fixCardHeight(layout) {
20 | checkLessThanZeroY(layout);
21 | fixCardSameHeight(layout);
22 | }
23 | function fixCardSameHeight(layout) {
24 | const findLeftBigList = getLeftBigList(layout);
25 | findLeftBigList.forEach((e, index) => {
26 | const lessThanY = e.y + e.h;
27 | let moreThanY = 0;
28 | if (index > 0)
29 | moreThanY = findLeftBigList[index - 1].y + findLeftBigList[index - 1].h;
30 | const { sumH: x0SumH, lastDist: x0LastDist } = findMaxY(layout, 0, lessThanY, moreThanY);
31 | const { sumH: x1SumH, lastDist: x1LastDist } = findMaxY(layout, 1, lessThanY, moreThanY);
32 | if (x0LastDist && x1LastDist) {
33 | const maxYAddH = Math.max(x0SumH, x1SumH);
34 | x0LastDist.h = x0LastDist.h + maxYAddH - x0SumH;
35 | x1LastDist.h = x1LastDist.h + maxYAddH - x1SumH;
36 | }
37 | });
38 | }
39 | function findMaxY(layout, x, lessThanY, moreThanY) {
40 | const findInRangeList = layout.filter((e) => e.x === x && e.y + e.h < lessThanY && e.y >= moreThanY).sort((a, b) => a.y - b.y);
41 | findInRangeList.forEach((e) => {
42 | e.h = e.resetH;
43 | });
44 | let sumH = 0;
45 | findInRangeList.forEach((e) => {
46 | sumH += e.h;
47 | });
48 | return { sumH, lastDist: findInRangeList[findInRangeList.length - 1], findInRangeList };
49 | }
50 | function getLeftBigList(layout) {
51 | return layout.filter((e) => {
52 | return e.type === 1 && e.x === 0;
53 | }).sort((a, b) => a.y - b.y);
54 | }
55 | function checkLessThanZeroY(layout) {
56 | const findLeftBigList = getLeftBigList(layout);
57 | const fixLeft = () => {
58 | if (findLeftBigList.length > 0 && findLeftBigList[0].y <= 0) {
59 | const leftList = layout.filter((e) => {
60 | return e.x === 0 || e.x === 1;
61 | }).sort((a, b) => a.y - b.y);
62 | const diffY = Math.abs(findLeftBigList[0].y);
63 | leftList.forEach((e) => {
64 | e.y += diffY;
65 | });
66 | } else {
67 | let lessThanY = Number.MAX_SAFE_INTEGER;
68 | let moreThanY = Number.MAX_SAFE_INTEGER;
69 | if (findLeftBigList.length > 0) {
70 | lessThanY = findLeftBigList[0].y + findLeftBigList[0].h;
71 | moreThanY = findLeftBigList[0].y;
72 | }
73 | const { sumH: x0SumH, findInRangeList: x0FindInRangeList } = findMaxY(
74 | layout,
75 | 0,
76 | lessThanY,
77 | Number.MIN_SAFE_INTEGER
78 | );
79 | const { sumH: x1SumH, findInRangeList: x1FindInRangeList } = findMaxY(
80 | layout,
81 | 1,
82 | lessThanY,
83 | Number.MIN_SAFE_INTEGER
84 | );
85 | let startX0Y = 0;
86 | let startX1Y = 0;
87 | if (x0FindInRangeList.length !== 0)
88 | startX0Y = x0FindInRangeList[0].y;
89 | if (x1FindInRangeList.length !== 0)
90 | startX1Y = x1FindInRangeList[0].y;
91 | const maxYAddHBefore = Math.max(x0SumH, x1SumH);
92 | const maxYAddHAfter = Math.max(x0SumH + Math.abs(startX0Y), x1SumH + Math.abs(startX1Y));
93 | const diffY = maxYAddHAfter - maxYAddHBefore;
94 | x0FindInRangeList.forEach((e) => {
95 | e.y += Math.abs(startX0Y);
96 | });
97 | x1FindInRangeList.forEach((e) => {
98 | e.y += Math.abs(startX1Y);
99 | });
100 | layout.filter((e) => {
101 | return e.y >= moreThanY && (e.x === 0 || e.x === 1);
102 | }).forEach((e) => {
103 | e.y += diffY;
104 | });
105 | }
106 | };
107 | const fixRight = () => {
108 | const rightList = layout.filter((e) => {
109 | return e.x === 2;
110 | }).sort((a, b) => a.y - b.y);
111 | if (rightList.length === 0)
112 | return;
113 | const diffY = Math.abs(rightList[0].y);
114 | rightList.forEach((e) => {
115 | e.y += diffY;
116 | });
117 | };
118 | fixLeft();
119 | fixRight();
120 | }
121 | var vueGridLayoutSplit_vue_vue_type_style_index_0_scoped_true_lang = "";
122 | var _export_sfc = (sfc, props) => {
123 | for (const [key, val] of props) {
124 | sfc[key] = val;
125 | }
126 | return sfc;
127 | };
128 | const _sfc_main = {
129 | name: "VueGridLayoutSplit",
130 | components: {
131 | GridLayout: vueGridLayoutInstall.GridLayout,
132 | GridItem: vueGridLayoutInstall.GridItem
133 | },
134 | props: {
135 | defaultLayout: {
136 | type: Array,
137 | default: () => [],
138 | required: true
139 | },
140 | editMode: {
141 | type: Boolean,
142 | default: false
143 | },
144 | gridMargin: {
145 | type: [Number, Array],
146 | default: 20
147 | },
148 | editMask: {
149 | type: Boolean,
150 | default: true
151 | }
152 | },
153 | computed: {
154 | realGridMargin() {
155 | if (this.gridMargin instanceof Array)
156 | return this.gridMargin;
157 | else
158 | return [this.gridMargin, this.gridMargin];
159 | }
160 | },
161 | emits: ["changeLayout", "addCardEvent"],
162 | data() {
163 | return {
164 | layout: [],
165 | draggable: true,
166 | resizable: false,
167 | responsive: false,
168 | moving: false,
169 | index: 0,
170 | cashLayout: [],
171 | gridPlaceholder: null,
172 | rowHeight: 10
173 | };
174 | },
175 | watch: {
176 | editMode: {
177 | handler(v) {
178 | if (v) {
179 | this.draggable = true;
180 | } else {
181 | this.draggable = false;
182 | }
183 | },
184 | immediate: true
185 | }
186 | },
187 | created() {
188 | this.setLayout(this.defaultLayout);
189 | },
190 | methods: {
191 | transformLayoutToLocal(sourceLayout) {
192 | let res = JSON.parse(JSON.stringify(sourceLayout));
193 | res.forEach((e) => {
194 | e.x = e.x || 0;
195 | e.y = e.y || 0;
196 | e.type = e.type || GridItemType.SMALL;
197 | e.h = this.transH(e.height);
198 | e.resetH = e.h;
199 | e.i = e.id;
200 | e.w = e.type === GridItemType.BIG ? 2 : 1;
201 | e.x = e.type === GridItemType.BIG ? 0 : e.x;
202 | });
203 | return res;
204 | },
205 | transH(height) {
206 | if (height < this.rowHeight)
207 | return 1;
208 | else {
209 | return +((height - this.rowHeight) / (this.rowHeight + this.realGridMargin[1]) + 1).toFixed(2);
210 | }
211 | },
212 | getLayout() {
213 | return JSON.parse(JSON.stringify(this.layout));
214 | },
215 | addCard(obj, toTop = true) {
216 | let id = obj.id;
217 | let height = obj.height;
218 | let type = obj.type || GridItemType.SMALL;
219 | let y = -1;
220 | if (!toTop) {
221 | this.layout.forEach((e) => {
222 | y = Math.max(y, e.y + e.h);
223 | });
224 | }
225 | let dist = { ...obj, w: 1, x: 2, y, id, type, height };
226 | if (type === GridItemType.BIG)
227 | dist.x = 0;
228 | this.layout.push(...this.transformLayoutToLocal([dist]));
229 | this.$nextTick(() => {
230 | this.$refs.gridLayout.layoutUpdate();
231 | this.$nextTick(() => {
232 | this.changeLayoutEvent();
233 | this.$emit("addCardEvent");
234 | });
235 | });
236 | },
237 | deleteCard(i) {
238 | let findIndex = this.layout.findIndex((e) => e.i === i);
239 | if (findIndex !== -1) {
240 | this.layout.splice(findIndex, 1);
241 | this.$nextTick(() => {
242 | this.changeLayoutEvent();
243 | this.$refs.gridLayout.layoutUpdate();
244 | });
245 | }
246 | },
247 | removeCard(i) {
248 | this.layout.splice(i, 1);
249 | },
250 | movedEvent(i) {
251 | let dist = this.findDistById(i);
252 | if (!this.checkCanMove(dist)) {
253 | let cashLayout = JSON.parse(JSON.stringify(this.cashLayout));
254 | this.$nextTick(() => {
255 | this.layout = cashLayout;
256 | });
257 | }
258 | },
259 | layoutUpdatedEvent() {
260 | this.moving = false;
261 | this.cashLayout = null;
262 | this.checkHeight();
263 | let distDom = this.$refs.gridLayout.$el.getElementsByClassName(".moving");
264 | if (distDom.length > 0) {
265 | distDom.forEach((e) => {
266 | e.classList.remove("moving");
267 | });
268 | }
269 | this.changeLayoutEvent();
270 | },
271 | findDistById(i) {
272 | return this.layout.find((e) => e.i === i);
273 | },
274 | startMoveEvent(i, x) {
275 | let distCard = this.findDistById(i);
276 | if (!this.moving) {
277 | this.moving = true;
278 | this.cashLayout = JSON.parse(JSON.stringify(this.layout));
279 | this.layout.forEach((e) => {
280 | e.h = e.resetH;
281 | });
282 | }
283 | let distDom = this.getGridItem(this.$refs.gridLayout.$el, i);
284 | distDom.classList.add("moving");
285 | let gridPlaceholder = this.getGridPlaceholder(this.$refs.gridLayout.$el);
286 | if (distCard.type === GridItemType.BIG && x !== 0) {
287 | gridPlaceholder.classList.add("not-allowed");
288 | } else {
289 | gridPlaceholder.classList.remove("not-allowed");
290 | }
291 | },
292 | getGridPlaceholder(gridLayoutDom) {
293 | return gridLayoutDom.getElementsByClassName("vue-grid-placeholder")[0];
294 | },
295 | getGridItem(gridLayoutDom, i) {
296 | return gridLayoutDom.getElementsByClassName(`sk-grid-item-${i}`)[0];
297 | },
298 | layoutReadyEvent() {
299 | this.checkHeight();
300 | },
301 | checkHeight() {
302 | let sourceLayout = JSON.stringify(this.layout);
303 | fixCardHeight(this.layout);
304 | if (JSON.stringify(this.layout) !== sourceLayout) {
305 | this.$nextTick(() => {
306 | this.$refs.gridLayout.layoutUpdate();
307 | });
308 | }
309 | },
310 | clearLayout() {
311 | this.layout.splice(0, this.layout.length);
312 | this.$nextTick(() => {
313 | this.changeLayoutEvent();
314 | });
315 | },
316 | changeLayoutEvent() {
317 | this.$emit("changeLayout", this.getLayout());
318 | },
319 | checkCanMove(dist) {
320 | return !(dist.type === GridItemType.BIG && (dist.x === 1 || dist.x === 2));
321 | },
322 | setLayout(sourceLayout) {
323 | this.layout = this.transformLayoutToLocal(sourceLayout);
324 | }
325 | }
326 | };
327 | const _withScopeId = (n) => (vue.pushScopeId("data-v-82449fba"), n = n(), vue.popScopeId(), n);
328 | const _hoisted_1 = { class: "default-show-text" };
329 | const _hoisted_2 = ["onClick"];
330 | const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("svg", {
331 | t: "1659345568198",
332 | class: "icon",
333 | viewBox: "0 0 1024 1024",
334 | version: "1.1",
335 | xmlns: "http://www.w3.org/2000/svg",
336 | "p-id": "13132",
337 | width: "16",
338 | height: "16"
339 | }, [
340 | /* @__PURE__ */ vue.createElementVNode("path", {
341 | d: "M972.8 204.8c28.16 0 51.2 23.04 51.2 51.2 0 28.16-23.04 51.2-51.2 51.2h-51.2v563.2c0 84.65-68.95 153.6-153.6 153.6H256c-84.65 0-153.6-68.95-153.6-153.6V307.2H51.2C23.04 307.2 0 284.16 0 256c0-28.16 23.04-51.2 51.2-51.2h256v-85.59C307.2 53.505 364.63 0 435.2 0h153.6c70.57 0 128 53.419 128 119.21v85.59h256z m-563.2-85.59v85.59h204.8v-85.59c0-7.935-10.923-16.81-25.6-16.81H435.2c-14.677 0-25.6 8.875-25.6 16.81zM819.2 870.4V307.2H204.8v563.2c0 28.16 22.955 51.2 51.2 51.2h512a51.2 51.2 0 0 0 51.2-51.2zM358.4 768c-28.16 0-51.2-23.04-51.2-51.2V512c0-28.16 23.04-51.2 51.2-51.2 28.16 0 51.2 23.04 51.2 51.2v204.8c0 28.16-23.04 51.2-51.2 51.2z m307.2 0c-28.16 0-51.2-23.04-51.2-51.2V512c0-28.16 23.04-51.2 51.2-51.2 28.16 0 51.2 23.04 51.2 51.2v204.8c0 28.16-23.04 51.2-51.2 51.2z",
342 | "p-id": "13133"
343 | })
344 | ], -1));
345 | function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
346 | const _component_grid_item = vue.resolveComponent("grid-item");
347 | const _component_grid_layout = vue.resolveComponent("grid-layout");
348 | return vue.openBlock(), vue.createBlock(_component_grid_layout, {
349 | ref: "gridLayout",
350 | layout: $data.layout,
351 | "onUpdate:layout": _cache[1] || (_cache[1] = ($event) => $data.layout = $event),
352 | "col-num": 3,
353 | margin: $options.realGridMargin,
354 | "row-height": $data.rowHeight,
355 | "is-draggable": $data.draggable,
356 | "is-resizable": $data.resizable,
357 | responsive: $data.responsive,
358 | "vertical-compact": true,
359 | "use-css-transforms": true,
360 | onLayoutUpdated: $options.layoutUpdatedEvent,
361 | onLayoutReady: $options.layoutReadyEvent
362 | }, {
363 | default: vue.withCtx(() => [
364 | (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.layout, (item) => {
365 | return vue.openBlock(), vue.createBlock(_component_grid_item, {
366 | key: item.i,
367 | x: item.x,
368 | y: item.y,
369 | w: item.w,
370 | h: item.h,
371 | i: item.i,
372 | "drag-ignore-from": ".delete-options",
373 | class: vue.normalizeClass(`sk-grid-item-${item.i}`),
374 | onMove: $options.startMoveEvent,
375 | onMoved: $options.movedEvent
376 | }, {
377 | default: vue.withCtx(() => [
378 | vue.renderSlot(_ctx.$slots, "default", { value: item }, () => [
379 | vue.createElementVNode("div", _hoisted_1, vue.toDisplayString(item.i), 1)
380 | ], true),
381 | $props.editMode ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
382 | $props.editMode && $props.editMask ? (vue.openBlock(), vue.createElementBlock("div", {
383 | key: 0,
384 | class: "edit-mask",
385 | onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
386 | }, ["stop"]))
387 | })) : vue.createCommentVNode("", true),
388 | vue.createElementVNode("div", {
389 | class: "delete-options",
390 | onClick: ($event) => $options.deleteCard(item.i)
391 | }, [
392 | vue.renderSlot(_ctx.$slots, "delete-tip", { value: item }, () => [
393 | _hoisted_3
394 | ], true)
395 | ], 8, _hoisted_2)
396 | ], 64)) : vue.createCommentVNode("", true)
397 | ]),
398 | _: 2
399 | }, 1032, ["x", "y", "w", "h", "i", "class", "onMove", "onMoved"]);
400 | }), 128))
401 | ]),
402 | _: 3
403 | }, 8, ["layout", "margin", "row-height", "is-draggable", "is-resizable", "responsive", "onLayoutUpdated", "onLayoutReady"]);
404 | }
405 | var _VueGridLayoutSplit = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-82449fba"]]);
406 | const vueGridLayoutSplit = Object.assign(_VueGridLayoutSplit, {
407 | install: (app) => {
408 | app.component(_VueGridLayoutSplit.name, _VueGridLayoutSplit);
409 | app.use(vueGridLayoutInstall__default["default"]);
410 | console.log("had install3");
411 | }
412 | });
413 | exports2.GridItemType = GridItemType;
414 | exports2.GridPosition = GridPosition;
415 | exports2["default"] = vueGridLayoutSplit;
416 | Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
417 | });
418 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.1.0":
6 | "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w=="
7 | "resolved" "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz"
8 | "version" "2.2.0"
9 | dependencies:
10 | "@jridgewell/gen-mapping" "^0.1.0"
11 | "@jridgewell/trace-mapping" "^0.3.9"
12 |
13 | "@babel/code-frame@^7.18.6":
14 | "integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q=="
15 | "resolved" "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz"
16 | "version" "7.18.6"
17 | dependencies:
18 | "@babel/highlight" "^7.18.6"
19 |
20 | "@babel/code-frame@7.12.11":
21 | "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw=="
22 | "resolved" "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.12.11.tgz"
23 | "version" "7.12.11"
24 | dependencies:
25 | "@babel/highlight" "^7.10.4"
26 |
27 | "@babel/compat-data@^7.18.8":
28 | "integrity" "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ=="
29 | "resolved" "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.8.tgz"
30 | "version" "7.18.8"
31 |
32 | "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.17.9":
33 | "integrity" "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g=="
34 | "resolved" "https://registry.npmmirror.com/@babel/core/-/core-7.18.9.tgz"
35 | "version" "7.18.9"
36 | dependencies:
37 | "@ampproject/remapping" "^2.1.0"
38 | "@babel/code-frame" "^7.18.6"
39 | "@babel/generator" "^7.18.9"
40 | "@babel/helper-compilation-targets" "^7.18.9"
41 | "@babel/helper-module-transforms" "^7.18.9"
42 | "@babel/helpers" "^7.18.9"
43 | "@babel/parser" "^7.18.9"
44 | "@babel/template" "^7.18.6"
45 | "@babel/traverse" "^7.18.9"
46 | "@babel/types" "^7.18.9"
47 | "convert-source-map" "^1.7.0"
48 | "debug" "^4.1.0"
49 | "gensync" "^1.0.0-beta.2"
50 | "json5" "^2.2.1"
51 | "semver" "^6.3.0"
52 |
53 | "@babel/generator@^7.18.9":
54 | "integrity" "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug=="
55 | "resolved" "https://registry.npmmirror.com/@babel/generator/-/generator-7.18.9.tgz"
56 | "version" "7.18.9"
57 | dependencies:
58 | "@babel/types" "^7.18.9"
59 | "@jridgewell/gen-mapping" "^0.3.2"
60 | "jsesc" "^2.5.1"
61 |
62 | "@babel/helper-annotate-as-pure@^7.18.6":
63 | "integrity" "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA=="
64 | "resolved" "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz"
65 | "version" "7.18.6"
66 | dependencies:
67 | "@babel/types" "^7.18.6"
68 |
69 | "@babel/helper-compilation-targets@^7.18.9":
70 | "integrity" "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg=="
71 | "resolved" "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz"
72 | "version" "7.18.9"
73 | dependencies:
74 | "@babel/compat-data" "^7.18.8"
75 | "@babel/helper-validator-option" "^7.18.6"
76 | "browserslist" "^4.20.2"
77 | "semver" "^6.3.0"
78 |
79 | "@babel/helper-create-class-features-plugin@^7.18.6":
80 | "integrity" "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw=="
81 | "resolved" "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz"
82 | "version" "7.18.9"
83 | dependencies:
84 | "@babel/helper-annotate-as-pure" "^7.18.6"
85 | "@babel/helper-environment-visitor" "^7.18.9"
86 | "@babel/helper-function-name" "^7.18.9"
87 | "@babel/helper-member-expression-to-functions" "^7.18.9"
88 | "@babel/helper-optimise-call-expression" "^7.18.6"
89 | "@babel/helper-replace-supers" "^7.18.9"
90 | "@babel/helper-split-export-declaration" "^7.18.6"
91 |
92 | "@babel/helper-environment-visitor@^7.18.9":
93 | "integrity" "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
94 | "resolved" "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz"
95 | "version" "7.18.9"
96 |
97 | "@babel/helper-function-name@^7.18.9":
98 | "integrity" "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A=="
99 | "resolved" "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz"
100 | "version" "7.18.9"
101 | dependencies:
102 | "@babel/template" "^7.18.6"
103 | "@babel/types" "^7.18.9"
104 |
105 | "@babel/helper-hoist-variables@^7.18.6":
106 | "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q=="
107 | "resolved" "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz"
108 | "version" "7.18.6"
109 | dependencies:
110 | "@babel/types" "^7.18.6"
111 |
112 | "@babel/helper-member-expression-to-functions@^7.18.9":
113 | "integrity" "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg=="
114 | "resolved" "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz"
115 | "version" "7.18.9"
116 | dependencies:
117 | "@babel/types" "^7.18.9"
118 |
119 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6":
120 | "integrity" "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="
121 | "resolved" "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz"
122 | "version" "7.18.6"
123 | dependencies:
124 | "@babel/types" "^7.18.6"
125 |
126 | "@babel/helper-module-transforms@^7.18.9":
127 | "integrity" "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g=="
128 | "resolved" "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz"
129 | "version" "7.18.9"
130 | dependencies:
131 | "@babel/helper-environment-visitor" "^7.18.9"
132 | "@babel/helper-module-imports" "^7.18.6"
133 | "@babel/helper-simple-access" "^7.18.6"
134 | "@babel/helper-split-export-declaration" "^7.18.6"
135 | "@babel/helper-validator-identifier" "^7.18.6"
136 | "@babel/template" "^7.18.6"
137 | "@babel/traverse" "^7.18.9"
138 | "@babel/types" "^7.18.9"
139 |
140 | "@babel/helper-optimise-call-expression@^7.18.6":
141 | "integrity" "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA=="
142 | "resolved" "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz"
143 | "version" "7.18.6"
144 | dependencies:
145 | "@babel/types" "^7.18.6"
146 |
147 | "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.18.6":
148 | "integrity" "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w=="
149 | "resolved" "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz"
150 | "version" "7.18.9"
151 |
152 | "@babel/helper-replace-supers@^7.18.9":
153 | "integrity" "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ=="
154 | "resolved" "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz"
155 | "version" "7.18.9"
156 | dependencies:
157 | "@babel/helper-environment-visitor" "^7.18.9"
158 | "@babel/helper-member-expression-to-functions" "^7.18.9"
159 | "@babel/helper-optimise-call-expression" "^7.18.6"
160 | "@babel/traverse" "^7.18.9"
161 | "@babel/types" "^7.18.9"
162 |
163 | "@babel/helper-simple-access@^7.18.6":
164 | "integrity" "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g=="
165 | "resolved" "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz"
166 | "version" "7.18.6"
167 | dependencies:
168 | "@babel/types" "^7.18.6"
169 |
170 | "@babel/helper-split-export-declaration@^7.18.6":
171 | "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA=="
172 | "resolved" "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz"
173 | "version" "7.18.6"
174 | dependencies:
175 | "@babel/types" "^7.18.6"
176 |
177 | "@babel/helper-validator-identifier@^7.18.6":
178 | "integrity" "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g=="
179 | "resolved" "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz"
180 | "version" "7.18.6"
181 |
182 | "@babel/helper-validator-option@^7.18.6":
183 | "integrity" "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
184 | "resolved" "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz"
185 | "version" "7.18.6"
186 |
187 | "@babel/helpers@^7.18.9":
188 | "integrity" "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ=="
189 | "resolved" "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.18.9.tgz"
190 | "version" "7.18.9"
191 | dependencies:
192 | "@babel/template" "^7.18.6"
193 | "@babel/traverse" "^7.18.9"
194 | "@babel/types" "^7.18.9"
195 |
196 | "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6":
197 | "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g=="
198 | "resolved" "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz"
199 | "version" "7.18.6"
200 | dependencies:
201 | "@babel/helper-validator-identifier" "^7.18.6"
202 | "chalk" "^2.0.0"
203 | "js-tokens" "^4.0.0"
204 |
205 | "@babel/parser@^7.16.4", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9":
206 | "integrity" "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg=="
207 | "resolved" "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.9.tgz"
208 | "version" "7.18.9"
209 |
210 | "@babel/plugin-syntax-import-meta@^7.10.4":
211 | "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="
212 | "resolved" "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz"
213 | "version" "7.10.4"
214 | dependencies:
215 | "@babel/helper-plugin-utils" "^7.10.4"
216 |
217 | "@babel/plugin-syntax-jsx@^7.0.0":
218 | "integrity" "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q=="
219 | "resolved" "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz"
220 | "version" "7.18.6"
221 | dependencies:
222 | "@babel/helper-plugin-utils" "^7.18.6"
223 |
224 | "@babel/plugin-syntax-typescript@^7.18.6":
225 | "integrity" "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA=="
226 | "resolved" "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz"
227 | "version" "7.18.6"
228 | dependencies:
229 | "@babel/helper-plugin-utils" "^7.18.6"
230 |
231 | "@babel/plugin-transform-typescript@^7.16.8":
232 | "integrity" "sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA=="
233 | "resolved" "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz"
234 | "version" "7.18.8"
235 | dependencies:
236 | "@babel/helper-create-class-features-plugin" "^7.18.6"
237 | "@babel/helper-plugin-utils" "^7.18.6"
238 | "@babel/plugin-syntax-typescript" "^7.18.6"
239 |
240 | "@babel/template@^7.0.0", "@babel/template@^7.18.6":
241 | "integrity" "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw=="
242 | "resolved" "https://registry.npmmirror.com/@babel/template/-/template-7.18.6.tgz"
243 | "version" "7.18.6"
244 | dependencies:
245 | "@babel/code-frame" "^7.18.6"
246 | "@babel/parser" "^7.18.6"
247 | "@babel/types" "^7.18.6"
248 |
249 | "@babel/traverse@^7.0.0", "@babel/traverse@^7.18.9":
250 | "integrity" "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg=="
251 | "resolved" "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.9.tgz"
252 | "version" "7.18.9"
253 | dependencies:
254 | "@babel/code-frame" "^7.18.6"
255 | "@babel/generator" "^7.18.9"
256 | "@babel/helper-environment-visitor" "^7.18.9"
257 | "@babel/helper-function-name" "^7.18.9"
258 | "@babel/helper-hoist-variables" "^7.18.6"
259 | "@babel/helper-split-export-declaration" "^7.18.6"
260 | "@babel/parser" "^7.18.9"
261 | "@babel/types" "^7.18.9"
262 | "debug" "^4.1.0"
263 | "globals" "^11.1.0"
264 |
265 | "@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9":
266 | "integrity" "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg=="
267 | "resolved" "https://registry.npmmirror.com/@babel/types/-/types-7.18.9.tgz"
268 | "version" "7.18.9"
269 | dependencies:
270 | "@babel/helper-validator-identifier" "^7.18.6"
271 | "to-fast-properties" "^2.0.0"
272 |
273 | "@cspotcode/source-map-support@^0.8.0":
274 | "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="
275 | "resolved" "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz"
276 | "version" "0.8.1"
277 | dependencies:
278 | "@jridgewell/trace-mapping" "0.3.9"
279 |
280 | "@eslint/eslintrc@^0.4.3":
281 | "integrity" "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw=="
282 | "resolved" "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz"
283 | "version" "0.4.3"
284 | dependencies:
285 | "ajv" "^6.12.4"
286 | "debug" "^4.1.1"
287 | "espree" "^7.3.0"
288 | "globals" "^13.9.0"
289 | "ignore" "^4.0.6"
290 | "import-fresh" "^3.2.1"
291 | "js-yaml" "^3.13.1"
292 | "minimatch" "^3.0.4"
293 | "strip-json-comments" "^3.1.1"
294 |
295 | "@humanwhocodes/config-array@^0.5.0":
296 | "integrity" "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg=="
297 | "resolved" "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz"
298 | "version" "0.5.0"
299 | dependencies:
300 | "@humanwhocodes/object-schema" "^1.2.0"
301 | "debug" "^4.1.1"
302 | "minimatch" "^3.0.4"
303 |
304 | "@humanwhocodes/object-schema@^1.2.0":
305 | "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
306 | "resolved" "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
307 | "version" "1.2.1"
308 |
309 | "@interactjs/actions@^1.10.2", "@interactjs/actions@1.10.17":
310 | "integrity" "sha512-wyB1ZqpaZy5gmz6VDqK9KWh98xKnFgL7VyLvxHODFi9V0IYX4HJAAOBlhtfze0D1R1f1cY+gqPDK+dLaHMlE+w=="
311 | "resolved" "https://registry.npmmirror.com/@interactjs/actions/-/actions-1.10.17.tgz"
312 | "version" "1.10.17"
313 | optionalDependencies:
314 | "@interactjs/interact" "1.10.17"
315 |
316 | "@interactjs/auto-scroll@1.10.17":
317 | "integrity" "sha512-IQcW7N3xOaoL8RnAGOGMk0Y2gue7L4S3BT6Id4VBBu8so163DtLiZVW6jXu9rKVntzbluaAeqNZlfAVyu3kIWg=="
318 | "resolved" "https://registry.npmmirror.com/@interactjs/auto-scroll/-/auto-scroll-1.10.17.tgz"
319 | "version" "1.10.17"
320 | optionalDependencies:
321 | "@interactjs/interact" "1.10.17"
322 |
323 | "@interactjs/auto-start@^1.10.2", "@interactjs/auto-start@1.10.17":
324 | "integrity" "sha512-qYVxhAbYnwxjD/NLEegUoAST7WASJ4VmWNjsyWRx/js5Op+I4E2zteARIeZGgrutcGIXMCcQzhCMgE3PjOpbpw=="
325 | "resolved" "https://registry.npmmirror.com/@interactjs/auto-start/-/auto-start-1.10.17.tgz"
326 | "version" "1.10.17"
327 | optionalDependencies:
328 | "@interactjs/interact" "1.10.17"
329 |
330 | "@interactjs/core@1.10.17":
331 | "integrity" "sha512-rL9w+83HDRuXub8Ezqs+97CYLl/ne7bLT/sAeduUWaxYhsW9iOqBoob9JnkkCZOaOsYizWI1EWy0+fNc5ibtLQ=="
332 | "resolved" "https://registry.npmmirror.com/@interactjs/core/-/core-1.10.17.tgz"
333 | "version" "1.10.17"
334 |
335 | "@interactjs/dev-tools@^1.10.2", "@interactjs/dev-tools@1.10.17":
336 | "integrity" "sha512-Oi9nEw3FfSwkNmW+V0WwdHqvzEkVHc24mH1v5EjRn60sqgrGLK9nTQ+NSuqcnUY8GxC3TkyuxnsOodxiadIRmA=="
337 | "resolved" "https://registry.npmmirror.com/@interactjs/dev-tools/-/dev-tools-1.10.17.tgz"
338 | "version" "1.10.17"
339 | optionalDependencies:
340 | "@interactjs/interact" "1.10.17"
341 |
342 | "@interactjs/inertia@1.10.17":
343 | "integrity" "sha512-41vbYUjZIDCKt2/yhmjPrEW5+0uoL/hldFsll9pkvnLhmm12Xk0VXOlmR2zXKAmsTK3fJlKMyBYUX92qHLkyVQ=="
344 | "resolved" "https://registry.npmmirror.com/@interactjs/inertia/-/inertia-1.10.17.tgz"
345 | "version" "1.10.17"
346 | dependencies:
347 | "@interactjs/offset" "1.10.17"
348 | optionalDependencies:
349 | "@interactjs/interact" "1.10.17"
350 |
351 | "@interactjs/interact@1.10.17":
352 | "integrity" "sha512-NyKsf8EFudvdahBjPz1Gt5QnynVwa/2LUfBc2/w8QOnOBiyzUm0HLloJSaB8a50QbQkSWN243/Lgpd8GTMQvuQ=="
353 | "resolved" "https://registry.npmmirror.com/@interactjs/interact/-/interact-1.10.17.tgz"
354 | "version" "1.10.17"
355 | dependencies:
356 | "@interactjs/core" "1.10.17"
357 | "@interactjs/types" "1.10.17"
358 | "@interactjs/utils" "1.10.17"
359 |
360 | "@interactjs/interactjs@^1.10.2":
361 | "integrity" "sha512-hHmiukARbZhiM12zNKx0yQlFVl4C+NMeYNAYh6Mf9U3ZziQ47C+JEW8Gr7Zr/MxfNZyPu5nLKCpVQjh/JvBO9g=="
362 | "resolved" "https://registry.npmmirror.com/@interactjs/interactjs/-/interactjs-1.10.17.tgz"
363 | "version" "1.10.17"
364 | dependencies:
365 | "@interactjs/actions" "1.10.17"
366 | "@interactjs/auto-scroll" "1.10.17"
367 | "@interactjs/auto-start" "1.10.17"
368 | "@interactjs/core" "1.10.17"
369 | "@interactjs/dev-tools" "1.10.17"
370 | "@interactjs/inertia" "1.10.17"
371 | "@interactjs/interact" "1.10.17"
372 | "@interactjs/modifiers" "1.10.17"
373 | "@interactjs/offset" "1.10.17"
374 | "@interactjs/pointer-events" "1.10.17"
375 | "@interactjs/reflow" "1.10.17"
376 | "@interactjs/utils" "1.10.17"
377 |
378 | "@interactjs/modifiers@^1.10.2", "@interactjs/modifiers@1.10.17":
379 | "integrity" "sha512-Dxw8kv9VBIxnhNvQncR6CKAGMzKXczLvuAUIdSPFYtyerX/XiDulJUqhR+jVKNp/WjF1DvdBxWo0kGGLbM84LQ=="
380 | "resolved" "https://registry.npmmirror.com/@interactjs/modifiers/-/modifiers-1.10.17.tgz"
381 | "version" "1.10.17"
382 | dependencies:
383 | "@interactjs/snappers" "1.10.17"
384 | optionalDependencies:
385 | "@interactjs/interact" "1.10.17"
386 |
387 | "@interactjs/offset@1.10.17":
388 | "integrity" "sha512-wWBnIQWgLrmJNTBbd/FdxHxAJjiXl/5ND8Jbw2DuP9gIGDxhFSdEt62Fgqimn9ICb8v8ycvSLObEmcvJF/8hQQ=="
389 | "resolved" "https://registry.npmmirror.com/@interactjs/offset/-/offset-1.10.17.tgz"
390 | "version" "1.10.17"
391 | optionalDependencies:
392 | "@interactjs/interact" "1.10.17"
393 |
394 | "@interactjs/pointer-events@1.10.17":
395 | "integrity" "sha512-VsfluouEKb8QRGyH6jQATCW+QdAd/3dkENS7rj2m+EcVUhz2Ob5mpMRopjALi4pwltMowqTfuJ4LtwMSX2G29A=="
396 | "resolved" "https://registry.npmmirror.com/@interactjs/pointer-events/-/pointer-events-1.10.17.tgz"
397 | "version" "1.10.17"
398 | optionalDependencies:
399 | "@interactjs/interact" "1.10.17"
400 |
401 | "@interactjs/reflow@1.10.17":
402 | "integrity" "sha512-ncpWP5k93FRQptEhjzPZsbuRRajd4rkW17lDavCrEjrDi/LHnYekWGqZTaFzfJ80n1x8xUm9ujDjxCTylNqEIA=="
403 | "resolved" "https://registry.npmmirror.com/@interactjs/reflow/-/reflow-1.10.17.tgz"
404 | "version" "1.10.17"
405 | optionalDependencies:
406 | "@interactjs/interact" "1.10.17"
407 |
408 | "@interactjs/snappers@1.10.17":
409 | "integrity" "sha512-m753DGsNOts797e3zDT6wqELoc+BlpIC1w+TyMyISRxU6n1RlS8Q6LHBGgwAgV79LHLaahv/a5haFF9H1VG0FQ=="
410 | "resolved" "https://registry.npmmirror.com/@interactjs/snappers/-/snappers-1.10.17.tgz"
411 | "version" "1.10.17"
412 | optionalDependencies:
413 | "@interactjs/interact" "1.10.17"
414 |
415 | "@interactjs/types@1.10.17":
416 | "integrity" "sha512-X2JpoM7xUw0p9Me0tMaI0HNfcF/Hd07ZZlzpnpEMpGerUZOLoyeThrV9P+CrBHxZrluWJrigJbcdqXliFd0YMA=="
417 | "resolved" "https://registry.npmmirror.com/@interactjs/types/-/types-1.10.17.tgz"
418 | "version" "1.10.17"
419 |
420 | "@interactjs/utils@1.10.17":
421 | "integrity" "sha512-sZAW08CkqgvqRjUIaLRjScjObcCzN9D75yekLA21EClYAZIhi4A+GEt2z/WqOCOksTaEPLYmQyhkpXcboc0LhQ=="
422 | "resolved" "https://registry.npmmirror.com/@interactjs/utils/-/utils-1.10.17.tgz"
423 | "version" "1.10.17"
424 |
425 | "@jridgewell/gen-mapping@^0.1.0":
426 | "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w=="
427 | "resolved" "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
428 | "version" "0.1.1"
429 | dependencies:
430 | "@jridgewell/set-array" "^1.0.0"
431 | "@jridgewell/sourcemap-codec" "^1.4.10"
432 |
433 | "@jridgewell/gen-mapping@^0.3.2":
434 | "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A=="
435 | "resolved" "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
436 | "version" "0.3.2"
437 | dependencies:
438 | "@jridgewell/set-array" "^1.0.1"
439 | "@jridgewell/sourcemap-codec" "^1.4.10"
440 | "@jridgewell/trace-mapping" "^0.3.9"
441 |
442 | "@jridgewell/resolve-uri@^3.0.3":
443 | "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
444 | "resolved" "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
445 | "version" "3.1.0"
446 |
447 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
448 | "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
449 | "resolved" "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz"
450 | "version" "1.1.2"
451 |
452 | "@jridgewell/sourcemap-codec@^1.4.10":
453 | "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
454 | "resolved" "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
455 | "version" "1.4.14"
456 |
457 | "@jridgewell/trace-mapping@^0.3.9":
458 | "integrity" "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ=="
459 | "resolved" "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz"
460 | "version" "0.3.14"
461 | dependencies:
462 | "@jridgewell/resolve-uri" "^3.0.3"
463 | "@jridgewell/sourcemap-codec" "^1.4.10"
464 |
465 | "@jridgewell/trace-mapping@0.3.9":
466 | "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="
467 | "resolved" "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz"
468 | "version" "0.3.9"
469 | dependencies:
470 | "@jridgewell/resolve-uri" "^3.0.3"
471 | "@jridgewell/sourcemap-codec" "^1.4.10"
472 |
473 | "@rollup/pluginutils@^4.2.0", "@rollup/pluginutils@^4.2.1":
474 | "integrity" "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ=="
475 | "resolved" "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz"
476 | "version" "4.2.1"
477 | dependencies:
478 | "estree-walker" "^2.0.1"
479 | "picomatch" "^2.2.2"
480 |
481 | "@tsconfig/node10@^1.0.7":
482 | "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
483 | "resolved" "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz"
484 | "version" "1.0.9"
485 |
486 | "@tsconfig/node12@^1.0.7":
487 | "integrity" "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
488 | "resolved" "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz"
489 | "version" "1.0.11"
490 |
491 | "@tsconfig/node14@^1.0.0":
492 | "integrity" "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
493 | "resolved" "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz"
494 | "version" "1.0.3"
495 |
496 | "@tsconfig/node16@^1.0.2":
497 | "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
498 | "resolved" "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.3.tgz"
499 | "version" "1.0.3"
500 |
501 | "@types/eslint@^8.4.5":
502 | "integrity" "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ=="
503 | "resolved" "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.5.tgz"
504 | "version" "8.4.5"
505 | dependencies:
506 | "@types/estree" "*"
507 | "@types/json-schema" "*"
508 |
509 | "@types/estree@*":
510 | "integrity" "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ=="
511 | "resolved" "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz"
512 | "version" "1.0.0"
513 |
514 | "@types/json-schema@*":
515 | "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
516 | "resolved" "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz"
517 | "version" "7.0.11"
518 |
519 | "@types/node@*", "@types/node@^18.6.4":
520 | "integrity" "sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg=="
521 | "resolved" "https://registry.npmmirror.com/@types/node/-/node-18.6.4.tgz"
522 | "version" "18.6.4"
523 |
524 | "@vitejs/plugin-vue-jsx@^1.1.8":
525 | "integrity" "sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw=="
526 | "resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz"
527 | "version" "1.3.10"
528 | dependencies:
529 | "@babel/core" "^7.17.9"
530 | "@babel/plugin-syntax-import-meta" "^7.10.4"
531 | "@babel/plugin-transform-typescript" "^7.16.8"
532 | "@rollup/pluginutils" "^4.2.0"
533 | "@vue/babel-plugin-jsx" "^1.1.1"
534 | "hash-sum" "^2.0.0"
535 |
536 | "@vitejs/plugin-vue@^1.6.2":
537 | "integrity" "sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw=="
538 | "resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-1.10.2.tgz"
539 | "version" "1.10.2"
540 |
541 | "@volar/code-gen@0.38.9":
542 | "integrity" "sha512-n6LClucfA+37rQeskvh9vDoZV1VvCVNy++MAPKj2dT4FT+Fbmty/SDQqnsEBtdEe6E3OQctFvA/IcKsx3Mns0A=="
543 | "resolved" "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.38.9.tgz"
544 | "version" "0.38.9"
545 | dependencies:
546 | "@volar/source-map" "0.38.9"
547 |
548 | "@volar/source-map@0.38.9":
549 | "integrity" "sha512-ba0UFoHDYry+vwKdgkWJ6xlQT+8TFtZg1zj9tSjj4PykW1JZDuM0xplMotLun4h3YOoYfY9K1huY5gvxmrNLIw=="
550 | "resolved" "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.38.9.tgz"
551 | "version" "0.38.9"
552 |
553 | "@volar/vue-code-gen@0.38.9":
554 | "integrity" "sha512-tzj7AoarFBKl7e41MR006ncrEmNPHALuk8aG4WdDIaG387X5//5KhWC5Ff3ZfB2InGSeNT+CVUd74M0gS20rjA=="
555 | "resolved" "https://registry.npmmirror.com/@volar/vue-code-gen/-/vue-code-gen-0.38.9.tgz"
556 | "version" "0.38.9"
557 | dependencies:
558 | "@volar/code-gen" "0.38.9"
559 | "@volar/source-map" "0.38.9"
560 | "@vue/compiler-core" "^3.2.37"
561 | "@vue/compiler-dom" "^3.2.37"
562 | "@vue/shared" "^3.2.37"
563 |
564 | "@volar/vue-typescript@0.38.9":
565 | "integrity" "sha512-iJMQGU91ADi98u8V1vXd2UBmELDAaeSP0ZJaFjwosClQdKlJQYc6MlxxKfXBZisHqfbhdtrGRyaryulnYtliZw=="
566 | "resolved" "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.38.9.tgz"
567 | "version" "0.38.9"
568 | dependencies:
569 | "@volar/code-gen" "0.38.9"
570 | "@volar/source-map" "0.38.9"
571 | "@volar/vue-code-gen" "0.38.9"
572 | "@vue/compiler-sfc" "^3.2.37"
573 | "@vue/reactivity" "^3.2.37"
574 |
575 | "@vue/babel-helper-vue-transform-on@^1.0.2":
576 | "integrity" "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA=="
577 | "resolved" "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz"
578 | "version" "1.0.2"
579 |
580 | "@vue/babel-plugin-jsx@^1.1.1":
581 | "integrity" "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w=="
582 | "resolved" "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz"
583 | "version" "1.1.1"
584 | dependencies:
585 | "@babel/helper-module-imports" "^7.0.0"
586 | "@babel/plugin-syntax-jsx" "^7.0.0"
587 | "@babel/template" "^7.0.0"
588 | "@babel/traverse" "^7.0.0"
589 | "@babel/types" "^7.0.0"
590 | "@vue/babel-helper-vue-transform-on" "^1.0.2"
591 | "camelcase" "^6.0.0"
592 | "html-tags" "^3.1.0"
593 | "svg-tags" "^1.0.0"
594 |
595 | "@vue/compiler-core@^3.2.37", "@vue/compiler-core@3.2.37":
596 | "integrity" "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg=="
597 | "resolved" "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz"
598 | "version" "3.2.37"
599 | dependencies:
600 | "@babel/parser" "^7.16.4"
601 | "@vue/shared" "3.2.37"
602 | "estree-walker" "^2.0.2"
603 | "source-map" "^0.6.1"
604 |
605 | "@vue/compiler-dom@^3.2.37", "@vue/compiler-dom@3.2.37":
606 | "integrity" "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ=="
607 | "resolved" "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz"
608 | "version" "3.2.37"
609 | dependencies:
610 | "@vue/compiler-core" "3.2.37"
611 | "@vue/shared" "3.2.37"
612 |
613 | "@vue/compiler-sfc@^3.2.37", "@vue/compiler-sfc@3.2.37":
614 | "integrity" "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg=="
615 | "resolved" "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz"
616 | "version" "3.2.37"
617 | dependencies:
618 | "@babel/parser" "^7.16.4"
619 | "@vue/compiler-core" "3.2.37"
620 | "@vue/compiler-dom" "3.2.37"
621 | "@vue/compiler-ssr" "3.2.37"
622 | "@vue/reactivity-transform" "3.2.37"
623 | "@vue/shared" "3.2.37"
624 | "estree-walker" "^2.0.2"
625 | "magic-string" "^0.25.7"
626 | "postcss" "^8.1.10"
627 | "source-map" "^0.6.1"
628 |
629 | "@vue/compiler-ssr@3.2.37":
630 | "integrity" "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw=="
631 | "resolved" "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz"
632 | "version" "3.2.37"
633 | dependencies:
634 | "@vue/compiler-dom" "3.2.37"
635 | "@vue/shared" "3.2.37"
636 |
637 | "@vue/reactivity-transform@3.2.37":
638 | "integrity" "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg=="
639 | "resolved" "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz"
640 | "version" "3.2.37"
641 | dependencies:
642 | "@babel/parser" "^7.16.4"
643 | "@vue/compiler-core" "3.2.37"
644 | "@vue/shared" "3.2.37"
645 | "estree-walker" "^2.0.2"
646 | "magic-string" "^0.25.7"
647 |
648 | "@vue/reactivity@^3.2.37", "@vue/reactivity@3.2.37":
649 | "integrity" "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A=="
650 | "resolved" "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz"
651 | "version" "3.2.37"
652 | dependencies:
653 | "@vue/shared" "3.2.37"
654 |
655 | "@vue/runtime-core@3.2.37":
656 | "integrity" "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ=="
657 | "resolved" "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz"
658 | "version" "3.2.37"
659 | dependencies:
660 | "@vue/reactivity" "3.2.37"
661 | "@vue/shared" "3.2.37"
662 |
663 | "@vue/runtime-dom@3.2.37":
664 | "integrity" "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw=="
665 | "resolved" "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz"
666 | "version" "3.2.37"
667 | dependencies:
668 | "@vue/runtime-core" "3.2.37"
669 | "@vue/shared" "3.2.37"
670 | "csstype" "^2.6.8"
671 |
672 | "@vue/server-renderer@3.2.37":
673 | "integrity" "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA=="
674 | "resolved" "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz"
675 | "version" "3.2.37"
676 | dependencies:
677 | "@vue/compiler-ssr" "3.2.37"
678 | "@vue/shared" "3.2.37"
679 |
680 | "@vue/shared@^3.2.37", "@vue/shared@3.2.37":
681 | "integrity" "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
682 | "resolved" "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz"
683 | "version" "3.2.37"
684 |
685 | "acorn-jsx@^5.2.0", "acorn-jsx@^5.3.1":
686 | "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
687 | "resolved" "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
688 | "version" "5.3.2"
689 |
690 | "acorn-walk@^8.1.1":
691 | "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
692 | "resolved" "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz"
693 | "version" "8.2.0"
694 |
695 | "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.1", "acorn@^7.4.0":
696 | "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
697 | "resolved" "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz"
698 | "version" "7.4.1"
699 |
700 | "acorn@^8.4.1":
701 | "integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
702 | "resolved" "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz"
703 | "version" "8.8.0"
704 |
705 | "ajv@^6.10.0", "ajv@^6.12.4":
706 | "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
707 | "resolved" "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz"
708 | "version" "6.12.6"
709 | dependencies:
710 | "fast-deep-equal" "^3.1.1"
711 | "fast-json-stable-stringify" "^2.0.0"
712 | "json-schema-traverse" "^0.4.1"
713 | "uri-js" "^4.2.2"
714 |
715 | "ajv@^8.0.1":
716 | "integrity" "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg=="
717 | "resolved" "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz"
718 | "version" "8.11.0"
719 | dependencies:
720 | "fast-deep-equal" "^3.1.1"
721 | "json-schema-traverse" "^1.0.0"
722 | "require-from-string" "^2.0.2"
723 | "uri-js" "^4.2.2"
724 |
725 | "ansi-colors@^4.1.1":
726 | "integrity" "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="
727 | "resolved" "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.3.tgz"
728 | "version" "4.1.3"
729 |
730 | "ansi-regex@^5.0.1":
731 | "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
732 | "resolved" "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz"
733 | "version" "5.0.1"
734 |
735 | "ansi-styles@^3.2.1":
736 | "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
737 | "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz"
738 | "version" "3.2.1"
739 | dependencies:
740 | "color-convert" "^1.9.0"
741 |
742 | "ansi-styles@^4.0.0", "ansi-styles@^4.1.0":
743 | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
744 | "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz"
745 | "version" "4.3.0"
746 | dependencies:
747 | "color-convert" "^2.0.1"
748 |
749 | "arg@^4.1.0":
750 | "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
751 | "resolved" "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz"
752 | "version" "4.1.3"
753 |
754 | "argparse@^1.0.7":
755 | "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="
756 | "resolved" "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz"
757 | "version" "1.0.10"
758 | dependencies:
759 | "sprintf-js" "~1.0.2"
760 |
761 | "astral-regex@^2.0.0":
762 | "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
763 | "resolved" "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz"
764 | "version" "2.0.0"
765 |
766 | "balanced-match@^1.0.0":
767 | "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
768 | "resolved" "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz"
769 | "version" "1.0.2"
770 |
771 | "batch-processor@1.0.0":
772 | "integrity" "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA=="
773 | "resolved" "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz"
774 | "version" "1.0.0"
775 |
776 | "brace-expansion@^1.1.7":
777 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
778 | "resolved" "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz"
779 | "version" "1.1.11"
780 | dependencies:
781 | "balanced-match" "^1.0.0"
782 | "concat-map" "0.0.1"
783 |
784 | "browserslist@^4.20.2", "browserslist@>= 4.21.0":
785 | "integrity" "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ=="
786 | "resolved" "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.3.tgz"
787 | "version" "4.21.3"
788 | dependencies:
789 | "caniuse-lite" "^1.0.30001370"
790 | "electron-to-chromium" "^1.4.202"
791 | "node-releases" "^2.0.6"
792 | "update-browserslist-db" "^1.0.5"
793 |
794 | "callsites@^3.0.0":
795 | "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
796 | "resolved" "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz"
797 | "version" "3.1.0"
798 |
799 | "camelcase@^6.0.0":
800 | "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
801 | "resolved" "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz"
802 | "version" "6.3.0"
803 |
804 | "caniuse-lite@^1.0.30001370":
805 | "integrity" "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ=="
806 | "resolved" "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz"
807 | "version" "1.0.30001373"
808 |
809 | "chalk@^2.0.0":
810 | "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
811 | "resolved" "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz"
812 | "version" "2.4.2"
813 | dependencies:
814 | "ansi-styles" "^3.2.1"
815 | "escape-string-regexp" "^1.0.5"
816 | "supports-color" "^5.3.0"
817 |
818 | "chalk@^4.0.0":
819 | "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
820 | "resolved" "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
821 | "version" "4.1.2"
822 | dependencies:
823 | "ansi-styles" "^4.1.0"
824 | "supports-color" "^7.1.0"
825 |
826 | "color-convert@^1.9.0":
827 | "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
828 | "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz"
829 | "version" "1.9.3"
830 | dependencies:
831 | "color-name" "1.1.3"
832 |
833 | "color-convert@^2.0.1":
834 | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
835 | "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz"
836 | "version" "2.0.1"
837 | dependencies:
838 | "color-name" "~1.1.4"
839 |
840 | "color-name@~1.1.4":
841 | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
842 | "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
843 | "version" "1.1.4"
844 |
845 | "color-name@1.1.3":
846 | "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
847 | "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
848 | "version" "1.1.3"
849 |
850 | "concat-map@0.0.1":
851 | "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
852 | "resolved" "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz"
853 | "version" "0.0.1"
854 |
855 | "convert-source-map@^1.7.0":
856 | "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA=="
857 | "resolved" "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz"
858 | "version" "1.8.0"
859 | dependencies:
860 | "safe-buffer" "~5.1.1"
861 |
862 | "copy-anything@^2.0.1":
863 | "integrity" "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw=="
864 | "resolved" "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz"
865 | "version" "2.0.6"
866 | dependencies:
867 | "is-what" "^3.14.1"
868 |
869 | "create-require@^1.1.0":
870 | "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
871 | "resolved" "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz"
872 | "version" "1.1.1"
873 |
874 | "cross-env@^7.0.3":
875 | "integrity" "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw=="
876 | "resolved" "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz"
877 | "version" "7.0.3"
878 | dependencies:
879 | "cross-spawn" "^7.0.1"
880 |
881 | "cross-spawn@^7.0.1", "cross-spawn@^7.0.2":
882 | "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
883 | "resolved" "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz"
884 | "version" "7.0.3"
885 | dependencies:
886 | "path-key" "^3.1.0"
887 | "shebang-command" "^2.0.0"
888 | "which" "^2.0.1"
889 |
890 | "csstype@^2.6.8":
891 | "integrity" "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
892 | "resolved" "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz"
893 | "version" "2.6.20"
894 |
895 | "debug@^3.2.6":
896 | "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
897 | "resolved" "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
898 | "version" "3.2.7"
899 | dependencies:
900 | "ms" "^2.1.1"
901 |
902 | "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1":
903 | "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
904 | "resolved" "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz"
905 | "version" "4.3.4"
906 | dependencies:
907 | "ms" "2.1.2"
908 |
909 | "deep-is@^0.1.3":
910 | "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
911 | "resolved" "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz"
912 | "version" "0.1.4"
913 |
914 | "diff@^4.0.1":
915 | "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
916 | "resolved" "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz"
917 | "version" "4.0.2"
918 |
919 | "doctrine@^3.0.0":
920 | "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
921 | "resolved" "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz"
922 | "version" "3.0.0"
923 | dependencies:
924 | "esutils" "^2.0.2"
925 |
926 | "electron-to-chromium@^1.4.202":
927 | "integrity" "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA=="
928 | "resolved" "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz"
929 | "version" "1.4.206"
930 |
931 | "element-resize-detector@^1.2.1":
932 | "integrity" "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg=="
933 | "resolved" "https://registry.npmmirror.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz"
934 | "version" "1.2.4"
935 | dependencies:
936 | "batch-processor" "1.0.0"
937 |
938 | "emoji-regex@^8.0.0":
939 | "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
940 | "resolved" "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz"
941 | "version" "8.0.0"
942 |
943 | "enquirer@^2.3.5":
944 | "integrity" "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg=="
945 | "resolved" "https://registry.npmmirror.com/enquirer/-/enquirer-2.3.6.tgz"
946 | "version" "2.3.6"
947 | dependencies:
948 | "ansi-colors" "^4.1.1"
949 |
950 | "errno@^0.1.1":
951 | "integrity" "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A=="
952 | "resolved" "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz"
953 | "version" "0.1.8"
954 | dependencies:
955 | "prr" "~1.0.1"
956 |
957 | "esbuild-windows-64@0.14.51":
958 | "integrity" "sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA=="
959 | "resolved" "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.51.tgz"
960 | "version" "0.14.51"
961 |
962 | "esbuild@^0.14.27":
963 | "integrity" "sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw=="
964 | "resolved" "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.51.tgz"
965 | "version" "0.14.51"
966 | optionalDependencies:
967 | "esbuild-android-64" "0.14.51"
968 | "esbuild-android-arm64" "0.14.51"
969 | "esbuild-darwin-64" "0.14.51"
970 | "esbuild-darwin-arm64" "0.14.51"
971 | "esbuild-freebsd-64" "0.14.51"
972 | "esbuild-freebsd-arm64" "0.14.51"
973 | "esbuild-linux-32" "0.14.51"
974 | "esbuild-linux-64" "0.14.51"
975 | "esbuild-linux-arm" "0.14.51"
976 | "esbuild-linux-arm64" "0.14.51"
977 | "esbuild-linux-mips64le" "0.14.51"
978 | "esbuild-linux-ppc64le" "0.14.51"
979 | "esbuild-linux-riscv64" "0.14.51"
980 | "esbuild-linux-s390x" "0.14.51"
981 | "esbuild-netbsd-64" "0.14.51"
982 | "esbuild-openbsd-64" "0.14.51"
983 | "esbuild-sunos-64" "0.14.51"
984 | "esbuild-windows-32" "0.14.51"
985 | "esbuild-windows-64" "0.14.51"
986 | "esbuild-windows-arm64" "0.14.51"
987 |
988 | "escalade@^3.1.1":
989 | "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
990 | "resolved" "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz"
991 | "version" "3.1.1"
992 |
993 | "escape-string-regexp@^1.0.5":
994 | "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
995 | "resolved" "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
996 | "version" "1.0.5"
997 |
998 | "escape-string-regexp@^4.0.0":
999 | "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
1000 | "resolved" "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
1001 | "version" "4.0.0"
1002 |
1003 | "eslint-plugin-vue@^7.7.0":
1004 | "integrity" "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw=="
1005 | "resolved" "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz"
1006 | "version" "7.20.0"
1007 | dependencies:
1008 | "eslint-utils" "^2.1.0"
1009 | "natural-compare" "^1.4.0"
1010 | "semver" "^6.3.0"
1011 | "vue-eslint-parser" "^7.10.0"
1012 |
1013 | "eslint-scope@^5.1.1":
1014 | "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
1015 | "resolved" "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz"
1016 | "version" "5.1.1"
1017 | dependencies:
1018 | "esrecurse" "^4.3.0"
1019 | "estraverse" "^4.1.1"
1020 |
1021 | "eslint-utils@^2.1.0":
1022 | "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg=="
1023 | "resolved" "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz"
1024 | "version" "2.1.0"
1025 | dependencies:
1026 | "eslint-visitor-keys" "^1.1.0"
1027 |
1028 | "eslint-visitor-keys@^1.1.0", "eslint-visitor-keys@^1.3.0":
1029 | "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
1030 | "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
1031 | "version" "1.3.0"
1032 |
1033 | "eslint-visitor-keys@^2.0.0":
1034 | "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
1035 | "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
1036 | "version" "2.1.0"
1037 |
1038 | "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^7.21.0", "eslint@>=5.0.0", "eslint@>=7":
1039 | "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA=="
1040 | "resolved" "https://registry.npmmirror.com/eslint/-/eslint-7.32.0.tgz"
1041 | "version" "7.32.0"
1042 | dependencies:
1043 | "@babel/code-frame" "7.12.11"
1044 | "@eslint/eslintrc" "^0.4.3"
1045 | "@humanwhocodes/config-array" "^0.5.0"
1046 | "ajv" "^6.10.0"
1047 | "chalk" "^4.0.0"
1048 | "cross-spawn" "^7.0.2"
1049 | "debug" "^4.0.1"
1050 | "doctrine" "^3.0.0"
1051 | "enquirer" "^2.3.5"
1052 | "escape-string-regexp" "^4.0.0"
1053 | "eslint-scope" "^5.1.1"
1054 | "eslint-utils" "^2.1.0"
1055 | "eslint-visitor-keys" "^2.0.0"
1056 | "espree" "^7.3.1"
1057 | "esquery" "^1.4.0"
1058 | "esutils" "^2.0.2"
1059 | "fast-deep-equal" "^3.1.3"
1060 | "file-entry-cache" "^6.0.1"
1061 | "functional-red-black-tree" "^1.0.1"
1062 | "glob-parent" "^5.1.2"
1063 | "globals" "^13.6.0"
1064 | "ignore" "^4.0.6"
1065 | "import-fresh" "^3.0.0"
1066 | "imurmurhash" "^0.1.4"
1067 | "is-glob" "^4.0.0"
1068 | "js-yaml" "^3.13.1"
1069 | "json-stable-stringify-without-jsonify" "^1.0.1"
1070 | "levn" "^0.4.1"
1071 | "lodash.merge" "^4.6.2"
1072 | "minimatch" "^3.0.4"
1073 | "natural-compare" "^1.4.0"
1074 | "optionator" "^0.9.1"
1075 | "progress" "^2.0.0"
1076 | "regexpp" "^3.1.0"
1077 | "semver" "^7.2.1"
1078 | "strip-ansi" "^6.0.0"
1079 | "strip-json-comments" "^3.1.0"
1080 | "table" "^6.0.9"
1081 | "text-table" "^0.2.0"
1082 | "v8-compile-cache" "^2.0.3"
1083 |
1084 | "espree@^6.2.1":
1085 | "integrity" "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw=="
1086 | "resolved" "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz"
1087 | "version" "6.2.1"
1088 | dependencies:
1089 | "acorn" "^7.1.1"
1090 | "acorn-jsx" "^5.2.0"
1091 | "eslint-visitor-keys" "^1.1.0"
1092 |
1093 | "espree@^7.3.0", "espree@^7.3.1":
1094 | "integrity" "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g=="
1095 | "resolved" "https://registry.npmmirror.com/espree/-/espree-7.3.1.tgz"
1096 | "version" "7.3.1"
1097 | dependencies:
1098 | "acorn" "^7.4.0"
1099 | "acorn-jsx" "^5.3.1"
1100 | "eslint-visitor-keys" "^1.3.0"
1101 |
1102 | "esprima@^4.0.0":
1103 | "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
1104 | "resolved" "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz"
1105 | "version" "4.0.1"
1106 |
1107 | "esquery@^1.4.0":
1108 | "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w=="
1109 | "resolved" "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz"
1110 | "version" "1.4.0"
1111 | dependencies:
1112 | "estraverse" "^5.1.0"
1113 |
1114 | "esrecurse@^4.3.0":
1115 | "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
1116 | "resolved" "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz"
1117 | "version" "4.3.0"
1118 | dependencies:
1119 | "estraverse" "^5.2.0"
1120 |
1121 | "estraverse@^4.1.1":
1122 | "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
1123 | "resolved" "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz"
1124 | "version" "4.3.0"
1125 |
1126 | "estraverse@^5.1.0", "estraverse@^5.2.0":
1127 | "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
1128 | "resolved" "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz"
1129 | "version" "5.3.0"
1130 |
1131 | "estree-walker@^2.0.1", "estree-walker@^2.0.2":
1132 | "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1133 | "resolved" "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz"
1134 | "version" "2.0.2"
1135 |
1136 | "esutils@^2.0.2":
1137 | "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
1138 | "resolved" "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz"
1139 | "version" "2.0.3"
1140 |
1141 | "fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
1142 | "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
1143 | "resolved" "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
1144 | "version" "3.1.3"
1145 |
1146 | "fast-json-stable-stringify@^2.0.0":
1147 | "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
1148 | "resolved" "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
1149 | "version" "2.1.0"
1150 |
1151 | "fast-levenshtein@^2.0.6":
1152 | "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
1153 | "resolved" "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
1154 | "version" "2.0.6"
1155 |
1156 | "file-entry-cache@^6.0.1":
1157 | "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
1158 | "resolved" "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
1159 | "version" "6.0.1"
1160 | dependencies:
1161 | "flat-cache" "^3.0.4"
1162 |
1163 | "flat-cache@^3.0.4":
1164 | "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
1165 | "resolved" "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz"
1166 | "version" "3.0.4"
1167 | dependencies:
1168 | "flatted" "^3.1.0"
1169 | "rimraf" "^3.0.2"
1170 |
1171 | "flatted@^3.1.0":
1172 | "integrity" "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ=="
1173 | "resolved" "https://registry.npmmirror.com/flatted/-/flatted-3.2.6.tgz"
1174 | "version" "3.2.6"
1175 |
1176 | "fs.realpath@^1.0.0":
1177 | "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
1178 | "resolved" "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
1179 | "version" "1.0.0"
1180 |
1181 | "function-bind@^1.1.1":
1182 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1183 | "resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
1184 | "version" "1.1.1"
1185 |
1186 | "functional-red-black-tree@^1.0.1":
1187 | "integrity" "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
1188 | "resolved" "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
1189 | "version" "1.0.1"
1190 |
1191 | "gensync@^1.0.0-beta.2":
1192 | "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
1193 | "resolved" "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz"
1194 | "version" "1.0.0-beta.2"
1195 |
1196 | "glob-parent@^5.1.2":
1197 | "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
1198 | "resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
1199 | "version" "5.1.2"
1200 | dependencies:
1201 | "is-glob" "^4.0.1"
1202 |
1203 | "glob@^7.1.3", "glob@^7.1.6":
1204 | "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
1205 | "resolved" "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
1206 | "version" "7.2.3"
1207 | dependencies:
1208 | "fs.realpath" "^1.0.0"
1209 | "inflight" "^1.0.4"
1210 | "inherits" "2"
1211 | "minimatch" "^3.1.1"
1212 | "once" "^1.3.0"
1213 | "path-is-absolute" "^1.0.0"
1214 |
1215 | "globals@^11.1.0":
1216 | "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
1217 | "resolved" "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz"
1218 | "version" "11.12.0"
1219 |
1220 | "globals@^13.6.0", "globals@^13.9.0":
1221 | "integrity" "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw=="
1222 | "resolved" "https://registry.npmmirror.com/globals/-/globals-13.17.0.tgz"
1223 | "version" "13.17.0"
1224 | dependencies:
1225 | "type-fest" "^0.20.2"
1226 |
1227 | "graceful-fs@^4.1.2":
1228 | "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
1229 | "resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz"
1230 | "version" "4.2.10"
1231 |
1232 | "has-flag@^3.0.0":
1233 | "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
1234 | "resolved" "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz"
1235 | "version" "3.0.0"
1236 |
1237 | "has-flag@^4.0.0":
1238 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
1239 | "resolved" "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz"
1240 | "version" "4.0.0"
1241 |
1242 | "has@^1.0.3":
1243 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
1244 | "resolved" "https://registry.npmmirror.com/has/-/has-1.0.3.tgz"
1245 | "version" "1.0.3"
1246 | dependencies:
1247 | "function-bind" "^1.1.1"
1248 |
1249 | "hash-sum@^2.0.0":
1250 | "integrity" "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
1251 | "resolved" "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz"
1252 | "version" "2.0.0"
1253 |
1254 | "html-tags@^3.1.0":
1255 | "integrity" "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg=="
1256 | "resolved" "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz"
1257 | "version" "3.2.0"
1258 |
1259 | "iconv-lite@^0.6.3":
1260 | "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="
1261 | "resolved" "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz"
1262 | "version" "0.6.3"
1263 | dependencies:
1264 | "safer-buffer" ">= 2.1.2 < 3.0.0"
1265 |
1266 | "ignore@^4.0.6":
1267 | "integrity" "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
1268 | "resolved" "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz"
1269 | "version" "4.0.6"
1270 |
1271 | "image-size@~0.5.0":
1272 | "integrity" "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ=="
1273 | "resolved" "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz"
1274 | "version" "0.5.5"
1275 |
1276 | "import-fresh@^3.0.0", "import-fresh@^3.2.1":
1277 | "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
1278 | "resolved" "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz"
1279 | "version" "3.3.0"
1280 | dependencies:
1281 | "parent-module" "^1.0.0"
1282 | "resolve-from" "^4.0.0"
1283 |
1284 | "imurmurhash@^0.1.4":
1285 | "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
1286 | "resolved" "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz"
1287 | "version" "0.1.4"
1288 |
1289 | "inflight@^1.0.4":
1290 | "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
1291 | "resolved" "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz"
1292 | "version" "1.0.6"
1293 | dependencies:
1294 | "once" "^1.3.0"
1295 | "wrappy" "1"
1296 |
1297 | "inherits@2":
1298 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1299 | "resolved" "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
1300 | "version" "2.0.4"
1301 |
1302 | "is-core-module@^2.9.0":
1303 | "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A=="
1304 | "resolved" "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz"
1305 | "version" "2.9.0"
1306 | dependencies:
1307 | "has" "^1.0.3"
1308 |
1309 | "is-extglob@^2.1.1":
1310 | "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
1311 | "resolved" "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz"
1312 | "version" "2.1.1"
1313 |
1314 | "is-fullwidth-code-point@^3.0.0":
1315 | "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
1316 | "resolved" "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
1317 | "version" "3.0.0"
1318 |
1319 | "is-glob@^4.0.0", "is-glob@^4.0.1":
1320 | "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
1321 | "resolved" "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz"
1322 | "version" "4.0.3"
1323 | dependencies:
1324 | "is-extglob" "^2.1.1"
1325 |
1326 | "is-what@^3.14.1":
1327 | "integrity" "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA=="
1328 | "resolved" "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz"
1329 | "version" "3.14.1"
1330 |
1331 | "isexe@^2.0.0":
1332 | "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1333 | "resolved" "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz"
1334 | "version" "2.0.0"
1335 |
1336 | "js-tokens@^4.0.0":
1337 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1338 | "resolved" "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz"
1339 | "version" "4.0.0"
1340 |
1341 | "js-yaml@^3.13.1":
1342 | "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="
1343 | "resolved" "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz"
1344 | "version" "3.14.1"
1345 | dependencies:
1346 | "argparse" "^1.0.7"
1347 | "esprima" "^4.0.0"
1348 |
1349 | "jsesc@^2.5.1":
1350 | "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
1351 | "resolved" "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz"
1352 | "version" "2.5.2"
1353 |
1354 | "json-schema-traverse@^0.4.1":
1355 | "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1356 | "resolved" "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
1357 | "version" "0.4.1"
1358 |
1359 | "json-schema-traverse@^1.0.0":
1360 | "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
1361 | "resolved" "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
1362 | "version" "1.0.0"
1363 |
1364 | "json-stable-stringify-without-jsonify@^1.0.1":
1365 | "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
1366 | "resolved" "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
1367 | "version" "1.0.1"
1368 |
1369 | "json5@^2.2.1":
1370 | "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
1371 | "resolved" "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz"
1372 | "version" "2.2.1"
1373 |
1374 | "klona@^2.0.4":
1375 | "integrity" "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ=="
1376 | "resolved" "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz"
1377 | "version" "2.0.5"
1378 |
1379 | "less-loader@^10.2.0":
1380 | "integrity" "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg=="
1381 | "resolved" "https://registry.npmmirror.com/less-loader/-/less-loader-10.2.0.tgz"
1382 | "version" "10.2.0"
1383 | dependencies:
1384 | "klona" "^2.0.4"
1385 |
1386 | "less@*", "less@^3.5.0 || ^4.0.0", "less@^4.1.2":
1387 | "integrity" "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA=="
1388 | "resolved" "https://registry.npmmirror.com/less/-/less-4.1.3.tgz"
1389 | "version" "4.1.3"
1390 | dependencies:
1391 | "copy-anything" "^2.0.1"
1392 | "parse-node-version" "^1.0.1"
1393 | "tslib" "^2.3.0"
1394 | optionalDependencies:
1395 | "errno" "^0.1.1"
1396 | "graceful-fs" "^4.1.2"
1397 | "image-size" "~0.5.0"
1398 | "make-dir" "^2.1.0"
1399 | "mime" "^1.4.1"
1400 | "needle" "^3.1.0"
1401 | "source-map" "~0.6.0"
1402 |
1403 | "levn@^0.4.1":
1404 | "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
1405 | "resolved" "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz"
1406 | "version" "0.4.1"
1407 | dependencies:
1408 | "prelude-ls" "^1.2.1"
1409 | "type-check" "~0.4.0"
1410 |
1411 | "lodash.merge@^4.6.2":
1412 | "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
1413 | "resolved" "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz"
1414 | "version" "4.6.2"
1415 |
1416 | "lodash.truncate@^4.4.2":
1417 | "integrity" "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
1418 | "resolved" "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz"
1419 | "version" "4.4.2"
1420 |
1421 | "lodash@^4.17.21":
1422 | "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1423 | "resolved" "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
1424 | "version" "4.17.21"
1425 |
1426 | "lru-cache@^6.0.0":
1427 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
1428 | "resolved" "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz"
1429 | "version" "6.0.0"
1430 | dependencies:
1431 | "yallist" "^4.0.0"
1432 |
1433 | "magic-string@^0.25.7":
1434 | "integrity" "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="
1435 | "resolved" "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz"
1436 | "version" "0.25.9"
1437 | dependencies:
1438 | "sourcemap-codec" "^1.4.8"
1439 |
1440 | "make-dir@^2.1.0":
1441 | "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="
1442 | "resolved" "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz"
1443 | "version" "2.1.0"
1444 | dependencies:
1445 | "pify" "^4.0.1"
1446 | "semver" "^5.6.0"
1447 |
1448 | "make-error@^1.1.1":
1449 | "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
1450 | "resolved" "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz"
1451 | "version" "1.3.6"
1452 |
1453 | "mime@^1.4.1":
1454 | "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1455 | "resolved" "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz"
1456 | "version" "1.6.0"
1457 |
1458 | "minimatch@^3.0.4", "minimatch@^3.1.1":
1459 | "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
1460 | "resolved" "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
1461 | "version" "3.1.2"
1462 | dependencies:
1463 | "brace-expansion" "^1.1.7"
1464 |
1465 | "mitt@^2.1.0":
1466 | "integrity" "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg=="
1467 | "resolved" "https://registry.npmmirror.com/mitt/-/mitt-2.1.0.tgz"
1468 | "version" "2.1.0"
1469 |
1470 | "ms@^2.1.1":
1471 | "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1472 | "resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
1473 | "version" "2.1.3"
1474 |
1475 | "ms@2.1.2":
1476 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1477 | "resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz"
1478 | "version" "2.1.2"
1479 |
1480 | "nanoid@^3.3.4":
1481 | "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
1482 | "resolved" "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz"
1483 | "version" "3.3.4"
1484 |
1485 | "natural-compare@^1.4.0":
1486 | "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
1487 | "resolved" "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz"
1488 | "version" "1.4.0"
1489 |
1490 | "needle@^3.1.0":
1491 | "integrity" "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw=="
1492 | "resolved" "https://registry.npmmirror.com/needle/-/needle-3.1.0.tgz"
1493 | "version" "3.1.0"
1494 | dependencies:
1495 | "debug" "^3.2.6"
1496 | "iconv-lite" "^0.6.3"
1497 | "sax" "^1.2.4"
1498 |
1499 | "node-releases@^2.0.6":
1500 | "integrity" "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
1501 | "resolved" "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz"
1502 | "version" "2.0.6"
1503 |
1504 | "once@^1.3.0":
1505 | "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
1506 | "resolved" "https://registry.npmmirror.com/once/-/once-1.4.0.tgz"
1507 | "version" "1.4.0"
1508 | dependencies:
1509 | "wrappy" "1"
1510 |
1511 | "optionator@^0.9.1":
1512 | "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="
1513 | "resolved" "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz"
1514 | "version" "0.9.1"
1515 | dependencies:
1516 | "deep-is" "^0.1.3"
1517 | "fast-levenshtein" "^2.0.6"
1518 | "levn" "^0.4.1"
1519 | "prelude-ls" "^1.2.1"
1520 | "type-check" "^0.4.0"
1521 | "word-wrap" "^1.2.3"
1522 |
1523 | "parent-module@^1.0.0":
1524 | "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
1525 | "resolved" "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz"
1526 | "version" "1.0.1"
1527 | dependencies:
1528 | "callsites" "^3.0.0"
1529 |
1530 | "parse-node-version@^1.0.1":
1531 | "integrity" "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA=="
1532 | "resolved" "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz"
1533 | "version" "1.0.1"
1534 |
1535 | "path-is-absolute@^1.0.0":
1536 | "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
1537 | "resolved" "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1538 | "version" "1.0.1"
1539 |
1540 | "path-key@^3.1.0":
1541 | "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
1542 | "resolved" "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz"
1543 | "version" "3.1.1"
1544 |
1545 | "path-parse@^1.0.7":
1546 | "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1547 | "resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
1548 | "version" "1.0.7"
1549 |
1550 | "picocolors@^1.0.0":
1551 | "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1552 | "resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz"
1553 | "version" "1.0.0"
1554 |
1555 | "picomatch@^2.2.2":
1556 | "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
1557 | "resolved" "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
1558 | "version" "2.3.1"
1559 |
1560 | "pify@^4.0.1":
1561 | "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
1562 | "resolved" "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz"
1563 | "version" "4.0.1"
1564 |
1565 | "postcss@^8.1.10", "postcss@^8.4.13":
1566 | "integrity" "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig=="
1567 | "resolved" "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz"
1568 | "version" "8.4.14"
1569 | dependencies:
1570 | "nanoid" "^3.3.4"
1571 | "picocolors" "^1.0.0"
1572 | "source-map-js" "^1.0.2"
1573 |
1574 | "prelude-ls@^1.2.1":
1575 | "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
1576 | "resolved" "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz"
1577 | "version" "1.2.1"
1578 |
1579 | "progress@^2.0.0":
1580 | "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
1581 | "resolved" "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz"
1582 | "version" "2.0.3"
1583 |
1584 | "prr@~1.0.1":
1585 | "integrity" "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
1586 | "resolved" "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz"
1587 | "version" "1.0.1"
1588 |
1589 | "punycode@^2.1.0":
1590 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1591 | "resolved" "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz"
1592 | "version" "2.1.1"
1593 |
1594 | "regexpp@^3.1.0":
1595 | "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
1596 | "resolved" "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz"
1597 | "version" "3.2.0"
1598 |
1599 | "require-from-string@^2.0.2":
1600 | "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
1601 | "resolved" "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz"
1602 | "version" "2.0.2"
1603 |
1604 | "resolve-from@^4.0.0":
1605 | "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
1606 | "resolved" "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz"
1607 | "version" "4.0.0"
1608 |
1609 | "resolve@^1.22.0":
1610 | "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
1611 | "resolved" "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz"
1612 | "version" "1.22.1"
1613 | dependencies:
1614 | "is-core-module" "^2.9.0"
1615 | "path-parse" "^1.0.7"
1616 | "supports-preserve-symlinks-flag" "^1.0.0"
1617 |
1618 | "rimraf@^3.0.2":
1619 | "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
1620 | "resolved" "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz"
1621 | "version" "3.0.2"
1622 | dependencies:
1623 | "glob" "^7.1.3"
1624 |
1625 | "rollup@^2.59.0", "rollup@^2.77.0":
1626 | "integrity" "sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g=="
1627 | "resolved" "https://registry.npmmirror.com/rollup/-/rollup-2.77.2.tgz"
1628 | "version" "2.77.2"
1629 | optionalDependencies:
1630 | "fsevents" "~2.3.2"
1631 |
1632 | "safe-buffer@~5.1.1":
1633 | "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1634 | "resolved" "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz"
1635 | "version" "5.1.2"
1636 |
1637 | "safer-buffer@>= 2.1.2 < 3.0.0":
1638 | "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1639 | "resolved" "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz"
1640 | "version" "2.1.2"
1641 |
1642 | "sax@^1.2.4":
1643 | "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
1644 | "resolved" "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz"
1645 | "version" "1.2.4"
1646 |
1647 | "semver@^5.6.0":
1648 | "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
1649 | "resolved" "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
1650 | "version" "5.7.1"
1651 |
1652 | "semver@^6.3.0":
1653 | "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1654 | "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
1655 | "version" "6.3.0"
1656 |
1657 | "semver@^7.2.1":
1658 | "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g=="
1659 | "resolved" "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz"
1660 | "version" "7.3.7"
1661 | dependencies:
1662 | "lru-cache" "^6.0.0"
1663 |
1664 | "shebang-command@^2.0.0":
1665 | "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
1666 | "resolved" "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz"
1667 | "version" "2.0.0"
1668 | dependencies:
1669 | "shebang-regex" "^3.0.0"
1670 |
1671 | "shebang-regex@^3.0.0":
1672 | "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
1673 | "resolved" "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz"
1674 | "version" "3.0.0"
1675 |
1676 | "slice-ansi@^4.0.0":
1677 | "integrity" "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="
1678 | "resolved" "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz"
1679 | "version" "4.0.0"
1680 | dependencies:
1681 | "ansi-styles" "^4.0.0"
1682 | "astral-regex" "^2.0.0"
1683 | "is-fullwidth-code-point" "^3.0.0"
1684 |
1685 | "source-map-js@^1.0.2":
1686 | "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
1687 | "resolved" "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz"
1688 | "version" "1.0.2"
1689 |
1690 | "source-map@^0.6.1", "source-map@~0.6.0":
1691 | "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
1692 | "resolved" "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz"
1693 | "version" "0.6.1"
1694 |
1695 | "sourcemap-codec@^1.4.8":
1696 | "integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
1697 | "resolved" "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
1698 | "version" "1.4.8"
1699 |
1700 | "sprintf-js@~1.0.2":
1701 | "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
1702 | "resolved" "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz"
1703 | "version" "1.0.3"
1704 |
1705 | "string-width@^4.2.3":
1706 | "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="
1707 | "resolved" "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
1708 | "version" "4.2.3"
1709 | dependencies:
1710 | "emoji-regex" "^8.0.0"
1711 | "is-fullwidth-code-point" "^3.0.0"
1712 | "strip-ansi" "^6.0.1"
1713 |
1714 | "strip-ansi@^6.0.0", "strip-ansi@^6.0.1":
1715 | "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
1716 | "resolved" "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz"
1717 | "version" "6.0.1"
1718 | dependencies:
1719 | "ansi-regex" "^5.0.1"
1720 |
1721 | "strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
1722 | "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
1723 | "resolved" "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
1724 | "version" "3.1.1"
1725 |
1726 | "supports-color@^5.3.0":
1727 | "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
1728 | "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz"
1729 | "version" "5.5.0"
1730 | dependencies:
1731 | "has-flag" "^3.0.0"
1732 |
1733 | "supports-color@^7.1.0":
1734 | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
1735 | "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz"
1736 | "version" "7.2.0"
1737 | dependencies:
1738 | "has-flag" "^4.0.0"
1739 |
1740 | "supports-preserve-symlinks-flag@^1.0.0":
1741 | "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
1742 | "resolved" "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1743 | "version" "1.0.0"
1744 |
1745 | "svg-tags@^1.0.0":
1746 | "integrity" "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA=="
1747 | "resolved" "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz"
1748 | "version" "1.0.0"
1749 |
1750 | "table@^6.0.9":
1751 | "integrity" "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA=="
1752 | "resolved" "https://registry.npmmirror.com/table/-/table-6.8.0.tgz"
1753 | "version" "6.8.0"
1754 | dependencies:
1755 | "ajv" "^8.0.1"
1756 | "lodash.truncate" "^4.4.2"
1757 | "slice-ansi" "^4.0.0"
1758 | "string-width" "^4.2.3"
1759 | "strip-ansi" "^6.0.1"
1760 |
1761 | "text-table@^0.2.0":
1762 | "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
1763 | "resolved" "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz"
1764 | "version" "0.2.0"
1765 |
1766 | "to-fast-properties@^2.0.0":
1767 | "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
1768 | "resolved" "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
1769 | "version" "2.0.0"
1770 |
1771 | "ts-node@^10.1.0":
1772 | "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw=="
1773 | "resolved" "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz"
1774 | "version" "10.9.1"
1775 | dependencies:
1776 | "@cspotcode/source-map-support" "^0.8.0"
1777 | "@tsconfig/node10" "^1.0.7"
1778 | "@tsconfig/node12" "^1.0.7"
1779 | "@tsconfig/node14" "^1.0.0"
1780 | "@tsconfig/node16" "^1.0.2"
1781 | "acorn" "^8.4.1"
1782 | "acorn-walk" "^8.1.1"
1783 | "arg" "^4.1.0"
1784 | "create-require" "^1.1.0"
1785 | "diff" "^4.0.1"
1786 | "make-error" "^1.1.1"
1787 | "v8-compile-cache-lib" "^3.0.1"
1788 | "yn" "3.1.1"
1789 |
1790 | "tslib@^2.3.0":
1791 | "integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
1792 | "resolved" "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz"
1793 | "version" "2.4.0"
1794 |
1795 | "type-check@^0.4.0", "type-check@~0.4.0":
1796 | "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
1797 | "resolved" "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz"
1798 | "version" "0.4.0"
1799 | dependencies:
1800 | "prelude-ls" "^1.2.1"
1801 |
1802 | "type-fest@^0.20.2":
1803 | "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
1804 | "resolved" "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz"
1805 | "version" "0.20.2"
1806 |
1807 | "typescript@*", "typescript@^4.2.4", "typescript@>=2.7":
1808 | "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
1809 | "resolved" "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz"
1810 | "version" "4.7.4"
1811 |
1812 | "update-browserslist-db@^1.0.5":
1813 | "integrity" "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q=="
1814 | "resolved" "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz"
1815 | "version" "1.0.5"
1816 | dependencies:
1817 | "escalade" "^3.1.1"
1818 | "picocolors" "^1.0.0"
1819 |
1820 | "uri-js@^4.2.2":
1821 | "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
1822 | "resolved" "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz"
1823 | "version" "4.4.1"
1824 | dependencies:
1825 | "punycode" "^2.1.0"
1826 |
1827 | "v8-compile-cache-lib@^3.0.1":
1828 | "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
1829 | "resolved" "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz"
1830 | "version" "3.0.1"
1831 |
1832 | "v8-compile-cache@^2.0.3":
1833 | "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="
1834 | "resolved" "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
1835 | "version" "2.3.0"
1836 |
1837 | "vite-plugin-css-injected-by-js@^1.5.1":
1838 | "integrity" "sha512-D/xdY9sWijCdoIbp5qiUejVShyTt1omzeyMwoyXWSuaXc9d/RtWdv/v7iv+i8F0KavWhK+U7nmOuxliyeFR+pA=="
1839 | "resolved" "https://registry.npmmirror.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-1.5.1.tgz"
1840 | "version" "1.5.1"
1841 |
1842 | "vite-plugin-eslint@^1.1.2":
1843 | "integrity" "sha512-Kz2HwBeAArmsE0QmWSm+e7CaEQrfMkEZpFw4hngoy6JmERjw7WUH8HLbG1OkreOKX4iIUReOss9N1Mkw4wEk8g=="
1844 | "resolved" "https://registry.npmmirror.com/vite-plugin-eslint/-/vite-plugin-eslint-1.7.0.tgz"
1845 | "version" "1.7.0"
1846 | dependencies:
1847 | "@rollup/pluginutils" "^4.2.1"
1848 | "@types/eslint" "^8.4.5"
1849 | "rollup" "^2.77.0"
1850 |
1851 | "vite@^2.5.10", "vite@^2.5.6", "vite@>=2", "vite@>2.0.0-0":
1852 | "integrity" "sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw=="
1853 | "resolved" "https://registry.npmmirror.com/vite/-/vite-2.9.14.tgz"
1854 | "version" "2.9.14"
1855 | dependencies:
1856 | "esbuild" "^0.14.27"
1857 | "postcss" "^8.4.13"
1858 | "resolve" "^1.22.0"
1859 | "rollup" "^2.59.0"
1860 | optionalDependencies:
1861 | "fsevents" "~2.3.2"
1862 |
1863 | "vue-eslint-parser@^7.10.0":
1864 | "integrity" "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg=="
1865 | "resolved" "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz"
1866 | "version" "7.11.0"
1867 | dependencies:
1868 | "debug" "^4.1.1"
1869 | "eslint-scope" "^5.1.1"
1870 | "eslint-visitor-keys" "^1.1.0"
1871 | "espree" "^6.2.1"
1872 | "esquery" "^1.4.0"
1873 | "lodash" "^4.17.21"
1874 | "semver" "^6.3.0"
1875 |
1876 | "vue-grid-layout@^3.0.0-beta1":
1877 | "integrity" "sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg=="
1878 | "resolved" "https://registry.npmmirror.com/vue-grid-layout/-/vue-grid-layout-3.0.0-beta1.tgz"
1879 | "version" "3.0.0-beta1"
1880 | dependencies:
1881 | "@interactjs/actions" "^1.10.2"
1882 | "@interactjs/auto-start" "^1.10.2"
1883 | "@interactjs/dev-tools" "^1.10.2"
1884 | "@interactjs/interactjs" "^1.10.2"
1885 | "@interactjs/modifiers" "^1.10.2"
1886 | "element-resize-detector" "^1.2.1"
1887 | "mitt" "^2.1.0"
1888 |
1889 | "vue-tsc@^0.38.4":
1890 | "integrity" "sha512-Yoy5phgvGqyF98Fb4mYqboR4Q149jrdcGv5kSmufXJUq++RZJ2iMVG0g6zl+v3t4ORVWkQmRpsV4x2szufZ0LQ=="
1891 | "resolved" "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.38.9.tgz"
1892 | "version" "0.38.9"
1893 | dependencies:
1894 | "@volar/vue-typescript" "0.38.9"
1895 |
1896 | "vue@^3.2.13", "vue@3.2.37":
1897 | "integrity" "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ=="
1898 | "resolved" "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz"
1899 | "version" "3.2.37"
1900 | dependencies:
1901 | "@vue/compiler-dom" "3.2.37"
1902 | "@vue/compiler-sfc" "3.2.37"
1903 | "@vue/runtime-dom" "3.2.37"
1904 | "@vue/server-renderer" "3.2.37"
1905 | "@vue/shared" "3.2.37"
1906 |
1907 | "which@^2.0.1":
1908 | "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
1909 | "resolved" "https://registry.npmmirror.com/which/-/which-2.0.2.tgz"
1910 | "version" "2.0.2"
1911 | dependencies:
1912 | "isexe" "^2.0.0"
1913 |
1914 | "word-wrap@^1.2.3":
1915 | "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
1916 | "resolved" "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz"
1917 | "version" "1.2.3"
1918 |
1919 | "wrappy@1":
1920 | "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
1921 | "resolved" "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz"
1922 | "version" "1.0.2"
1923 |
1924 | "yallist@^4.0.0":
1925 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1926 | "resolved" "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz"
1927 | "version" "4.0.0"
1928 |
1929 | "yarn@^1.22.19":
1930 | "integrity" "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ=="
1931 | "resolved" "https://registry.npmmirror.com/yarn/-/yarn-1.22.19.tgz"
1932 | "version" "1.22.19"
1933 |
1934 | "yn@3.1.1":
1935 | "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
1936 | "resolved" "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz"
1937 | "version" "3.1.1"
1938 |
--------------------------------------------------------------------------------