Commit de5bf757f241a097d62d61adf4d7346b73a09f92

Authored by vben
1 parent a1c3c53c

fix(form): formAction slot not work

CHANGELOG.zh_CN.md
1 ## Wip 1 ## Wip
2 2
  3 +### ✨ Refactor
  4 +
  5 +独立组件配置到 `/@/settings/componentsSetting`
  6 +
3 ### ✨ Features 7 ### ✨ Features
4 8
5 - 新增`mixSideTrigger`配置。用于配置左侧混合模式菜单打开方式。可选`hover`,默认`click` 9 - 新增`mixSideTrigger`配置。用于配置左侧混合模式菜单打开方式。可选`hover`,默认`click`
@@ -16,6 +20,10 @@ @@ -16,6 +20,10 @@
16 - 修复`layout` 收缩展开功能在分割模式下失效 20 - 修复`layout` 收缩展开功能在分割模式下失效
17 - 修复 modal 高度计算错误 21 - 修复 modal 高度计算错误
18 22
  23 +### 🎫 Chores
  24 +
  25 +- 文档更新
  26 +
19 ## 2.0.0-rc.15 (2020-12-31) 27 ## 2.0.0-rc.15 (2020-12-31)
20 28
21 ### ✨ 表格破坏性更新 29 ### ✨ 表格破坏性更新
package.json
1 { 1 {
2 - "name": "vben-admin-2.0", 2 + "name": "vben-admin",
3 "version": "2.0.0-rc.15", 3 "version": "2.0.0-rc.15",
4 "scripts": { 4 "scripts": {
5 "bootstrap": "yarn install", 5 "bootstrap": "yarn install",
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 "path-to-regexp": "^6.2.0", 35 "path-to-regexp": "^6.2.0",
36 "qrcode": "^1.4.4", 36 "qrcode": "^1.4.4",
37 "sortablejs": "^1.12.0", 37 "sortablejs": "^1.12.0",
38 - "vditor": "^3.7.4", 38 + "vditor": "^3.7.5",
39 "vue": "^3.0.5", 39 "vue": "^3.0.5",
40 "vue-i18n": "9.0.0-beta.14", 40 "vue-i18n": "9.0.0-beta.14",
41 "vue-router": "^4.0.2", 41 "vue-router": "^4.0.2",
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 "devDependencies": { 48 "devDependencies": {
49 "@commitlint/cli": "^11.0.0", 49 "@commitlint/cli": "^11.0.0",
50 "@commitlint/config-conventional": "^11.0.0", 50 "@commitlint/config-conventional": "^11.0.0",
51 - "@iconify/json": "^1.1.278", 51 + "@iconify/json": "^1.1.282",
52 "@ls-lint/ls-lint": "^1.9.2", 52 "@ls-lint/ls-lint": "^1.9.2",
53 "@purge-icons/generated": "^0.4.1", 53 "@purge-icons/generated": "^0.4.1",
54 "@types/echarts": "^4.9.3", 54 "@types/echarts": "^4.9.3",
@@ -63,8 +63,8 @@ @@ -63,8 +63,8 @@
63 "@types/sortablejs": "^1.10.6", 63 "@types/sortablejs": "^1.10.6",
64 "@types/yargs": "^15.0.12", 64 "@types/yargs": "^15.0.12",
65 "@types/zxcvbn": "^4.4.0", 65 "@types/zxcvbn": "^4.4.0",
66 - "@typescript-eslint/eslint-plugin": "^4.11.1",  
67 - "@typescript-eslint/parser": "^4.11.1", 66 + "@typescript-eslint/eslint-plugin": "^4.12.0",
  67 + "@typescript-eslint/parser": "^4.12.0",
68 "@vue/compiler-sfc": "^3.0.5", 68 "@vue/compiler-sfc": "^3.0.5",
69 "@vuedx/typecheck": "^0.4.1", 69 "@vuedx/typecheck": "^0.4.1",
70 "@vuedx/typescript-plugin-vue": "^0.4.1", 70 "@vuedx/typescript-plugin-vue": "^0.4.1",
@@ -75,11 +75,11 @@ @@ -75,11 +75,11 @@
75 "cross-env": "^7.0.3", 75 "cross-env": "^7.0.3",
76 "dot-prop": "^6.0.1", 76 "dot-prop": "^6.0.1",
77 "dotenv": "^8.2.0", 77 "dotenv": "^8.2.0",
78 - "eslint": "^7.16.0", 78 + "eslint": "^7.17.0",
79 "eslint-config-prettier": "^7.1.0", 79 "eslint-config-prettier": "^7.1.0",
80 - "eslint-plugin-prettier": "^3.3.0",  
81 - "eslint-plugin-vue": "^7.4.0",  
82 - "esno": "^0.3.0", 80 + "eslint-plugin-prettier": "^3.3.1",
  81 + "eslint-plugin-vue": "^7.4.1",
  82 + "esno": "^0.4.0",
83 "fs-extra": "^9.0.1", 83 "fs-extra": "^9.0.1",
84 "globrex": "^0.1.2", 84 "globrex": "^0.1.2",
85 "husky": "^4.3.6", 85 "husky": "^4.3.6",
src/components/Form/src/BasicForm.vue
@@ -18,10 +18,14 @@ @@ -18,10 +18,14 @@
18 </FormItem> 18 </FormItem>
19 </template> 19 </template>
20 20
21 - <FormAction  
22 - v-bind="{ ...getProps, ...advanceState }"  
23 - @toggle-advanced="handleToggleAdvanced"  
24 - /> 21 + <FormAction v-bind="{ ...getProps, ...advanceState }" @toggle-advanced="handleToggleAdvanced">
  22 + <template
  23 + #[item]="data"
  24 + v-for="item in ['resetBefore', 'submitBefore', 'advanceBefore', 'advanceAfter']"
  25 + >
  26 + <slot :name="item" v-bind="data" />
  27 + </template>
  28 + </FormAction>
25 <slot name="formFooter" /> 29 <slot name="formFooter" />
26 </Row> 30 </Row>
27 </Form> 31 </Form>
src/components/Form/src/hooks/useForm.ts
@@ -88,9 +88,13 @@ export function useForm(props?: Props): UseFormReturnType { @@ -88,9 +88,13 @@ export function useForm(props?: Props): UseFormReturnType {
88 form.setFieldsValue<T>(values); 88 form.setFieldsValue<T>(values);
89 }, 89 },
90 90
91 - appendSchemaByField: async (schema: FormSchema, prefixField?: string | undefined) => { 91 + appendSchemaByField: async (
  92 + schema: FormSchema,
  93 + prefixField: string | undefined,
  94 + first: boolean
  95 + ) => {
92 const form = await getForm(); 96 const form = await getForm();
93 - form.appendSchemaByField(schema, prefixField); 97 + form.appendSchemaByField(schema, prefixField, first);
94 }, 98 },
95 99
96 submit: async (): Promise<any> => { 100 submit: async (): Promise<any> => {
src/components/Form/src/types/form.ts
@@ -33,7 +33,11 @@ export interface FormActionType { @@ -33,7 +33,11 @@ export interface FormActionType {
33 updateSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => Promise<void>; 33 updateSchema: (data: Partial<FormSchema> | Partial<FormSchema>[]) => Promise<void>;
34 setProps: (formProps: Partial<FormProps>) => Promise<void>; 34 setProps: (formProps: Partial<FormProps>) => Promise<void>;
35 removeSchemaByFiled: (field: string | string[]) => Promise<void>; 35 removeSchemaByFiled: (field: string | string[]) => Promise<void>;
36 - appendSchemaByField: (schema: FormSchema, prefixField?: string) => Promise<void>; 36 + appendSchemaByField: (
  37 + schema: FormSchema,
  38 + prefixField: string | undefined,
  39 + first: boolean | undefined
  40 + ) => Promise<void>;
37 validateFields: (nameList?: NamePath[]) => Promise<any>; 41 validateFields: (nameList?: NamePath[]) => Promise<any>;
38 validate: (nameList?: NamePath[]) => Promise<any>; 42 validate: (nameList?: NamePath[]) => Promise<any>;
39 scrollToField: (name: NamePath, options?: ScrollOptions) => Promise<void>; 43 scrollToField: (name: NamePath, options?: ScrollOptions) => Promise<void>;
src/components/Page/src/PageWrapper.vue
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 contentStyle: { 45 contentStyle: {
46 type: Object as PropType<CSSProperties>, 46 type: Object as PropType<CSSProperties>,
47 }, 47 },
48 - contentBackgrond: propTypes.bool, 48 + contentBackground: propTypes.bool,
49 contentFullHeight: propTypes.bool, 49 contentFullHeight: propTypes.bool,
50 }, 50 },
51 setup(props, { slots }) { 51 setup(props, { slots }) {
@@ -71,8 +71,8 @@ @@ -71,8 +71,8 @@
71 71
72 const getContentStyle = computed( 72 const getContentStyle = computed(
73 (): CSSProperties => { 73 (): CSSProperties => {
74 - const { contentBackgrond, contentFullHeight, contentStyle } = props;  
75 - const bg = contentBackgrond ? { backgroundColor: '#fff' } : {}; 74 + const { contentBackground, contentFullHeight, contentStyle } = props;
  75 + const bg = contentBackground ? { backgroundColor: '#fff' } : {};
76 if (!contentFullHeight) { 76 if (!contentFullHeight) {
77 return { ...bg, ...contentStyle }; 77 return { ...bg, ...contentStyle };
78 } 78 }
src/components/Table/src/BasicTable.vue
@@ -87,6 +87,7 @@ @@ -87,6 +87,7 @@
87 'row-mouseleave', 87 'row-mouseleave',
88 'edit-end', 88 'edit-end',
89 'edit-cancel', 89 'edit-cancel',
  90 + 'edit-row-end',
90 ], 91 ],
91 setup(props, { attrs, emit, slots }) { 92 setup(props, { attrs, emit, slots }) {
92 const tableElRef = ref<ComponentRef>(null); 93 const tableElRef = ref<ComponentRef>(null);
src/components/Table/src/components/editable/EditableCell.vue
@@ -210,7 +210,7 @@ @@ -210,7 +210,7 @@
210 return true; 210 return true;
211 } 211 }
212 212
213 - async function handleSubmit() { 213 + async function handleSubmit(needEmit = true) {
214 const isPass = await handleSubmiRule(); 214 const isPass = await handleSubmiRule();
215 if (!isPass) return false; 215 if (!isPass) return false;
216 const { column, index } = props; 216 const { column, index } = props;
@@ -220,7 +220,7 @@ @@ -220,7 +220,7 @@
220 const dataKey = (dataIndex || key) as string; 220 const dataKey = (dataIndex || key) as string;
221 221
222 const record = await table.updateTableData(index, dataKey, unref(getValues)); 222 const record = await table.updateTableData(index, dataKey, unref(getValues));
223 - table.emit?.('edit-end', { record, index, key, value: unref(currentValueRef) }); 223 + needEmit && table.emit?.('edit-end', { record, index, key, value: unref(currentValueRef) });
224 isEdit.value = false; 224 isEdit.value = false;
225 } 225 }
226 226
@@ -274,7 +274,8 @@ @@ -274,7 +274,8 @@
274 274
275 if (!pass) return; 275 if (!pass) return;
276 const submitFns = props.record?.submitCbs || []; 276 const submitFns = props.record?.submitCbs || [];
277 - submitFns.forEach((fn) => fn()); 277 + submitFns.forEach((fn) => fn(false));
  278 + table.emit?.('edit-row-end');
278 return true; 279 return true;
279 } 280 }
280 // isArray(props.record?.submitCbs) && props.record?.submitCbs.forEach((fn) => fn()); 281 // isArray(props.record?.submitCbs) && props.record?.submitCbs.forEach((fn) => fn());
src/hooks/setting/useMenuSetting.ts
@@ -93,11 +93,10 @@ const getCalcContentWidth = computed(() =&gt; { @@ -93,11 +93,10 @@ const getCalcContentWidth = computed(() =&gt; {
93 unref(getIsTopMenu) || !unref(getShowMenu) || (unref(getSplit) && unref(getMenuHidden)) 93 unref(getIsTopMenu) || !unref(getShowMenu) || (unref(getSplit) && unref(getMenuHidden))
94 ? 0 94 ? 0
95 : unref(getIsMixSidebar) 95 : unref(getIsMixSidebar)
96 - ? unref(getCollapsed)  
97 - ? SIDE_BAR_MINI_WIDTH  
98 - : SIDE_BAR_SHOW_TIT_MINI_WIDTH +  
99 - (unref(getMixSideFixed) && unref(mixSideHasChildren) ? unref(getRealWidth) : 0) 96 + ? (unref(getCollapsed) ? SIDE_BAR_MINI_WIDTH : SIDE_BAR_SHOW_TIT_MINI_WIDTH) +
  97 + (unref(getMixSideFixed) && unref(mixSideHasChildren) ? unref(getRealWidth) : 0)
100 : unref(getRealWidth); 98 : unref(getRealWidth);
  99 +
101 return `calc(100% - ${unref(width)}px)`; 100 return `calc(100% - ${unref(width)}px)`;
102 }); 101 });
103 102
src/utils/http/axios/index.ts
@@ -154,8 +154,8 @@ const transform: AxiosTransform = { @@ -154,8 +154,8 @@ const transform: AxiosTransform = {
154 const { t } = useI18n(); 154 const { t } = useI18n();
155 errorStore.setupErrorHandle(error); 155 errorStore.setupErrorHandle(error);
156 const { response, code, message } = error || {}; 156 const { response, code, message } = error || {};
157 - const msg: string = response?.data?.error ? response.data.error.message : '';  
158 - const err: string = error?.toString(); 157 + const msg: string = response?.data?.error?.message ?? '';
  158 + const err: string = error?.toString?.() ?? '';
159 try { 159 try {
160 if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) { 160 if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) {
161 createMessage.error(t('sys.api.apiTimeoutMessage')); 161 createMessage.error(t('sys.api.apiTimeoutMessage'));
src/views/demo/page/desc/basic/index.vue
1 <template> 1 <template>
2 - <PageWrapper title="基础详情页" contentBackgrond> 2 + <PageWrapper title="基础详情页" contentBackground>
3 <Description 3 <Description
4 size="middle" 4 size="middle"
5 title="退款申请" 5 title="退款申请"
src/views/demo/page/desc/high/index.vue
1 <template> 1 <template>
2 - <PageWrapper title="单号:234231029431" contentBackgrond> 2 + <PageWrapper title="单号:234231029431" contentBackground>
3 <template #extra> 3 <template #extra>
4 <a-button> 操作一 </a-button> 4 <a-button> 操作一 </a-button>
5 <a-button> 操作二 </a-button> 5 <a-button> 操作二 </a-button>
src/views/demo/page/form/basic/index.vue
1 <template> 1 <template>
2 <PageWrapper 2 <PageWrapper
3 title="基础表单" 3 title="基础表单"
4 - contentBackgrond 4 + contentBackground
5 content=" 表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。" 5 content=" 表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。"
6 > 6 >
7 <BasicForm @register="register" /> 7 <BasicForm @register="register" />
src/views/demo/page/form/high/index.vue
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <PageWrapper 2 <PageWrapper
3 class="high-form" 3 class="high-form"
4 title="高级表单" 4 title="高级表单"
5 - contentBackgrond 5 + contentBackground
6 content=" 高级表单常见于一次性输入和提交大批量数据的场景。" 6 content=" 高级表单常见于一次性输入和提交大批量数据的场景。"
7 > 7 >
8 <a-card title="仓库管理" :bordered="false"> 8 <a-card title="仓库管理" :bordered="false">
src/views/demo/page/form/step/index.vue
1 <template> 1 <template>
2 <PageWrapper 2 <PageWrapper
3 title="分步表单" 3 title="分步表单"
4 - contentBackgrond 4 + contentBackground
5 content=" 将一个冗长或用户不熟悉的表单任务分成多个步骤,指导用户完成。" 5 content=" 将一个冗长或用户不熟悉的表单任务分成多个步骤,指导用户完成。"
6 > 6 >
7 <div class="step-form-form"> 7 <div class="step-form-form">
src/views/demo/permission/back/Btn.vue
1 <template> 1 <template>
2 - <PageWrapper contentBackgrond title="按钮权限控制" contentClass="p-4"> 2 + <PageWrapper contentBackground title="按钮权限控制" contentClass="p-4">
3 <Alert message="刷新后会还原" show-icon /> 3 <Alert message="刷新后会还原" show-icon />
4 4
5 <CurrentPermissionMode /> 5 <CurrentPermissionMode />
src/views/demo/permission/back/index.vue
1 <template> 1 <template>
2 <PageWrapper 2 <PageWrapper
3 title="后台权限示例" 3 title="后台权限示例"
4 - contentBackgrond 4 + contentBackground
5 contentClass="p-4" 5 contentClass="p-4"
6 content="目前mock了两组数据, id为1 和 2 具体返回的菜单可以在mock/sys/menu.ts内查看" 6 content="目前mock了两组数据, id为1 和 2 具体返回的菜单可以在mock/sys/menu.ts内查看"
7 > 7 >
src/views/demo/permission/front/Btn.vue
1 <template> 1 <template>
2 <PageWrapper 2 <PageWrapper
3 title="前端权限按钮示例" 3 title="前端权限按钮示例"
4 - contentBackgrond 4 + contentBackground
5 contentClass="p-4" 5 contentClass="p-4"
6 content="由于刷新的时候会请求用户信息接口,会根据接口重置角色信息,所以刷新后界面会恢复原样,如果不需要,可以注释 src/layout/default/index内的获取用户信息接口" 6 content="由于刷新的时候会请求用户信息接口,会根据接口重置角色信息,所以刷新后界面会恢复原样,如果不需要,可以注释 src/layout/default/index内的获取用户信息接口"
7 > 7 >
src/views/demo/permission/front/index.vue
1 <template> 1 <template>
2 <PageWrapper 2 <PageWrapper
3 title="前端权限示例" 3 title="前端权限示例"
4 - contentBackgrond 4 + contentBackground
5 contentClass="p-4" 5 contentClass="p-4"
6 content="由于刷新的时候会请求用户信息接口,会根据接口重置角色信息,所以刷新后界面会恢复原样,如果不需要,可以注释 src/layout/default/index内的获取用户信息接口" 6 content="由于刷新的时候会请求用户信息接口,会根据接口重置角色信息,所以刷新后界面会恢复原样,如果不需要,可以注释 src/layout/default/index内的获取用户信息接口"
7 > 7 >
src/views/demo/tree/ActionTree.vue
1 <template> 1 <template>
2 - <PageWrapper title="Tree函数操作示例" contentBackgrond contentClass="p-4"> 2 + <PageWrapper title="Tree函数操作示例" contentBackground contentClass="p-4">
3 <div class="mb-4"> 3 <div class="mb-4">
4 <a-button @click="handleLevel(2)" class="mr-2">显示到第2级</a-button> 4 <a-button @click="handleLevel(2)" class="mr-2">显示到第2级</a-button>
5 <a-button @click="handleLevel(1)" class="mr-2">显示到第1级</a-button> 5 <a-button @click="handleLevel(1)" class="mr-2">显示到第1级</a-button>
yarn.lock
@@ -1119,10 +1119,10 @@ @@ -1119,10 +1119,10 @@
1119 resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.5.tgz#ac725a2ea40a0626d02dfb31482050751a0e6d84" 1119 resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.5.tgz#ac725a2ea40a0626d02dfb31482050751a0e6d84"
1120 integrity sha512-A65cga+dug1Z5Y6T7euq1Fnk5Wc7Qu6yn6mVBAfo2SnPndekl9JC+eBe2M3RdTJIdIi10p7OUs7ntKKQLK1j5w== 1120 integrity sha512-A65cga+dug1Z5Y6T7euq1Fnk5Wc7Qu6yn6mVBAfo2SnPndekl9JC+eBe2M3RdTJIdIi10p7OUs7ntKKQLK1j5w==
1121 1121
1122 -"@iconify/json@^1.1.278":  
1123 - version "1.1.278"  
1124 - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.278.tgz#61e87b70ee2935d9096fa8e40f5b976796bc8d0b"  
1125 - integrity sha512-mjlzM6e1c14hPx6Z4AALD1Pc1KPhwK8BpdgBMQsCmKgdzDDA+XzONWBW6nnBrPA+i8OQooDGIpdP/pPvltf/ww== 1122 +"@iconify/json@^1.1.282":
  1123 + version "1.1.282"
  1124 + resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.282.tgz#d603572c14c2d1d2cc6dbeb3fb83353958a8c5d3"
  1125 + integrity sha512-eLbN5gKOJeN9M1DG6+Z/HXR1WDku9E4CLvEtETPJLN5Jzsz26jSjvFpzdF10tpY40qDynqAHAktEjMmRL1IRyA==
1126 1126
1127 "@intlify/core-base@9.0.0-beta.14": 1127 "@intlify/core-base@9.0.0-beta.14":
1128 version "9.0.0-beta.14" 1128 version "9.0.0-beta.14"
@@ -1706,61 +1706,61 @@ @@ -1706,61 +1706,61 @@
1706 resolved "https://registry.npmjs.org/@types/zxcvbn/-/zxcvbn-4.4.0.tgz#fbc1d941cc6d9d37d18405c513ba6b294f89b609" 1706 resolved "https://registry.npmjs.org/@types/zxcvbn/-/zxcvbn-4.4.0.tgz#fbc1d941cc6d9d37d18405c513ba6b294f89b609"
1707 integrity sha512-GQLOT+SN20a+AI51y3fAimhyTF4Y0RG+YP3gf91OibIZ7CJmPFgoZi+ZR5a+vRbS01LbQosITWum4ATmJ1Z6Pg== 1707 integrity sha512-GQLOT+SN20a+AI51y3fAimhyTF4Y0RG+YP3gf91OibIZ7CJmPFgoZi+ZR5a+vRbS01LbQosITWum4ATmJ1Z6Pg==
1708 1708
1709 -"@typescript-eslint/eslint-plugin@^4.11.1":  
1710 - version "4.11.1"  
1711 - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.1.tgz#7579c6d17ad862154c10bc14b40e5427b729e209"  
1712 - integrity sha512-fABclAX2QIEDmTMk6Yd7Muv1CzFLwWM4505nETzRHpP3br6jfahD9UUJkhnJ/g2m7lwfz8IlswcwGGPGiq9exw== 1709 +"@typescript-eslint/eslint-plugin@^4.12.0":
  1710 + version "4.12.0"
  1711 + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.12.0.tgz#00d1b23b40b58031e6d7c04a5bc6c1a30a2e834a"
  1712 + integrity sha512-wHKj6q8s70sO5i39H2g1gtpCXCvjVszzj6FFygneNFyIAxRvNSVz9GML7XpqrB9t7hNutXw+MHnLN/Ih6uyB8Q==
1713 dependencies: 1713 dependencies:
1714 - "@typescript-eslint/experimental-utils" "4.11.1"  
1715 - "@typescript-eslint/scope-manager" "4.11.1" 1714 + "@typescript-eslint/experimental-utils" "4.12.0"
  1715 + "@typescript-eslint/scope-manager" "4.12.0"
1716 debug "^4.1.1" 1716 debug "^4.1.1"
1717 functional-red-black-tree "^1.0.1" 1717 functional-red-black-tree "^1.0.1"
1718 regexpp "^3.0.0" 1718 regexpp "^3.0.0"
1719 semver "^7.3.2" 1719 semver "^7.3.2"
1720 tsutils "^3.17.1" 1720 tsutils "^3.17.1"
1721 1721
1722 -"@typescript-eslint/experimental-utils@4.11.1":  
1723 - version "4.11.1"  
1724 - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz#2dad3535b878c25c7424e40bfa79d899f3f485bc"  
1725 - integrity sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g== 1722 +"@typescript-eslint/experimental-utils@4.12.0":
  1723 + version "4.12.0"
  1724 + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.12.0.tgz#372838e76db76c9a56959217b768a19f7129546b"
  1725 + integrity sha512-MpXZXUAvHt99c9ScXijx7i061o5HEjXltO+sbYfZAAHxv3XankQkPaNi5myy0Yh0Tyea3Hdq1pi7Vsh0GJb0fA==
1726 dependencies: 1726 dependencies:
1727 "@types/json-schema" "^7.0.3" 1727 "@types/json-schema" "^7.0.3"
1728 - "@typescript-eslint/scope-manager" "4.11.1"  
1729 - "@typescript-eslint/types" "4.11.1"  
1730 - "@typescript-eslint/typescript-estree" "4.11.1" 1728 + "@typescript-eslint/scope-manager" "4.12.0"
  1729 + "@typescript-eslint/types" "4.12.0"
  1730 + "@typescript-eslint/typescript-estree" "4.12.0"
1731 eslint-scope "^5.0.0" 1731 eslint-scope "^5.0.0"
1732 eslint-utils "^2.0.0" 1732 eslint-utils "^2.0.0"
1733 1733
1734 -"@typescript-eslint/parser@^4.11.1":  
1735 - version "4.11.1"  
1736 - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.11.1.tgz#981e18de2e019d6ca312596615f92e8f6f6598ed"  
1737 - integrity sha512-BJ3jwPQu1jeynJ5BrjLuGfK/UJu6uwHxJ/di7sanqmUmxzmyIcd3vz58PMR7wpi8k3iWq2Q11KMYgZbUpRoIPw== 1734 +"@typescript-eslint/parser@^4.12.0":
  1735 + version "4.12.0"
  1736 + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.12.0.tgz#e1cf30436e4f916c31fcc962158917bd9e9d460a"
  1737 + integrity sha512-9XxVADAo9vlfjfoxnjboBTxYOiNY93/QuvcPgsiKvHxW6tOZx1W4TvkIQ2jB3k5M0pbFP5FlXihLK49TjZXhuQ==
1738 dependencies: 1738 dependencies:
1739 - "@typescript-eslint/scope-manager" "4.11.1"  
1740 - "@typescript-eslint/types" "4.11.1"  
1741 - "@typescript-eslint/typescript-estree" "4.11.1" 1739 + "@typescript-eslint/scope-manager" "4.12.0"
  1740 + "@typescript-eslint/types" "4.12.0"
  1741 + "@typescript-eslint/typescript-estree" "4.12.0"
1742 debug "^4.1.1" 1742 debug "^4.1.1"
1743 1743
1744 -"@typescript-eslint/scope-manager@4.11.1":  
1745 - version "4.11.1"  
1746 - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz#72dc2b60b0029ab0888479b12bf83034920b4b69"  
1747 - integrity sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ== 1744 +"@typescript-eslint/scope-manager@4.12.0":
  1745 + version "4.12.0"
  1746 + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.12.0.tgz#beeb8beca895a07b10c593185a5612f1085ef279"
  1747 + integrity sha512-QVf9oCSVLte/8jvOsxmgBdOaoe2J0wtEmBr13Yz0rkBNkl5D8bfnf6G4Vhox9qqMIoG7QQoVwd2eG9DM/ge4Qg==
1748 dependencies: 1748 dependencies:
1749 - "@typescript-eslint/types" "4.11.1"  
1750 - "@typescript-eslint/visitor-keys" "4.11.1" 1749 + "@typescript-eslint/types" "4.12.0"
  1750 + "@typescript-eslint/visitor-keys" "4.12.0"
1751 1751
1752 -"@typescript-eslint/types@4.11.1":  
1753 - version "4.11.1"  
1754 - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.11.1.tgz#3ba30c965963ef9f8ced5a29938dd0c465bd3e05"  
1755 - integrity sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA== 1752 +"@typescript-eslint/types@4.12.0":
  1753 + version "4.12.0"
  1754 + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.12.0.tgz#fb891fe7ccc9ea8b2bbd2780e36da45d0dc055e5"
  1755 + integrity sha512-N2RhGeheVLGtyy+CxRmxdsniB7sMSCfsnbh8K/+RUIXYYq3Ub5+sukRCjVE80QerrUBvuEvs4fDhz5AW/pcL6g==
1756 1756
1757 -"@typescript-eslint/typescript-estree@4.11.1":  
1758 - version "4.11.1"  
1759 - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz#a4416b4a65872a48773b9e47afabdf7519eb10bc"  
1760 - integrity sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw== 1757 +"@typescript-eslint/typescript-estree@4.12.0":
  1758 + version "4.12.0"
  1759 + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.12.0.tgz#3963418c850f564bdab3882ae23795d115d6d32e"
  1760 + integrity sha512-gZkFcmmp/CnzqD2RKMich2/FjBTsYopjiwJCroxqHZIY11IIoN0l5lKqcgoAPKHt33H2mAkSfvzj8i44Jm7F4w==
1761 dependencies: 1761 dependencies:
1762 - "@typescript-eslint/types" "4.11.1"  
1763 - "@typescript-eslint/visitor-keys" "4.11.1" 1762 + "@typescript-eslint/types" "4.12.0"
  1763 + "@typescript-eslint/visitor-keys" "4.12.0"
1764 debug "^4.1.1" 1764 debug "^4.1.1"
1765 globby "^11.0.1" 1765 globby "^11.0.1"
1766 is-glob "^4.0.1" 1766 is-glob "^4.0.1"
@@ -1768,12 +1768,12 @@ @@ -1768,12 +1768,12 @@
1768 semver "^7.3.2" 1768 semver "^7.3.2"
1769 tsutils "^3.17.1" 1769 tsutils "^3.17.1"
1770 1770
1771 -"@typescript-eslint/visitor-keys@4.11.1":  
1772 - version "4.11.1"  
1773 - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz#4c050a4c1f7239786e2dd4e69691436143024e05"  
1774 - integrity sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg== 1771 +"@typescript-eslint/visitor-keys@4.12.0":
  1772 + version "4.12.0"
  1773 + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.12.0.tgz#a470a79be6958075fa91c725371a83baf428a67a"
  1774 + integrity sha512-hVpsLARbDh4B9TKYz5cLbcdMIOAoBYgFPCSP9FFS/liSF+b33gVNq8JHY3QGhHNVz85hObvL7BEYLlgx553WCw==
1775 dependencies: 1775 dependencies:
1776 - "@typescript-eslint/types" "4.11.1" 1776 + "@typescript-eslint/types" "4.12.0"
1777 eslint-visitor-keys "^2.0.0" 1777 eslint-visitor-keys "^2.0.0"
1778 1778
1779 "@vue/compiler-core@3.0.4", "@vue/compiler-core@^3.0.0", "@vue/compiler-core@^3.0.1", "@vue/compiler-core@^3.0.2": 1779 "@vue/compiler-core@3.0.4", "@vue/compiler-core@^3.0.0", "@vue/compiler-core@^3.0.1", "@vue/compiler-core@^3.0.2":
@@ -3611,21 +3611,26 @@ es-module-lexer@^0.3.25: @@ -3611,21 +3611,26 @@ es-module-lexer@^0.3.25:
3611 resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b" 3611 resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b"
3612 integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA== 3612 integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==
3613 3613
3614 -esbuild-register@^1.1.1:  
3615 - version "1.1.1"  
3616 - resolved "https://registry.npmjs.org/esbuild-register/-/esbuild-register-1.1.1.tgz#7d50e87ac0b9000085d9e6d9a78e4c2223fcce83"  
3617 - integrity sha512-hAPWuaUkPDLXCENc/AigJZaaDCvCkpmghRw8XPyT+rk08JHcIgUrmw1uabbUTfa6B6J9Wo2bFufb01JjbmzcfQ== 3614 +esbuild-register@^1.2.1:
  3615 + version "1.2.1"
  3616 + resolved "https://registry.npmjs.org/esbuild-register/-/esbuild-register-1.2.1.tgz#a430decedd7cb83ecf05141c7a7050b990724d41"
  3617 + integrity sha512-Pg00Woeg+2hpRyZkxSjvBUIabQ6DZIdCUgeBCzWgYfiFCnetQF8Cmrr5/+M/rMJCP/trhNlV0Kc4KnbYssIrFg==
3618 dependencies: 3618 dependencies:
3619 joycon "^2.2.5" 3619 joycon "^2.2.5"
3620 pirates "^4.0.1" 3620 pirates "^4.0.1"
3621 source-map-support "^0.5.19" 3621 source-map-support "^0.5.19"
3622 strip-json-comments "^3.1.1" 3622 strip-json-comments "^3.1.1"
3623 3623
3624 -esbuild@^0.8.12, esbuild@^0.8.17, esbuild@^0.8.18: 3624 +esbuild@^0.8.12, esbuild@^0.8.18:
3625 version "0.8.21" 3625 version "0.8.21"
3626 resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.21.tgz#c431f8af457795c2fecb1b2873cb8eaef4e5b53c" 3626 resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.21.tgz#c431f8af457795c2fecb1b2873cb8eaef4e5b53c"
3627 integrity sha512-vRRx5MZmiekw2R7jK5BppvBUFCJA0Zkl0wYxrDmyUvMPBcQC/xJvxJUM4R+Hgjgb3gp5P1W655AsuoqDeQQDVw== 3627 integrity sha512-vRRx5MZmiekw2R7jK5BppvBUFCJA0Zkl0wYxrDmyUvMPBcQC/xJvxJUM4R+Hgjgb3gp5P1W655AsuoqDeQQDVw==
3628 3628
  3629 +esbuild@^0.8.29:
  3630 + version "0.8.30"
  3631 + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.30.tgz#3d057ff9ffe6d5d30bccb0afe8cc92a2e69622d3"
  3632 + integrity sha512-gCJQYUMO9QNrfpNOIiCnFoX41nWiPFCvURBQF+qWckyJ7gmw2xCShdKCXvS+RZcQ5krcxEOLIkzujqclePKhfw==
  3633 +
3629 escalade@^3.1.1: 3634 escalade@^3.1.1:
3630 version "3.1.1" 3635 version "3.1.1"
3631 resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 3636 resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -3646,17 +3651,17 @@ eslint-config-prettier@^7.1.0: @@ -3646,17 +3651,17 @@ eslint-config-prettier@^7.1.0:
3646 resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz#5402eb559aa94b894effd6bddfa0b1ca051c858f" 3651 resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz#5402eb559aa94b894effd6bddfa0b1ca051c858f"
3647 integrity sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA== 3652 integrity sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA==
3648 3653
3649 -eslint-plugin-prettier@^3.3.0:  
3650 - version "3.3.0"  
3651 - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz#61e295349a65688ffac0b7808ef0a8244bdd8d40"  
3652 - integrity sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ== 3654 +eslint-plugin-prettier@^3.3.1:
  3655 + version "3.3.1"
  3656 + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7"
  3657 + integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==
3653 dependencies: 3658 dependencies:
3654 prettier-linter-helpers "^1.0.0" 3659 prettier-linter-helpers "^1.0.0"
3655 3660
3656 -eslint-plugin-vue@^7.4.0:  
3657 - version "7.4.0"  
3658 - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.4.0.tgz#27324cbe8f00705708c9fa9e8c0401d8f0742c20"  
3659 - integrity sha512-bYJV3nHSGV5IL40Ti1231vlY8I2DzjDHYyDjRv9Z1koEI7qyV2RR3+uKMafHdOioXYH9W3e1+iwe4wy7FIBNCQ== 3661 +eslint-plugin-vue@^7.4.1:
  3662 + version "7.4.1"
  3663 + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.4.1.tgz#2526ef0c010c218824a89423dbe6ddbe76f04fd6"
  3664 + integrity sha512-W/xPNHYIkGJphLUM2UIYYGKbRw3BcDoMIPY9lu1TTa2YLiZoxurddfnmOP+UOVywxb5vi438ejzwvKdZqydtIw==
3660 dependencies: 3665 dependencies:
3661 eslint-utils "^2.1.0" 3666 eslint-utils "^2.1.0"
3662 natural-compare "^1.4.0" 3667 natural-compare "^1.4.0"
@@ -3688,10 +3693,10 @@ eslint-visitor-keys@^2.0.0: @@ -3688,10 +3693,10 @@ eslint-visitor-keys@^2.0.0:
3688 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" 3693 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
3689 integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== 3694 integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
3690 3695
3691 -eslint@^7.16.0:  
3692 - version "7.16.0"  
3693 - resolved "https://registry.npmjs.org/eslint/-/eslint-7.16.0.tgz#a761605bf9a7b32d24bb7cde59aeb0fd76f06092"  
3694 - integrity sha512-iVWPS785RuDA4dWuhhgXTNrGxHHK3a8HLSMBgbbU59ruJDubUraXN8N5rn7kb8tG6sjg74eE0RA3YWT51eusEw== 3696 +eslint@^7.17.0:
  3697 + version "7.17.0"
  3698 + resolved "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0"
  3699 + integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==
3695 dependencies: 3700 dependencies:
3696 "@babel/code-frame" "^7.0.0" 3701 "@babel/code-frame" "^7.0.0"
3697 "@eslint/eslintrc" "^0.2.2" 3702 "@eslint/eslintrc" "^0.2.2"
@@ -3731,19 +3736,13 @@ eslint@^7.16.0: @@ -3731,19 +3736,13 @@ eslint@^7.16.0:
3731 text-table "^0.2.0" 3736 text-table "^0.2.0"
3732 v8-compile-cache "^2.0.3" 3737 v8-compile-cache "^2.0.3"
3733 3738
3734 -esm@^3.2.25:  
3735 - version "3.2.25"  
3736 - resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10"  
3737 - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==  
3738 -  
3739 -esno@^0.3.0:  
3740 - version "0.3.0"  
3741 - resolved "https://registry.npmjs.org/esno/-/esno-0.3.0.tgz#c818996bdaaf2deaf81413d6f45538ffa6e41b42"  
3742 - integrity sha512-4sF/j8jruQv9jScU8tNkgoDFLjyGxTTB8bmjRmWHyNNygra3WS3X0U1Cc7GuOvfSEjn3NDS57P0LRnzgiupKJg== 3739 +esno@^0.4.0:
  3740 + version "0.4.0"
  3741 + resolved "https://registry.npmjs.org/esno/-/esno-0.4.0.tgz#3d5473e65895f3e917818b4b8e1a9465a4ce72a7"
  3742 + integrity sha512-YBT1akVDWC+jIYgwwb2LjOQT0OuMU1ejWr1ygcO0FCqUfRjRSAIKgDEp9io7tnpbaedXIpGjgA9yFOuqvwEjAw==
3743 dependencies: 3743 dependencies:
3744 - esbuild "^0.8.17"  
3745 - esbuild-register "^1.1.1"  
3746 - esm "^3.2.25" 3744 + esbuild "^0.8.29"
  3745 + esbuild-register "^1.2.1"
3747 3746
3748 espree@^6.2.1: 3747 espree@^6.2.1:
3749 version "6.2.1" 3748 version "6.2.1"
@@ -8239,10 +8238,10 @@ vary@^1.1.2: @@ -8239,10 +8238,10 @@ vary@^1.1.2:
8239 resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 8238 resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
8240 integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 8239 integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
8241 8240
8242 -vditor@^3.7.4:  
8243 - version "3.7.4"  
8244 - resolved "https://registry.npmjs.org/vditor/-/vditor-3.7.4.tgz#e2ec46f009e99d4ef1804d4ef355d44be7efb9a3"  
8245 - integrity sha512-NfpXCoiVEeaORwGPNaxVDQGHs6Sib2RlI+slSFc5eXV8pFfYM639O6iOLjG2Ks+lN7nM9SsmpcGXwnQ0/S90xA== 8241 +vditor@^3.7.5:
  8242 + version "3.7.5"
  8243 + resolved "https://registry.npmjs.org/vditor/-/vditor-3.7.5.tgz#bbba003aea4a41861dfdeca06f8f39325f488b4d"
  8244 + integrity sha512-1wtSeVl/7l8XY1NG1i5NgvfHsmnu7y3LH5goTClu8MU0PCqlqeq+YshfwzrYV/3B12CMdIWZBDDEjeMt+CAN4w==
8246 dependencies: 8245 dependencies:
8247 diff-match-patch "^1.0.5" 8246 diff-match-patch "^1.0.5"
8248 8247