Commit 6753e24b3d3d4b2f3d8ce85541a1d624d9bf0fb1
Committed by
GitHub
1 parent
b90d3572
feat: 接入vextable组件 (#2508)
Showing
51 changed files
with
2676 additions
and
14 deletions
build/vite/plugin/styleImport.ts
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | * Introduces component library styles on demand. | 2 | * Introduces component library styles on demand. |
3 | * https://github.com/anncwb/vite-plugin-style-import | 3 | * https://github.com/anncwb/vite-plugin-style-import |
4 | */ | 4 | */ |
5 | -import { createStyleImportPlugin } from 'vite-plugin-style-import'; | 5 | +import { createStyleImportPlugin, VxeTableResolve } from 'vite-plugin-style-import'; |
6 | 6 | ||
7 | export function configStyleImportPlugin(_isBuild: boolean) { | 7 | export function configStyleImportPlugin(_isBuild: boolean) { |
8 | if (!_isBuild) { | 8 | if (!_isBuild) { |
@@ -77,6 +77,7 @@ export function configStyleImportPlugin(_isBuild: boolean) { | @@ -77,6 +77,7 @@ export function configStyleImportPlugin(_isBuild: boolean) { | ||
77 | }, | 77 | }, |
78 | }, | 78 | }, |
79 | ], | 79 | ], |
80 | + resolves: [VxeTableResolve()], | ||
80 | }); | 81 | }); |
81 | return styleImportPlugin; | 82 | return styleImportPlugin; |
82 | } | 83 | } |
package.json
@@ -50,6 +50,7 @@ | @@ -50,6 +50,7 @@ | ||
50 | "crypto-js": "^4.1.1", | 50 | "crypto-js": "^4.1.1", |
51 | "dayjs": "^1.11.1", | 51 | "dayjs": "^1.11.1", |
52 | "echarts": "^5.3.2", | 52 | "echarts": "^5.3.2", |
53 | + "exceljs": "^4.3.0", | ||
53 | "intro.js": "^5.1.0", | 54 | "intro.js": "^5.1.0", |
54 | "lodash-es": "^4.17.21", | 55 | "lodash-es": "^4.17.21", |
55 | "mockjs": "^1.1.0", | 56 | "mockjs": "^1.1.0", |
@@ -69,6 +70,9 @@ | @@ -69,6 +70,9 @@ | ||
69 | "vue-json-pretty": "^2.0.6", | 70 | "vue-json-pretty": "^2.0.6", |
70 | "vue-router": "^4.0.14", | 71 | "vue-router": "^4.0.14", |
71 | "vue-types": "^4.1.1", | 72 | "vue-types": "^4.1.1", |
73 | + "vxe-table": "^4.3.9", | ||
74 | + "vxe-table-plugin-export-xlsx": "^3.0.4", | ||
75 | + "xe-utils": "^3.5.7", | ||
72 | "xlsx": "^0.18.5" | 76 | "xlsx": "^0.18.5" |
73 | }, | 77 | }, |
74 | "devDependencies": { | 78 | "devDependencies": { |
@@ -121,6 +125,7 @@ | @@ -121,6 +125,7 @@ | ||
121 | "rimraf": "^3.0.2", | 125 | "rimraf": "^3.0.2", |
122 | "rollup": "^2.70.2", | 126 | "rollup": "^2.70.2", |
123 | "rollup-plugin-visualizer": "^5.6.0", | 127 | "rollup-plugin-visualizer": "^5.6.0", |
128 | + "sass": "^1.57.1", | ||
124 | "stylelint": "^14.7.1", | 129 | "stylelint": "^14.7.1", |
125 | "stylelint-config-prettier": "^9.0.3", | 130 | "stylelint-config-prettier": "^9.0.3", |
126 | "stylelint-config-recommended": "^7.0.0", | 131 | "stylelint-config-recommended": "^7.0.0", |
src/components/VxeTable/index.ts
0 → 100644
1 | +import { withInstall } from '/@/utils'; | ||
2 | +import vxeBasicTable from './src/VxeBasicTable'; | ||
3 | +import { VXETable } from 'vxe-table'; | ||
4 | +import VXETablePluginAntd from './src/components'; | ||
5 | +import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx'; | ||
6 | +import './src/setting'; | ||
7 | + | ||
8 | +export const VxeBasicTable = withInstall(vxeBasicTable); | ||
9 | +export * from 'vxe-table'; | ||
10 | +export * from './src/types'; | ||
11 | + | ||
12 | +VXETable.use(VXETablePluginAntd).use(VXETablePluginExportXLSX); |
src/components/VxeTable/src/VxeBasicTable.tsx
0 → 100644
1 | +import { defineComponent } from 'vue'; | ||
2 | +import { computed, ref } from 'vue'; | ||
3 | +import { BasicTableProps } from './types'; | ||
4 | +import { omit } from 'lodash'; | ||
5 | +import { basicProps } from './props'; | ||
6 | +import { ignorePropKeys } from './const'; | ||
7 | +import { basicEmits } from './emits'; | ||
8 | +import XEUtils from 'xe-utils'; | ||
9 | +import type { VxeGridInstance, VxeGridEventProps, GridMethods, TableMethods } from 'vxe-table'; | ||
10 | +import { Grid as VxeGrid } from 'vxe-table'; | ||
11 | + | ||
12 | +import { extendSlots } from '/@/utils/helper/tsxHelper'; | ||
13 | +import { gridComponentMethodKeys } from './methods'; | ||
14 | + | ||
15 | +export default defineComponent({ | ||
16 | + name: 'VxeBasicTable', | ||
17 | + props: basicProps, | ||
18 | + emits: basicEmits, | ||
19 | + setup(props, { emit, attrs }) { | ||
20 | + const tableElRef = ref<VxeGridInstance>(); | ||
21 | + const emitEvents: VxeGridEventProps = {}; | ||
22 | + | ||
23 | + const extendTableMethods = (methodKeys) => { | ||
24 | + const funcs: any = {}; | ||
25 | + methodKeys.forEach((name) => { | ||
26 | + funcs[name] = (...args: any[]) => { | ||
27 | + const $vxegrid: any = tableElRef.value; | ||
28 | + if ($vxegrid && $vxegrid[name]) { | ||
29 | + return $vxegrid[name](...args); | ||
30 | + } | ||
31 | + }; | ||
32 | + }); | ||
33 | + | ||
34 | + return funcs; | ||
35 | + }; | ||
36 | + | ||
37 | + const gridExtendTableMethods = extendTableMethods(gridComponentMethodKeys) as GridMethods & | ||
38 | + TableMethods; | ||
39 | + | ||
40 | + basicEmits.forEach((name) => { | ||
41 | + const type = XEUtils.camelCase(`on-${name}`) as keyof VxeGridEventProps; | ||
42 | + | ||
43 | + emitEvents[type] = (...args: any[]) => emit(name, ...args); | ||
44 | + }); | ||
45 | + | ||
46 | + /** | ||
47 | + * @description: 二次封装需要的所有属性 | ||
48 | + * 1.部分属性需要和全局属性进行合并 | ||
49 | + */ | ||
50 | + const getBindValues = computed<BasicTableProps>(() => { | ||
51 | + const propsData: BasicTableProps = { | ||
52 | + ...attrs, | ||
53 | + ...props, | ||
54 | + }; | ||
55 | + | ||
56 | + return propsData; | ||
57 | + }); | ||
58 | + | ||
59 | + /** | ||
60 | + * @description: Table 所有属性 | ||
61 | + */ | ||
62 | + const getBindGridValues = computed(() => { | ||
63 | + const omitProps = omit(getBindValues.value, ignorePropKeys); | ||
64 | + | ||
65 | + return { | ||
66 | + ...omitProps, | ||
67 | + ...getBindGridEvent, | ||
68 | + }; | ||
69 | + }); | ||
70 | + | ||
71 | + /** | ||
72 | + * @description: 组件外层class | ||
73 | + */ | ||
74 | + const getWrapperClass = computed(() => { | ||
75 | + return [attrs.class]; | ||
76 | + }); | ||
77 | + | ||
78 | + /** | ||
79 | + * @description: 重写Vxe-table 方法 | ||
80 | + */ | ||
81 | + const getBindGridEvent: VxeGridEventProps = { | ||
82 | + ...emitEvents, | ||
83 | + }; | ||
84 | + | ||
85 | + return { | ||
86 | + getWrapperClass, | ||
87 | + getBindGridValues, | ||
88 | + tableElRef, | ||
89 | + ...gridExtendTableMethods, | ||
90 | + }; | ||
91 | + }, | ||
92 | + render() { | ||
93 | + const { tableClass, tableStyle } = this.$props; | ||
94 | + | ||
95 | + return ( | ||
96 | + <div class={`h-full flex flex-col bg-white ${this.getWrapperClass}`}> | ||
97 | + <VxeGrid | ||
98 | + ref="tableElRef" | ||
99 | + class={`vxe-grid_scrollbar px-6 py-4 ${tableClass}`} | ||
100 | + style={tableStyle} | ||
101 | + {...this.getBindGridValues} | ||
102 | + > | ||
103 | + {extendSlots(this.$slots)} | ||
104 | + </VxeGrid> | ||
105 | + </div> | ||
106 | + ); | ||
107 | + }, | ||
108 | +}); |
src/components/VxeTable/src/componentMap.ts
0 → 100644
1 | +import type { Component } from 'vue'; | ||
2 | + | ||
3 | +import type { ComponentType } from './componentType'; | ||
4 | +import { ApiSelect, ApiTreeSelect } from '/@/components/Form'; | ||
5 | +import { | ||
6 | + Input, | ||
7 | + Select, | ||
8 | + Radio, | ||
9 | + Checkbox, | ||
10 | + AutoComplete, | ||
11 | + Cascader, | ||
12 | + DatePicker, | ||
13 | + InputNumber, | ||
14 | + Switch, | ||
15 | + TimePicker, | ||
16 | + TreeSelect, | ||
17 | + Rate, | ||
18 | + Button, | ||
19 | + Empty, | ||
20 | +} from 'ant-design-vue'; | ||
21 | + | ||
22 | +const componentMap = new Map<ComponentType, Component>(); | ||
23 | + | ||
24 | +componentMap.set('AButton', Button); | ||
25 | + | ||
26 | +componentMap.set('AInput', Input); | ||
27 | +componentMap.set('AInputSearch', Input.Search); | ||
28 | +componentMap.set('AInputNumber', InputNumber); | ||
29 | +componentMap.set('AAutoComplete', AutoComplete); | ||
30 | + | ||
31 | +componentMap.set('ASelect', Select); | ||
32 | +componentMap.set('ATreeSelect', TreeSelect); | ||
33 | +componentMap.set('ASwitch', Switch); | ||
34 | +componentMap.set('ARadioGroup', Radio.Group); | ||
35 | +componentMap.set('ACheckboxGroup', Checkbox.Group); | ||
36 | +componentMap.set('ACascader', Cascader); | ||
37 | +componentMap.set('ARate', Rate); | ||
38 | + | ||
39 | +componentMap.set('ADatePicker', DatePicker); | ||
40 | +componentMap.set('AMonthPicker', DatePicker.MonthPicker); | ||
41 | +componentMap.set('ARangePicker', DatePicker.RangePicker); | ||
42 | +componentMap.set('AWeekPicker', DatePicker.WeekPicker); | ||
43 | +componentMap.set('AYearPicker', DatePicker.YearPicker); | ||
44 | +componentMap.set('ATimePicker', TimePicker); | ||
45 | + | ||
46 | +componentMap.set('AApiSelect', ApiSelect); | ||
47 | +componentMap.set('AApiTreeSelect', ApiTreeSelect); | ||
48 | + | ||
49 | +componentMap.set('AEmpty', Empty); | ||
50 | + | ||
51 | +export function add(compName: ComponentType, component: Component) { | ||
52 | + componentMap.set(compName, component); | ||
53 | +} | ||
54 | + | ||
55 | +export function del(compName: ComponentType) { | ||
56 | + componentMap.delete(compName); | ||
57 | +} | ||
58 | + | ||
59 | +export { componentMap }; |
src/components/VxeTable/src/componentType.ts
0 → 100644
1 | +export type ComponentType = | ||
2 | + | 'AInput' | ||
3 | + | 'AInputNumber' | ||
4 | + | 'ASelect' | ||
5 | + | 'AApiSelect' | ||
6 | + | 'ATreeSelect' | ||
7 | + | 'AApiTreeSelect' | ||
8 | + | 'ARadioGroup' | ||
9 | + | 'ACheckboxGroup' | ||
10 | + | 'AAutoComplete' | ||
11 | + | 'ACascader' | ||
12 | + | 'ADatePicker' | ||
13 | + | 'AMonthPicker' | ||
14 | + | 'ARangePicker' | ||
15 | + | 'AWeekPicker' | ||
16 | + | 'ATimePicker' | ||
17 | + | 'AYearPicker' | ||
18 | + | 'ASwitch' | ||
19 | + | 'ARate' | ||
20 | + | 'AInputSearch' | ||
21 | + | 'AButton' | ||
22 | + | 'AEmpty'; |
src/components/VxeTable/src/components/AApiSelect.tsx
0 → 100644
1 | +import XEUtils from 'xe-utils'; | ||
2 | +import { createDefaultRender, createEditRender, createFormItemRender } from './common'; | ||
3 | + | ||
4 | +export default { | ||
5 | + renderDefault: createDefaultRender({}, (_, params) => { | ||
6 | + return { | ||
7 | + params: XEUtils.get(params, 'row'), | ||
8 | + }; | ||
9 | + }), | ||
10 | + renderEdit: createEditRender({}, (_, params) => { | ||
11 | + return { | ||
12 | + params: XEUtils.get(params, 'row'), | ||
13 | + }; | ||
14 | + }), | ||
15 | + renderItemContent: createFormItemRender({}, (_, params) => { | ||
16 | + return { | ||
17 | + params: XEUtils.get(params, 'row'), | ||
18 | + }; | ||
19 | + }), | ||
20 | +}; |
src/components/VxeTable/src/components/AAutoComplete.tsx
0 → 100644
1 | +import { | ||
2 | + createEditRender, | ||
3 | + createDefaultRender, | ||
4 | + createFilterRender, | ||
5 | + createDefaultFilterRender, | ||
6 | + createFormItemRender, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + autofocus: 'input.ant-input', | ||
11 | + renderDefault: createDefaultRender(), | ||
12 | + renderEdit: createEditRender(), | ||
13 | + renderFilter: createFilterRender(), | ||
14 | + defaultFilterMethod: createDefaultFilterRender(), | ||
15 | + renderItemContent: createFormItemRender(), | ||
16 | +}; |
src/components/VxeTable/src/components/AButton.tsx
0 → 100644
1 | +import { h } from 'vue'; | ||
2 | +import { | ||
3 | + FormItemContentRenderParams, | ||
4 | + FormItemRenderOptions, | ||
5 | + VxeGlobalRendererHandles, | ||
6 | +} from 'vxe-table'; | ||
7 | +import XEUtils from 'xe-utils'; | ||
8 | +import { cellText, createEvents, createProps, getComponent } from './common'; | ||
9 | + | ||
10 | +const COMPONENT_NAME = 'AButton'; | ||
11 | + | ||
12 | +export function createEditRender() { | ||
13 | + return function ( | ||
14 | + renderOpts: VxeGlobalRendererHandles.RenderEditOptions, | ||
15 | + params: VxeGlobalRendererHandles.RenderEditParams, | ||
16 | + ) { | ||
17 | + const { attrs } = renderOpts; | ||
18 | + const Component = getComponent(COMPONENT_NAME); | ||
19 | + | ||
20 | + return [ | ||
21 | + h(Component, { | ||
22 | + ...attrs, | ||
23 | + ...createProps(renderOpts, null), | ||
24 | + ...createEvents(renderOpts, params), | ||
25 | + }), | ||
26 | + ]; | ||
27 | + }; | ||
28 | +} | ||
29 | + | ||
30 | +export function createDefaultRender() { | ||
31 | + return function ( | ||
32 | + renderOpts: VxeGlobalRendererHandles.RenderEditOptions, | ||
33 | + params: VxeGlobalRendererHandles.RenderEditParams, | ||
34 | + ) { | ||
35 | + const { attrs } = renderOpts; | ||
36 | + const Component = getComponent(COMPONENT_NAME); | ||
37 | + | ||
38 | + return [ | ||
39 | + h( | ||
40 | + Component, | ||
41 | + { | ||
42 | + ...attrs, | ||
43 | + ...createProps(renderOpts, null), | ||
44 | + ...createEvents(renderOpts, params), | ||
45 | + }, | ||
46 | + cellText(renderOpts.content), | ||
47 | + ), | ||
48 | + ]; | ||
49 | + }; | ||
50 | +} | ||
51 | + | ||
52 | +export function createFormItemRender() { | ||
53 | + return function (renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) { | ||
54 | + const { attrs, content } = renderOpts; | ||
55 | + const { property, $form, data } = params; | ||
56 | + const props = createProps(renderOpts, null); | ||
57 | + const Component = getComponent(COMPONENT_NAME); | ||
58 | + | ||
59 | + return [ | ||
60 | + h( | ||
61 | + Component, | ||
62 | + { | ||
63 | + ...attrs, | ||
64 | + ...props, | ||
65 | + ...createEvents( | ||
66 | + renderOpts, | ||
67 | + params, | ||
68 | + (value: any) => { | ||
69 | + // 处理 model 值双向绑定 | ||
70 | + XEUtils.set(data, property, value); | ||
71 | + }, | ||
72 | + () => { | ||
73 | + // 处理 change 事件相关逻辑 | ||
74 | + $form.updateStatus({ | ||
75 | + ...params, | ||
76 | + field: property, | ||
77 | + }); | ||
78 | + }, | ||
79 | + ), | ||
80 | + }, | ||
81 | + { | ||
82 | + default: () => cellText(content || props.content), | ||
83 | + }, | ||
84 | + ), | ||
85 | + ]; | ||
86 | + }; | ||
87 | +} | ||
88 | + | ||
89 | +function createToolbarButtonRender() { | ||
90 | + return function ( | ||
91 | + renderOpts: VxeGlobalRendererHandles.RenderToolOptions, | ||
92 | + params: VxeGlobalRendererHandles.RenderButtonParams, | ||
93 | + ) { | ||
94 | + const { attrs } = renderOpts; | ||
95 | + const { button } = params; | ||
96 | + const props = createProps(renderOpts, null); | ||
97 | + const Component = getComponent(COMPONENT_NAME); | ||
98 | + | ||
99 | + return [ | ||
100 | + h( | ||
101 | + Component, | ||
102 | + { | ||
103 | + ...attrs, | ||
104 | + ...props, | ||
105 | + ...createEvents(renderOpts, params), | ||
106 | + }, | ||
107 | + { | ||
108 | + default: () => cellText(button?.content || props.content), | ||
109 | + }, | ||
110 | + ), | ||
111 | + ]; | ||
112 | + }; | ||
113 | +} | ||
114 | + | ||
115 | +export default { | ||
116 | + renderEdit: createEditRender(), | ||
117 | + renderDefault: createDefaultRender(), | ||
118 | + renderItemContent: createFormItemRender(), | ||
119 | + renderToolbarButton: createToolbarButtonRender(), | ||
120 | +}; |
src/components/VxeTable/src/components/AButtonGroup.tsx
0 → 100644
1 | +import { | ||
2 | + FormItemContentRenderParams, | ||
3 | + FormItemRenderOptions, | ||
4 | + VxeGlobalRendererHandles, | ||
5 | +} from 'vxe-table'; | ||
6 | +import { createDefaultRender, createEditRender, createFormItemRender } from './AButton'; | ||
7 | + | ||
8 | +function createEditButtonRender() { | ||
9 | + return function ( | ||
10 | + renderOpts: VxeGlobalRendererHandles.RenderEditOptions, | ||
11 | + params: VxeGlobalRendererHandles.RenderEditParams, | ||
12 | + ) { | ||
13 | + const buttonEditRender = createEditRender(); | ||
14 | + const { children } = renderOpts; | ||
15 | + if (children) { | ||
16 | + return children.map( | ||
17 | + (childRenderOpts: VxeGlobalRendererHandles.RenderEditOptions) => | ||
18 | + buttonEditRender(childRenderOpts, params)[0], | ||
19 | + ); | ||
20 | + } | ||
21 | + return []; | ||
22 | + }; | ||
23 | +} | ||
24 | + | ||
25 | +function createDefaultButtonRender() { | ||
26 | + return function ( | ||
27 | + renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions, | ||
28 | + params: VxeGlobalRendererHandles.RenderDefaultParams, | ||
29 | + ) { | ||
30 | + const buttonDefaultRender = createDefaultRender(); | ||
31 | + const { children } = renderOpts; | ||
32 | + if (children) { | ||
33 | + return children.map( | ||
34 | + (childRenderOpts: VxeGlobalRendererHandles.RenderDefaultOptions) => | ||
35 | + buttonDefaultRender(childRenderOpts, params)[0], | ||
36 | + ); | ||
37 | + } | ||
38 | + return []; | ||
39 | + }; | ||
40 | +} | ||
41 | + | ||
42 | +function createButtonItemRender() { | ||
43 | + return function (renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) { | ||
44 | + const buttonItemRender = createFormItemRender(); | ||
45 | + const { children } = renderOpts; | ||
46 | + if (children) { | ||
47 | + return children.map( | ||
48 | + (childRenderOpts: FormItemRenderOptions) => buttonItemRender(childRenderOpts, params)[0], | ||
49 | + ); | ||
50 | + } | ||
51 | + return []; | ||
52 | + }; | ||
53 | +} | ||
54 | + | ||
55 | +export default { | ||
56 | + renderEdit: createEditButtonRender(), | ||
57 | + renderDefault: createDefaultButtonRender(), | ||
58 | + renderItemContent: createButtonItemRender(), | ||
59 | +}; |
src/components/VxeTable/src/components/ACascader.tsx
0 → 100644
1 | +import { VxeGlobalRendererHandles } from 'vxe-table'; | ||
2 | +import XEUtils from 'xe-utils'; | ||
3 | +import { | ||
4 | + createEditRender, | ||
5 | + createCellRender, | ||
6 | + createFormItemRender, | ||
7 | + createExportMethod, | ||
8 | +} from './common'; | ||
9 | + | ||
10 | +function matchCascaderData(index: number, list: any[], values: any[], labels: any[]) { | ||
11 | + const val = values[index]; | ||
12 | + if (list && values.length > index) { | ||
13 | + XEUtils.each(list, (item) => { | ||
14 | + if (item.value === val) { | ||
15 | + labels.push(item.label); | ||
16 | + matchCascaderData(++index, item.children, values, labels); | ||
17 | + } | ||
18 | + }); | ||
19 | + } | ||
20 | +} | ||
21 | + | ||
22 | +function getCascaderCellValue( | ||
23 | + renderOpts: VxeGlobalRendererHandles.RenderOptions, | ||
24 | + params: VxeGlobalRendererHandles.RenderCellParams, | ||
25 | +) { | ||
26 | + const { props = {} } = renderOpts; | ||
27 | + const { row, column } = params; | ||
28 | + const cellValue = XEUtils.get(row, column.field as string); | ||
29 | + const values = cellValue || []; | ||
30 | + const labels: Array<any> = []; | ||
31 | + matchCascaderData(0, props.options, values, labels); | ||
32 | + return ( | ||
33 | + props.showAllLevels === false ? labels.slice(labels.length - 1, labels.length) : labels | ||
34 | + ).join(` ${props.separator || '/'} `); | ||
35 | +} | ||
36 | + | ||
37 | +export default { | ||
38 | + renderEdit: createEditRender(), | ||
39 | + renderCell: createCellRender(getCascaderCellValue), | ||
40 | + renderItemContent: createFormItemRender(), | ||
41 | + exportMethod: createExportMethod(getCascaderCellValue), | ||
42 | +}; |
src/components/VxeTable/src/components/ACheckboxGroup.tsx
0 → 100644
src/components/VxeTable/src/components/ADatePicker.tsx
0 → 100644
1 | +import { VxeGlobalRendererHandles } from 'vxe-table'; | ||
2 | +import XEUtils from 'xe-utils'; | ||
3 | +import { | ||
4 | + createCellRender, | ||
5 | + createEditRender, | ||
6 | + createExportMethod, | ||
7 | + createFormItemRender, | ||
8 | +} from './common'; | ||
9 | + | ||
10 | +export function getDatePickerCellValue( | ||
11 | + renderOpts: VxeGlobalRendererHandles.RenderOptions, | ||
12 | + params: VxeGlobalRendererHandles.RenderCellParams | VxeGlobalRendererHandles.ExportMethodParams, | ||
13 | + defaultFormat: string, | ||
14 | +) { | ||
15 | + const { props = {} } = renderOpts; | ||
16 | + const { row, column } = params; | ||
17 | + let cellValue = XEUtils.get(row, column.field as string); | ||
18 | + if (cellValue) { | ||
19 | + cellValue = cellValue.format(props.format || defaultFormat); | ||
20 | + } | ||
21 | + return cellValue; | ||
22 | +} | ||
23 | + | ||
24 | +export default { | ||
25 | + renderEdit: createEditRender(), | ||
26 | + renderCell: createCellRender(getDatePickerCellValue, () => { | ||
27 | + return ['YYYY-MM-DD']; | ||
28 | + }), | ||
29 | + renderItemContent: createFormItemRender(), | ||
30 | + exportMethod: createExportMethod(getDatePickerCellValue, () => { | ||
31 | + return ['YYYY-MM-DD']; | ||
32 | + }), | ||
33 | +}; |
src/components/VxeTable/src/components/AEmpty.tsx
0 → 100644
1 | +import { h } from 'vue'; | ||
2 | +import { VxeGlobalRendererHandles } from 'vxe-table'; | ||
3 | +import { getComponent } from './common'; | ||
4 | + | ||
5 | +function createEmptyRender() { | ||
6 | + return function (renderOpts: VxeGlobalRendererHandles.RenderEmptyOptions) { | ||
7 | + const { name, attrs, props } = renderOpts; | ||
8 | + | ||
9 | + const Component = getComponent(name); | ||
10 | + return [ | ||
11 | + h( | ||
12 | + 'div', | ||
13 | + { | ||
14 | + class: 'flex items-center justify-center', | ||
15 | + }, | ||
16 | + h(Component, { | ||
17 | + ...attrs, | ||
18 | + ...props, | ||
19 | + }), | ||
20 | + ), | ||
21 | + ]; | ||
22 | + }; | ||
23 | +} | ||
24 | + | ||
25 | +export default { | ||
26 | + renderEmpty: createEmptyRender(), | ||
27 | +}; |
src/components/VxeTable/src/components/AInput.tsx
0 → 100644
1 | +import { | ||
2 | + createEditRender, | ||
3 | + createDefaultRender, | ||
4 | + createFilterRender, | ||
5 | + createDefaultFilterRender, | ||
6 | + createFormItemRender, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + autofocus: 'input.ant-input', | ||
11 | + renderDefault: createDefaultRender(), | ||
12 | + renderEdit: createEditRender(), | ||
13 | + renderFilter: createFilterRender(), | ||
14 | + defaultFilterMethod: createDefaultFilterRender(), | ||
15 | + renderItemContent: createFormItemRender(), | ||
16 | +}; |
src/components/VxeTable/src/components/AInputNumber.tsx
0 → 100644
1 | +import { | ||
2 | + createEditRender, | ||
3 | + createFilterRender, | ||
4 | + createFormItemRender, | ||
5 | + createDefaultFilterRender, | ||
6 | + createDefaultRender, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + autofocus: 'input.ant-input-number-input', | ||
11 | + renderDefault: createDefaultRender(), | ||
12 | + renderEdit: createEditRender(), | ||
13 | + renderFilter: createFilterRender(), | ||
14 | + defaultFilterMethod: createDefaultFilterRender(), | ||
15 | + renderItemContent: createFormItemRender(), | ||
16 | +}; |
src/components/VxeTable/src/components/AInputSearch.tsx
0 → 100644
1 | +import { | ||
2 | + createEditRender, | ||
3 | + createDefaultRender, | ||
4 | + createFilterRender, | ||
5 | + createDefaultFilterRender, | ||
6 | + createFormItemRender, | ||
7 | + createToolbarToolRender, | ||
8 | +} from './common'; | ||
9 | + | ||
10 | +export default { | ||
11 | + renderDefault: createDefaultRender(), | ||
12 | + renderEdit: createEditRender(), | ||
13 | + renderFilter: createFilterRender(), | ||
14 | + defaultFilterMethod: createDefaultFilterRender(), | ||
15 | + renderItemContent: createFormItemRender(), | ||
16 | + renderToolbarTool: createToolbarToolRender(), | ||
17 | +}; |
src/components/VxeTable/src/components/AMonthPicker.tsx
0 → 100644
1 | +import { getDatePickerCellValue } from './ADatePicker'; | ||
2 | +import { | ||
3 | + createCellRender, | ||
4 | + createEditRender, | ||
5 | + createExportMethod, | ||
6 | + createFormItemRender, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + renderEdit: createEditRender(), | ||
11 | + renderCell: createCellRender(getDatePickerCellValue, () => { | ||
12 | + return ['YYYY-MM']; | ||
13 | + }), | ||
14 | + renderItemContent: createFormItemRender(), | ||
15 | + exportMethod: createExportMethod(getDatePickerCellValue, () => { | ||
16 | + return ['YYYY-MM']; | ||
17 | + }), | ||
18 | +}; |
src/components/VxeTable/src/components/ARadioGroup.tsx
0 → 100644
src/components/VxeTable/src/components/ARangePicker.tsx
0 → 100644
1 | +import { VxeColumnPropTypes, VxeGlobalRendererHandles } from 'vxe-table'; | ||
2 | +import XEUtils from 'xe-utils'; | ||
3 | +import { | ||
4 | + createCellRender, | ||
5 | + createEditRender, | ||
6 | + createExportMethod, | ||
7 | + createFormItemRender, | ||
8 | +} from './common'; | ||
9 | + | ||
10 | +function getRangePickerCellValue( | ||
11 | + renderOpts: VxeColumnPropTypes.EditRender, | ||
12 | + params: VxeGlobalRendererHandles.RenderCellParams | VxeGlobalRendererHandles.ExportMethodParams, | ||
13 | +) { | ||
14 | + const { props = {} } = renderOpts; | ||
15 | + const { row, column } = params; | ||
16 | + let cellValue = XEUtils.get(row, column.field as string); | ||
17 | + if (cellValue) { | ||
18 | + cellValue = XEUtils.map(cellValue, (date: any) => | ||
19 | + date.format(props.format || 'YYYY-MM-DD'), | ||
20 | + ).join(' ~ '); | ||
21 | + } | ||
22 | + return cellValue; | ||
23 | +} | ||
24 | + | ||
25 | +export default { | ||
26 | + renderEdit: createEditRender(), | ||
27 | + renderCell: createCellRender(getRangePickerCellValue), | ||
28 | + renderItemContent: createFormItemRender(), | ||
29 | + exportMethod: createExportMethod(getRangePickerCellValue), | ||
30 | +}; |
src/components/VxeTable/src/components/ARate.tsx
0 → 100644
1 | +import { | ||
2 | + createEditRender, | ||
3 | + createDefaultRender, | ||
4 | + createFilterRender, | ||
5 | + createDefaultFilterRender, | ||
6 | + createFormItemRender, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + renderDefault: createDefaultRender(), | ||
11 | + renderEdit: createEditRender(), | ||
12 | + renderFilter: createFilterRender(), | ||
13 | + defaultFilterMethod: createDefaultFilterRender(), | ||
14 | + renderItemContent: createFormItemRender(), | ||
15 | +}; |
src/components/VxeTable/src/components/ASelect.tsx
0 → 100644
1 | +import { ComponentOptions, h, resolveComponent } from 'vue'; | ||
2 | +import { VxeColumnPropTypes, VxeGlobalRendererHandles } from 'vxe-table'; | ||
3 | +import XEUtils from 'xe-utils'; | ||
4 | +import { | ||
5 | + cellText, | ||
6 | + createCellRender, | ||
7 | + createEvents, | ||
8 | + createProps, | ||
9 | + isEmptyValue, | ||
10 | + createExportMethod, | ||
11 | + createFormItemRender, | ||
12 | +} from './common'; | ||
13 | + | ||
14 | +function renderOptions(options: any[], optionProps: VxeGlobalRendererHandles.RenderOptionProps) { | ||
15 | + const labelProp = optionProps.label || 'label'; | ||
16 | + const valueProp = optionProps.value || 'value'; | ||
17 | + return XEUtils.map(options, (item, oIndex) => { | ||
18 | + return h( | ||
19 | + resolveComponent('a-select-option') as ComponentOptions, | ||
20 | + { | ||
21 | + key: oIndex, | ||
22 | + value: item[valueProp], | ||
23 | + disabled: item.disabled, | ||
24 | + }, | ||
25 | + { | ||
26 | + default: () => cellText(item[labelProp]), | ||
27 | + }, | ||
28 | + ); | ||
29 | + }); | ||
30 | +} | ||
31 | + | ||
32 | +function createEditRender() { | ||
33 | + return function ( | ||
34 | + renderOpts: VxeColumnPropTypes.EditRender, | ||
35 | + params: VxeGlobalRendererHandles.RenderEditParams, | ||
36 | + ) { | ||
37 | + const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts; | ||
38 | + const { row, column, $table } = params; | ||
39 | + const { attrs } = renderOpts; | ||
40 | + const cellValue = XEUtils.get(row, column.field as string); | ||
41 | + const props = createProps(renderOpts, cellValue); | ||
42 | + const ons = createEvents( | ||
43 | + renderOpts, | ||
44 | + params, | ||
45 | + (value: any) => { | ||
46 | + // 处理 model 值双向绑定 | ||
47 | + XEUtils.set(row, column.field as string, value); | ||
48 | + }, | ||
49 | + () => { | ||
50 | + // 处理 change 事件相关逻辑 | ||
51 | + $table.updateStatus(params); | ||
52 | + }, | ||
53 | + ); | ||
54 | + if (optionGroups) { | ||
55 | + const groupOptions = optionGroupProps.options || 'options'; | ||
56 | + const groupLabel = optionGroupProps.label || 'label'; | ||
57 | + return [ | ||
58 | + h( | ||
59 | + resolveComponent('a-select') as ComponentOptions, | ||
60 | + { | ||
61 | + ...attrs, | ||
62 | + ...props, | ||
63 | + ...ons, | ||
64 | + }, | ||
65 | + { | ||
66 | + default: () => { | ||
67 | + return XEUtils.map(optionGroups, (group, gIndex) => { | ||
68 | + return h( | ||
69 | + resolveComponent('a-select-opt-group') as ComponentOptions, | ||
70 | + { | ||
71 | + key: gIndex, | ||
72 | + }, | ||
73 | + { | ||
74 | + label: () => { | ||
75 | + return h('span', {}, group[groupLabel]); | ||
76 | + }, | ||
77 | + default: () => renderOptions(group[groupOptions], optionProps), | ||
78 | + }, | ||
79 | + ); | ||
80 | + }); | ||
81 | + }, | ||
82 | + }, | ||
83 | + ), | ||
84 | + ]; | ||
85 | + } | ||
86 | + return [ | ||
87 | + h( | ||
88 | + resolveComponent('a-select') as ComponentOptions, | ||
89 | + { | ||
90 | + ...props, | ||
91 | + ...attrs, | ||
92 | + ...ons, | ||
93 | + }, | ||
94 | + { | ||
95 | + default: () => renderOptions(options, optionProps), | ||
96 | + }, | ||
97 | + ), | ||
98 | + ]; | ||
99 | + }; | ||
100 | +} | ||
101 | + | ||
102 | +function getSelectCellValue( | ||
103 | + renderOpts: VxeGlobalRendererHandles.RenderCellOptions, | ||
104 | + params: VxeGlobalRendererHandles.RenderCellParams, | ||
105 | +) { | ||
106 | + const { | ||
107 | + options = [], | ||
108 | + optionGroups, | ||
109 | + props = {}, | ||
110 | + optionProps = {}, | ||
111 | + optionGroupProps = {}, | ||
112 | + } = renderOpts; | ||
113 | + const { row, column } = params; | ||
114 | + const labelProp = optionProps.label || 'label'; | ||
115 | + const valueProp = optionProps.value || 'value'; | ||
116 | + const groupOptions = optionGroupProps.options || 'options'; | ||
117 | + const cellValue = XEUtils.get(row, column.field as string); | ||
118 | + if (!isEmptyValue(cellValue)) { | ||
119 | + return XEUtils.map( | ||
120 | + props.mode === 'multiple' ? cellValue : [cellValue], | ||
121 | + optionGroups | ||
122 | + ? (value) => { | ||
123 | + let selectItem; | ||
124 | + for (let index = 0; index < optionGroups.length; index++) { | ||
125 | + selectItem = XEUtils.find( | ||
126 | + optionGroups[index][groupOptions], | ||
127 | + (item) => item[valueProp] === value, | ||
128 | + ); | ||
129 | + if (selectItem) { | ||
130 | + break; | ||
131 | + } | ||
132 | + } | ||
133 | + return selectItem ? selectItem[labelProp] : value; | ||
134 | + } | ||
135 | + : (value) => { | ||
136 | + const selectItem = XEUtils.find(options, (item) => item[valueProp] === value); | ||
137 | + return selectItem ? selectItem[labelProp] : value; | ||
138 | + }, | ||
139 | + ).join(', '); | ||
140 | + } | ||
141 | + return ''; | ||
142 | +} | ||
143 | + | ||
144 | +function createFilterRender() { | ||
145 | + return function ( | ||
146 | + renderOpts: VxeColumnPropTypes.FilterRender, | ||
147 | + params: VxeGlobalRendererHandles.RenderFilterParams, | ||
148 | + ) { | ||
149 | + const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts; | ||
150 | + const groupOptions = optionGroupProps.options || 'options'; | ||
151 | + const groupLabel = optionGroupProps.label || 'label'; | ||
152 | + const { column } = params; | ||
153 | + const { attrs } = renderOpts; | ||
154 | + | ||
155 | + return [ | ||
156 | + h( | ||
157 | + 'div', | ||
158 | + { | ||
159 | + class: 'vxe-table--filter-antd-wrapper', | ||
160 | + }, | ||
161 | + optionGroups | ||
162 | + ? column.filters.map((option, oIndex) => { | ||
163 | + const optionValue = option.data; | ||
164 | + const props = createProps(renderOpts, optionValue); | ||
165 | + | ||
166 | + return h( | ||
167 | + resolveComponent('a-select') as ComponentOptions, | ||
168 | + { | ||
169 | + key: oIndex, | ||
170 | + ...attrs, | ||
171 | + ...props, | ||
172 | + ...createEvents( | ||
173 | + renderOpts, | ||
174 | + params, | ||
175 | + (value: any) => { | ||
176 | + // 处理 model 值双向绑定 | ||
177 | + option.data = value; | ||
178 | + }, | ||
179 | + () => { | ||
180 | + // 处理 change 事件相关逻辑 | ||
181 | + const { $panel } = params; | ||
182 | + $panel.changeOption( | ||
183 | + null, | ||
184 | + props.mode === 'multiple' | ||
185 | + ? option.data && option.data.length > 0 | ||
186 | + : !XEUtils.eqNull(option.data), | ||
187 | + option, | ||
188 | + ); | ||
189 | + }, | ||
190 | + ), | ||
191 | + }, | ||
192 | + { | ||
193 | + default: () => { | ||
194 | + return XEUtils.map(optionGroups, (group, gIndex) => { | ||
195 | + return h( | ||
196 | + resolveComponent('a-select-opt-group') as ComponentOptions, | ||
197 | + { | ||
198 | + key: gIndex, | ||
199 | + }, | ||
200 | + { | ||
201 | + label: () => { | ||
202 | + return h('span', {}, group[groupLabel]); | ||
203 | + }, | ||
204 | + default: () => renderOptions(group[groupOptions], optionProps), | ||
205 | + }, | ||
206 | + ); | ||
207 | + }); | ||
208 | + }, | ||
209 | + }, | ||
210 | + ); | ||
211 | + }) | ||
212 | + : column.filters.map((option, oIndex) => { | ||
213 | + const optionValue = option.data; | ||
214 | + const props = createProps(renderOpts, optionValue); | ||
215 | + return h( | ||
216 | + resolveComponent('a-select') as ComponentOptions, | ||
217 | + { | ||
218 | + key: oIndex, | ||
219 | + ...attrs, | ||
220 | + ...props, | ||
221 | + ...createEvents( | ||
222 | + renderOpts, | ||
223 | + params, | ||
224 | + (value: any) => { | ||
225 | + // 处理 model 值双向绑定 | ||
226 | + option.data = value; | ||
227 | + }, | ||
228 | + () => { | ||
229 | + // 处理 change 事件相关逻辑 | ||
230 | + const { $panel } = params; | ||
231 | + $panel.changeOption( | ||
232 | + null, | ||
233 | + props.mode === 'multiple' | ||
234 | + ? option.data && option.data.length > 0 | ||
235 | + : !XEUtils.eqNull(option.data), | ||
236 | + option, | ||
237 | + ); | ||
238 | + }, | ||
239 | + ), | ||
240 | + }, | ||
241 | + { | ||
242 | + default: () => renderOptions(options, optionProps), | ||
243 | + }, | ||
244 | + ); | ||
245 | + }), | ||
246 | + ), | ||
247 | + ]; | ||
248 | + }; | ||
249 | +} | ||
250 | + | ||
251 | +export default { | ||
252 | + renderEdit: createEditRender(), | ||
253 | + renderCell: createCellRender(getSelectCellValue), | ||
254 | + renderFilter: createFilterRender(), | ||
255 | + defaultFilterMethod(params) { | ||
256 | + const { option, row, column } = params; | ||
257 | + const { data } = option; | ||
258 | + const { field, filterRender: renderOpts } = column; | ||
259 | + const { props = {} } = renderOpts; | ||
260 | + const cellValue = XEUtils.get(row, field); | ||
261 | + if (props.mode === 'multiple') { | ||
262 | + if (XEUtils.isArray(cellValue)) { | ||
263 | + return XEUtils.includeArrays(cellValue, data); | ||
264 | + } | ||
265 | + return data.indexOf(cellValue) > -1; | ||
266 | + } | ||
267 | + return cellValue == data; | ||
268 | + }, | ||
269 | + renderItemContent: createFormItemRender(), | ||
270 | + exportMethod: createExportMethod(getSelectCellValue), | ||
271 | +}; |
src/components/VxeTable/src/components/ASwitch.tsx
0 → 100644
1 | +import { h } from 'vue'; | ||
2 | +import XEUtils from 'xe-utils'; | ||
3 | +import { | ||
4 | + createEditRender, | ||
5 | + createDefaultRender, | ||
6 | + createProps, | ||
7 | + createEvents, | ||
8 | + createDefaultFilterRender, | ||
9 | + createFormItemRender, | ||
10 | + getComponent, | ||
11 | +} from './common'; | ||
12 | + | ||
13 | +export default { | ||
14 | + renderDefault: createDefaultRender(), | ||
15 | + renderEdit: createEditRender(), | ||
16 | + renderFilter(renderOpts, params) { | ||
17 | + const { column } = params; | ||
18 | + const { name, attrs } = renderOpts; | ||
19 | + const Component = getComponent(name); | ||
20 | + | ||
21 | + return [ | ||
22 | + h( | ||
23 | + 'div', | ||
24 | + { | ||
25 | + class: 'vxe-table--filter-antd-wrapper', | ||
26 | + }, | ||
27 | + column.filters.map((option, oIndex) => { | ||
28 | + const optionValue = option.data; | ||
29 | + return h(Component, { | ||
30 | + key: oIndex, | ||
31 | + ...attrs, | ||
32 | + ...createProps(renderOpts, optionValue), | ||
33 | + ...createEvents( | ||
34 | + renderOpts, | ||
35 | + params, | ||
36 | + (value: any) => { | ||
37 | + // 处理 model 值双向绑定 | ||
38 | + option.data = value; | ||
39 | + }, | ||
40 | + () => { | ||
41 | + // 处理 change 事件相关逻辑 | ||
42 | + const { $panel } = params; | ||
43 | + $panel.changeOption(null, XEUtils.isBoolean(option.data), option); | ||
44 | + }, | ||
45 | + ), | ||
46 | + }); | ||
47 | + }), | ||
48 | + ), | ||
49 | + ]; | ||
50 | + }, | ||
51 | + defaultFilterMethod: createDefaultFilterRender(), | ||
52 | + renderItemContent: createFormItemRender(), | ||
53 | +}; |
src/components/VxeTable/src/components/ATimePicker.tsx
0 → 100644
1 | +import { getDatePickerCellValue } from './ADatePicker'; | ||
2 | +import { | ||
3 | + createEditRender, | ||
4 | + createCellRender, | ||
5 | + createFormItemRender, | ||
6 | + createExportMethod, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + renderEdit: createEditRender(), | ||
11 | + renderCell: createCellRender(getDatePickerCellValue, () => { | ||
12 | + return ['HH:mm:ss']; | ||
13 | + }), | ||
14 | + renderItemContent: createFormItemRender(), | ||
15 | + exportMethod: createExportMethod(getDatePickerCellValue, () => { | ||
16 | + return ['HH:mm:ss']; | ||
17 | + }), | ||
18 | +}; |
src/components/VxeTable/src/components/ATreeSelect.tsx
0 → 100644
1 | +import { VxeGlobalRendererHandles } from 'vxe-table'; | ||
2 | +import XEUtils from 'xe-utils'; | ||
3 | +import { | ||
4 | + createEditRender, | ||
5 | + createCellRender, | ||
6 | + isEmptyValue, | ||
7 | + createFormItemRender, | ||
8 | + createExportMethod, | ||
9 | +} from './common'; | ||
10 | + | ||
11 | +function getTreeSelectCellValue( | ||
12 | + renderOpts: VxeGlobalRendererHandles.RenderOptions, | ||
13 | + params: VxeGlobalRendererHandles.RenderCellParams | VxeGlobalRendererHandles.ExportMethodParams, | ||
14 | +) { | ||
15 | + const { props = {} } = renderOpts; | ||
16 | + const { treeData, treeCheckable } = props; | ||
17 | + const { row, column } = params; | ||
18 | + const cellValue = XEUtils.get(row, column.field as string); | ||
19 | + if (!isEmptyValue(cellValue)) { | ||
20 | + return XEUtils.map(treeCheckable ? cellValue : [cellValue], (value) => { | ||
21 | + const matchObj = XEUtils.findTree(treeData, (item: any) => item.value === value, { | ||
22 | + children: 'children', | ||
23 | + }); | ||
24 | + return matchObj ? matchObj.item.title : value; | ||
25 | + }).join(', '); | ||
26 | + } | ||
27 | + return cellValue; | ||
28 | +} | ||
29 | + | ||
30 | +export default { | ||
31 | + renderEdit: createEditRender(), | ||
32 | + renderCell: createCellRender(getTreeSelectCellValue), | ||
33 | + renderItemContent: createFormItemRender(), | ||
34 | + exportMethod: createExportMethod(getTreeSelectCellValue), | ||
35 | +}; |
src/components/VxeTable/src/components/AWeekPicker.tsx
0 → 100644
1 | +import { getDatePickerCellValue } from './ADatePicker'; | ||
2 | +import { | ||
3 | + createEditRender, | ||
4 | + createCellRender, | ||
5 | + createFormItemRender, | ||
6 | + createExportMethod, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + renderEdit: createEditRender(), | ||
11 | + renderCell: createCellRender(getDatePickerCellValue, () => { | ||
12 | + return ['YYYY-WW周']; | ||
13 | + }), | ||
14 | + renderItemContent: createFormItemRender(), | ||
15 | + exportMethod: createExportMethod(getDatePickerCellValue, () => { | ||
16 | + return ['YYYY-WW周']; | ||
17 | + }), | ||
18 | +}; |
src/components/VxeTable/src/components/AYearPicker.tsx
0 → 100644
1 | +import { getDatePickerCellValue } from './ADatePicker'; | ||
2 | +import { | ||
3 | + createEditRender, | ||
4 | + createCellRender, | ||
5 | + createFormItemRender, | ||
6 | + createExportMethod, | ||
7 | +} from './common'; | ||
8 | + | ||
9 | +export default { | ||
10 | + renderEdit: createEditRender(), | ||
11 | + renderCell: createCellRender(getDatePickerCellValue, () => { | ||
12 | + return ['YYYY']; | ||
13 | + }), | ||
14 | + renderItemContent: createFormItemRender(), | ||
15 | + exportMethod: createExportMethod(getDatePickerCellValue, () => { | ||
16 | + return ['YYYY']; | ||
17 | + }), | ||
18 | +}; |
src/components/VxeTable/src/components/common.tsx
0 → 100644
1 | +import { ComponentOptions, h } from 'vue'; | ||
2 | +import { | ||
3 | + FormItemContentRenderParams, | ||
4 | + FormItemRenderOptions, | ||
5 | + VxeGlobalRendererHandles, | ||
6 | +} from 'vxe-table'; | ||
7 | +import XEUtils from 'xe-utils'; | ||
8 | +import { componentMap } from '../componentMap'; | ||
9 | +import { ComponentType } from '../componentType'; | ||
10 | +import { createPlaceholderMessage } from '../helper'; | ||
11 | + | ||
12 | +/** | ||
13 | + * @description: 获取组件 | ||
14 | + */ | ||
15 | +export function getComponent(componentName) { | ||
16 | + const Component = componentMap.get(componentName as ComponentType); | ||
17 | + if (!Component) throw `您还没注册此组件 ${componentName}`; | ||
18 | + return Component as ComponentOptions; | ||
19 | +} | ||
20 | + | ||
21 | +export function isEmptyValue(cellValue: any) { | ||
22 | + return cellValue === null || cellValue === undefined || cellValue === ''; | ||
23 | +} | ||
24 | + | ||
25 | +export function formatText(cellValue: any) { | ||
26 | + return '' + (isEmptyValue(cellValue) ? '' : cellValue); | ||
27 | +} | ||
28 | + | ||
29 | +export function cellText(cellValue: any): string[] { | ||
30 | + return [formatText(cellValue)]; | ||
31 | +} | ||
32 | + | ||
33 | +/** | ||
34 | + * @description: 方法名转换 | ||
35 | + */ | ||
36 | +export function getOnName(type: string) { | ||
37 | + return 'on' + type.substring(0, 1).toLocaleUpperCase() + type.substring(1); | ||
38 | +} | ||
39 | + | ||
40 | +/** | ||
41 | + * @description: 获取组件传值所接受的属性 | ||
42 | + */ | ||
43 | +function getModelKey(renderOpts: VxeGlobalRendererHandles.RenderOptions) { | ||
44 | + let prop = 'value'; | ||
45 | + switch (renderOpts.name) { | ||
46 | + case 'ASwitch': | ||
47 | + prop = 'checked'; | ||
48 | + break; | ||
49 | + } | ||
50 | + return prop; | ||
51 | +} | ||
52 | + | ||
53 | +/** | ||
54 | + * @description: 回去双向更新的方法 | ||
55 | + */ | ||
56 | +function getModelEvent(renderOpts: VxeGlobalRendererHandles.RenderOptions) { | ||
57 | + let type = 'update:value'; | ||
58 | + switch (renderOpts.name) { | ||
59 | + case 'ASwitch': | ||
60 | + type = 'update:checked'; | ||
61 | + break; | ||
62 | + } | ||
63 | + return type; | ||
64 | +} | ||
65 | + | ||
66 | +/** | ||
67 | + * @description: chang值改变方法 | ||
68 | + * @param {} | ||
69 | + * @return {*} | ||
70 | + * @author: * | ||
71 | + */ | ||
72 | +function getChangeEvent() { | ||
73 | + return 'change'; | ||
74 | +} | ||
75 | + | ||
76 | +function getClickEvent() { | ||
77 | + return 'click'; | ||
78 | +} | ||
79 | +/** | ||
80 | + * @description: 获取方法 | ||
81 | + * @param {} | ||
82 | + * @return {*} | ||
83 | + * @author: * | ||
84 | + */ | ||
85 | +export function createEvents( | ||
86 | + renderOpts: VxeGlobalRendererHandles.RenderOptions, | ||
87 | + params: VxeGlobalRendererHandles.RenderParams, | ||
88 | + inputFunc?: Function, | ||
89 | + changeFunc?: Function, | ||
90 | + clickFunc?: Function, | ||
91 | +) { | ||
92 | + const { events } = renderOpts; | ||
93 | + const modelEvent = getModelEvent(renderOpts); | ||
94 | + const changeEvent = getChangeEvent(); | ||
95 | + const clickEvent = getClickEvent(); | ||
96 | + const isSameEvent = changeEvent === modelEvent; | ||
97 | + const ons: { [type: string]: Function } = {}; | ||
98 | + | ||
99 | + XEUtils.objectEach(events, (func: Function, key: string) => { | ||
100 | + ons[getOnName(key)] = function (...args: any[]) { | ||
101 | + func(params, ...args); | ||
102 | + }; | ||
103 | + }); | ||
104 | + if (inputFunc) { | ||
105 | + ons[getOnName(modelEvent)] = function (targetEvnt: any) { | ||
106 | + inputFunc(targetEvnt); | ||
107 | + if (events && events[modelEvent]) { | ||
108 | + events[modelEvent](params, targetEvnt); | ||
109 | + } | ||
110 | + if (isSameEvent && changeFunc) { | ||
111 | + changeFunc(targetEvnt); | ||
112 | + } | ||
113 | + }; | ||
114 | + } | ||
115 | + if (!isSameEvent && changeFunc) { | ||
116 | + ons[getOnName(changeEvent)] = function (...args: any[]) { | ||
117 | + changeFunc(...args); | ||
118 | + if (events && events[changeEvent]) { | ||
119 | + events[changeEvent](params, ...args); | ||
120 | + } | ||
121 | + }; | ||
122 | + } | ||
123 | + if (clickFunc) { | ||
124 | + ons[getOnName(clickEvent)] = function (...args: any[]) { | ||
125 | + clickFunc(...args); | ||
126 | + if (events && events[clickEvent]) { | ||
127 | + events[clickEvent](params, ...args); | ||
128 | + } | ||
129 | + }; | ||
130 | + } | ||
131 | + return ons; | ||
132 | +} | ||
133 | + | ||
134 | +/** | ||
135 | + * @description: 获取属性 | ||
136 | + */ | ||
137 | +export function createProps( | ||
138 | + renderOpts: VxeGlobalRendererHandles.RenderOptions, | ||
139 | + value: any, | ||
140 | + defaultProps?: { [prop: string]: any }, | ||
141 | +) { | ||
142 | + const name = renderOpts.name as ComponentType; | ||
143 | + return XEUtils.assign( | ||
144 | + { | ||
145 | + placeholder: createPlaceholderMessage(name), | ||
146 | + allowClear: true, | ||
147 | + }, | ||
148 | + defaultProps, | ||
149 | + renderOpts.props, | ||
150 | + { | ||
151 | + [getModelKey(renderOpts)]: value, | ||
152 | + }, | ||
153 | + ); | ||
154 | +} | ||
155 | + | ||
156 | +/** | ||
157 | + * @description: 创建单元格默认显示内容 | ||
158 | + */ | ||
159 | +export function createDefaultRender( | ||
160 | + defaultProps?: { [key: string]: any }, | ||
161 | + callBack?: ( | ||
162 | + renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions, | ||
163 | + params: VxeGlobalRendererHandles.RenderDefaultParams, | ||
164 | + ) => Record<string, any>, | ||
165 | +) { | ||
166 | + return function ( | ||
167 | + renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions, | ||
168 | + params: VxeGlobalRendererHandles.RenderDefaultParams, | ||
169 | + ) { | ||
170 | + const { row, column, $table } = params; | ||
171 | + const { name, attrs } = renderOpts; | ||
172 | + const cellValue = XEUtils.get(row, column.field as string); | ||
173 | + const args = (callBack && callBack(renderOpts, params)) ?? {}; | ||
174 | + | ||
175 | + const Component = getComponent(name); | ||
176 | + return [ | ||
177 | + h(Component, { | ||
178 | + ...attrs, | ||
179 | + ...createProps(renderOpts, cellValue, defaultProps), | ||
180 | + ...args, | ||
181 | + ...createEvents( | ||
182 | + renderOpts, | ||
183 | + params, | ||
184 | + (value: any) => XEUtils.set(row, column.field as string, value), | ||
185 | + () => $table.updateStatus(params), | ||
186 | + ), | ||
187 | + }), | ||
188 | + ]; | ||
189 | + }; | ||
190 | +} | ||
191 | + | ||
192 | +/** | ||
193 | + * @description: 创建编辑单元格 | ||
194 | + */ | ||
195 | +export function createEditRender( | ||
196 | + defaultProps?: { [key: string]: any }, | ||
197 | + callBack?: ( | ||
198 | + renderOpts: VxeGlobalRendererHandles.RenderEditOptions, | ||
199 | + params: VxeGlobalRendererHandles.RenderEditParams, | ||
200 | + ) => Record<string, any>, | ||
201 | +) { | ||
202 | + return function ( | ||
203 | + renderOpts: VxeGlobalRendererHandles.RenderEditOptions, | ||
204 | + params: VxeGlobalRendererHandles.RenderEditParams, | ||
205 | + ) { | ||
206 | + const { row, column, $table } = params; | ||
207 | + const { name, attrs } = renderOpts; | ||
208 | + const cellValue = XEUtils.get(row, column.field as string); | ||
209 | + const args = (callBack && callBack(renderOpts, params)) ?? {}; | ||
210 | + | ||
211 | + const Component = getComponent(name); | ||
212 | + return [ | ||
213 | + h(Component, { | ||
214 | + ...attrs, | ||
215 | + ...createProps(renderOpts, cellValue, defaultProps), | ||
216 | + ...args, | ||
217 | + ...createEvents( | ||
218 | + renderOpts, | ||
219 | + params, | ||
220 | + (value: any) => XEUtils.set(row, column.field as string, value), | ||
221 | + () => $table.updateStatus(params), | ||
222 | + ), | ||
223 | + }), | ||
224 | + ]; | ||
225 | + }; | ||
226 | +} | ||
227 | + | ||
228 | +/** | ||
229 | + * @description: 创建筛选渲染内容 | ||
230 | + */ | ||
231 | +export function createFilterRender( | ||
232 | + defaultProps?: { [key: string]: any }, | ||
233 | + callBack?: ( | ||
234 | + renderOpts: VxeGlobalRendererHandles.RenderFilterOptions, | ||
235 | + params: VxeGlobalRendererHandles.RenderFilterParams, | ||
236 | + ) => Record<string, any>, | ||
237 | +) { | ||
238 | + return function ( | ||
239 | + renderOpts: VxeGlobalRendererHandles.RenderFilterOptions, | ||
240 | + params: VxeGlobalRendererHandles.RenderFilterParams, | ||
241 | + ) { | ||
242 | + const { column } = params; | ||
243 | + const { name, attrs } = renderOpts; | ||
244 | + const args = (callBack && callBack(renderOpts, params)) ?? {}; | ||
245 | + | ||
246 | + const Component = getComponent(name); | ||
247 | + return [ | ||
248 | + h( | ||
249 | + 'div', | ||
250 | + { | ||
251 | + class: 'vxe-table--filter-antd-wrapper', | ||
252 | + }, | ||
253 | + column.filters.map((option, oIndex) => { | ||
254 | + const optionValue = option.data; | ||
255 | + const checked = !!option.data; | ||
256 | + | ||
257 | + return h(Component, { | ||
258 | + key: oIndex, | ||
259 | + ...attrs, | ||
260 | + ...createProps(renderOpts, optionValue, defaultProps), | ||
261 | + ...args, | ||
262 | + ...createEvents( | ||
263 | + renderOpts, | ||
264 | + params, | ||
265 | + (value: any) => { | ||
266 | + // 处理 model 值双向绑定 | ||
267 | + option.data = value; | ||
268 | + }, | ||
269 | + () => { | ||
270 | + // 处理 change 事件相关逻辑 | ||
271 | + const { $panel } = params; | ||
272 | + $panel.changeOption(null, checked, option); | ||
273 | + }, | ||
274 | + ), | ||
275 | + }); | ||
276 | + }), | ||
277 | + ), | ||
278 | + ]; | ||
279 | + }; | ||
280 | +} | ||
281 | + | ||
282 | +/** | ||
283 | + * @description: 默认过滤 | ||
284 | + * @param {} | ||
285 | + * @return {*} | ||
286 | + * @author: * | ||
287 | + */ | ||
288 | + | ||
289 | +export function createDefaultFilterRender() { | ||
290 | + return function (params: VxeGlobalRendererHandles.FilterMethodParams) { | ||
291 | + const { option, row, column } = params; | ||
292 | + const { data } = option; | ||
293 | + const cellValue = XEUtils.get(row, column.field as string); | ||
294 | + return cellValue === data; | ||
295 | + }; | ||
296 | +} | ||
297 | + | ||
298 | +/** | ||
299 | + * @description: 创建 form表单渲染 | ||
300 | + */ | ||
301 | +export function createFormItemRender( | ||
302 | + defaultProps?: { [key: string]: any }, | ||
303 | + callBack?: ( | ||
304 | + renderOpts: FormItemRenderOptions, | ||
305 | + params: FormItemContentRenderParams, | ||
306 | + ) => Record<string, any>, | ||
307 | +) { | ||
308 | + return function (renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) { | ||
309 | + const args = (callBack && callBack(renderOpts, params)) ?? {}; | ||
310 | + const { data, property, $form } = params; | ||
311 | + const { name } = renderOpts; | ||
312 | + const { attrs } = renderOpts; | ||
313 | + const itemValue = XEUtils.get(data, property); | ||
314 | + | ||
315 | + const Component = getComponent(name); | ||
316 | + return [ | ||
317 | + h(Component, { | ||
318 | + ...attrs, | ||
319 | + ...createProps(renderOpts, itemValue, defaultProps), | ||
320 | + ...args, | ||
321 | + ...createEvents( | ||
322 | + renderOpts, | ||
323 | + params, | ||
324 | + (value: any) => { | ||
325 | + // 处理 model 值双向绑定 | ||
326 | + XEUtils.set(data, property, value); | ||
327 | + }, | ||
328 | + () => { | ||
329 | + // 处理 change 事件相关逻辑 | ||
330 | + $form.updateStatus({ | ||
331 | + ...params, | ||
332 | + field: property, | ||
333 | + }); | ||
334 | + }, | ||
335 | + ), | ||
336 | + }), | ||
337 | + ]; | ||
338 | + }; | ||
339 | +} | ||
340 | + | ||
341 | +/** | ||
342 | + * @description: cell渲染 | ||
343 | + */ | ||
344 | +export function createCellRender( | ||
345 | + getSelectCellValue: Function, | ||
346 | + callBack?: ( | ||
347 | + renderOpts: VxeGlobalRendererHandles.RenderCellOptions, | ||
348 | + params: VxeGlobalRendererHandles.RenderCellParams, | ||
349 | + ) => Array<any>, | ||
350 | +) { | ||
351 | + return function ( | ||
352 | + renderOpts: VxeGlobalRendererHandles.RenderCellOptions, | ||
353 | + params: VxeGlobalRendererHandles.RenderCellParams, | ||
354 | + ) { | ||
355 | + const args = (callBack && callBack(renderOpts, params)) ?? []; | ||
356 | + const cellLabel = getSelectCellValue && getSelectCellValue(renderOpts, params, ...args); | ||
357 | + const { placeholder } = renderOpts; | ||
358 | + | ||
359 | + return [ | ||
360 | + h( | ||
361 | + 'span', | ||
362 | + { | ||
363 | + class: 'vxe-cell--label', | ||
364 | + }, | ||
365 | + placeholder && isEmptyValue(cellLabel) | ||
366 | + ? [ | ||
367 | + h( | ||
368 | + 'span', | ||
369 | + { | ||
370 | + class: 'vxe-cell--placeholder', | ||
371 | + }, | ||
372 | + formatText(placeholder), | ||
373 | + ), | ||
374 | + ] | ||
375 | + : formatText(cellLabel), | ||
376 | + ), | ||
377 | + ]; | ||
378 | + }; | ||
379 | +} | ||
380 | + | ||
381 | +/** | ||
382 | + * @description: 创建 导出渲染 | ||
383 | + * @param {} | ||
384 | + * @return {*} | ||
385 | + * @author: * | ||
386 | + */ | ||
387 | +export function createExportMethod( | ||
388 | + getExportCellValue: Function, | ||
389 | + callBack?: (params: VxeGlobalRendererHandles.ExportMethodParams) => Array<any>, | ||
390 | +) { | ||
391 | + return function (params: VxeGlobalRendererHandles.ExportMethodParams) { | ||
392 | + const { row, column, options } = params; | ||
393 | + const args = (callBack && callBack(params)) ?? []; | ||
394 | + return options && options.original | ||
395 | + ? XEUtils.get(row, column.field as string) | ||
396 | + : getExportCellValue(column.editRender || column.cellRender, params, ...args); | ||
397 | + }; | ||
398 | +} | ||
399 | + | ||
400 | +/** | ||
401 | + * @description: 创建单元格默认显示内容 | ||
402 | + */ | ||
403 | +export function createToolbarToolRender( | ||
404 | + defaultProps?: { [key: string]: any }, | ||
405 | + callBack?: ( | ||
406 | + renderOpts: VxeGlobalRendererHandles.RenderToolOptions, | ||
407 | + params: VxeGlobalRendererHandles.RenderToolParams, | ||
408 | + ) => Record<string, any>, | ||
409 | +) { | ||
410 | + return function ( | ||
411 | + renderOpts: VxeGlobalRendererHandles.RenderToolOptions, | ||
412 | + params: VxeGlobalRendererHandles.RenderToolParams, | ||
413 | + ) { | ||
414 | + const { name, attrs } = renderOpts; | ||
415 | + const args = (callBack && callBack(renderOpts, params)) ?? {}; | ||
416 | + | ||
417 | + const Component = getComponent(name); | ||
418 | + return [ | ||
419 | + h(Component, { | ||
420 | + ...attrs, | ||
421 | + ...createProps(renderOpts, null, defaultProps), | ||
422 | + ...args, | ||
423 | + ...createEvents(renderOpts, params), | ||
424 | + }), | ||
425 | + ]; | ||
426 | + }; | ||
427 | +} |
src/components/VxeTable/src/components/index.tsx
0 → 100644
1 | +import { VXETableCore, VxeGlobalInterceptorHandles } from 'vxe-table'; | ||
2 | +import AAutoComplete from './AAutoComplete'; | ||
3 | +import AInput from './AInput'; | ||
4 | +import AInputNumber from './AInputNumber'; | ||
5 | +import ASelect from './ASelect'; | ||
6 | +import ACascader from './ACascader'; | ||
7 | +import ADatePicker from './ADatePicker'; | ||
8 | +import AMonthPicker from './AMonthPicker'; | ||
9 | +import ARangePicker from './ARangePicker'; | ||
10 | +import AWeekPicker from './AWeekPicker'; | ||
11 | +import ATreeSelect from './ATreeSelect'; | ||
12 | +import ATimePicker from './ATimePicker'; | ||
13 | +import ARate from './ARate'; | ||
14 | +import ASwitch from './ASwitch'; | ||
15 | +import ARadioGroup from './ARadioGroup'; | ||
16 | +import ACheckboxGroup from './ACheckboxGroup'; | ||
17 | +import AButton from './AButton'; | ||
18 | +import AButtonGroup from './AButtonGroup'; | ||
19 | +import AApiSelect from './AApiSelect'; | ||
20 | +import AEmpty from './AEmpty'; | ||
21 | +import AInputSearch from './AInputSearch'; | ||
22 | +import AYearPicker from './AYearPicker'; | ||
23 | + | ||
24 | +/** | ||
25 | + * 检查触发源是否属于目标节点 | ||
26 | + */ | ||
27 | +function getEventTargetNode(evnt: any, container: HTMLElement, className: string) { | ||
28 | + let targetElem; | ||
29 | + let target = evnt.target; | ||
30 | + while (target && target.nodeType && target !== document) { | ||
31 | + if ( | ||
32 | + className && | ||
33 | + target.className && | ||
34 | + target.className.split && | ||
35 | + target.className.split(' ').indexOf(className) > -1 | ||
36 | + ) { | ||
37 | + targetElem = target; | ||
38 | + } else if (target === container) { | ||
39 | + return { flag: className ? !!targetElem : true, container, targetElem: targetElem }; | ||
40 | + } | ||
41 | + target = target.parentNode; | ||
42 | + } | ||
43 | + return { flag: false }; | ||
44 | +} | ||
45 | + | ||
46 | +/** | ||
47 | + * 事件兼容性处理 | ||
48 | + */ | ||
49 | +function handleClearEvent( | ||
50 | + params: | ||
51 | + | VxeGlobalInterceptorHandles.InterceptorClearFilterParams | ||
52 | + | VxeGlobalInterceptorHandles.InterceptorClearActivedParams | ||
53 | + | VxeGlobalInterceptorHandles.InterceptorClearAreasParams, | ||
54 | +) { | ||
55 | + const { $event } = params; | ||
56 | + const bodyElem = document.body; | ||
57 | + if ( | ||
58 | + // 下拉框 | ||
59 | + getEventTargetNode($event, bodyElem, 'ant-select-dropdown').flag || | ||
60 | + // 级联 | ||
61 | + getEventTargetNode($event, bodyElem, 'ant-cascader-menus').flag || | ||
62 | + // 日期 | ||
63 | + getEventTargetNode($event, bodyElem, 'ant-calendar-picker-container').flag || | ||
64 | + // 时间选择 | ||
65 | + getEventTargetNode($event, bodyElem, 'ant-time-picker-panel').flag | ||
66 | + ) { | ||
67 | + return false; | ||
68 | + } | ||
69 | +} | ||
70 | + | ||
71 | +/** | ||
72 | + * 基于 vxe-table 表格的适配插件,用于兼容 ant-design-vue 组件库 | ||
73 | + */ | ||
74 | +export const VXETablePluginAntd = { | ||
75 | + install(vxetablecore: VXETableCore) { | ||
76 | + const { interceptor, renderer } = vxetablecore; | ||
77 | + | ||
78 | + renderer.mixin({ | ||
79 | + AAutoComplete, | ||
80 | + AInput, | ||
81 | + AInputNumber, | ||
82 | + ASelect, | ||
83 | + ACascader, | ||
84 | + ADatePicker, | ||
85 | + AMonthPicker, | ||
86 | + ARangePicker, | ||
87 | + AWeekPicker, | ||
88 | + ATimePicker, | ||
89 | + ATreeSelect, | ||
90 | + ARate, | ||
91 | + ASwitch, | ||
92 | + ARadioGroup, | ||
93 | + ACheckboxGroup, | ||
94 | + AButton, | ||
95 | + AButtonGroup, | ||
96 | + AApiSelect, | ||
97 | + AEmpty, | ||
98 | + AInputSearch, | ||
99 | + AYearPicker, | ||
100 | + }); | ||
101 | + | ||
102 | + interceptor.add('event.clearFilter', handleClearEvent); | ||
103 | + interceptor.add('event.clearActived', handleClearEvent); | ||
104 | + interceptor.add('event.clearAreas', handleClearEvent); | ||
105 | + }, | ||
106 | +}; | ||
107 | + | ||
108 | +if (typeof window !== 'undefined' && window.VXETable && window.VXETable.use) { | ||
109 | + window.VXETable.use(VXETablePluginAntd); | ||
110 | +} | ||
111 | + | ||
112 | +export default VXETablePluginAntd; |
src/components/VxeTable/src/const.ts
0 → 100644
src/components/VxeTable/src/css/common.scss
0 → 100644
src/components/VxeTable/src/css/component.scss
0 → 100644
1 | +%ResetBorder { | ||
2 | + border: 0; | ||
3 | + box-shadow: none; | ||
4 | +} | ||
5 | + | ||
6 | +%CompWidth { | ||
7 | + & > .ant-input, | ||
8 | + & > .ant-input-number, | ||
9 | + & > .ant-select, | ||
10 | + & > .ant-cascader-picker, | ||
11 | + & > .ant-calendar-picker, | ||
12 | + & > .ant-time-picker { | ||
13 | + width: 100%; | ||
14 | + } | ||
15 | +} | ||
16 | +.vxe-form { | ||
17 | + .vxe-form--item-content { | ||
18 | + @extend %CompWidth; | ||
19 | + } | ||
20 | +} | ||
21 | +.vxe-table--filter-antd-wrapper { | ||
22 | + & > .ant-input, | ||
23 | + & > .ant-input-number, | ||
24 | + & > .ant-select, | ||
25 | + & > .ant-rate { | ||
26 | + width: 180px; | ||
27 | + } | ||
28 | +} | ||
29 | +.vxe-cell, | ||
30 | +.vxe-tree-cell { | ||
31 | + @extend %CompWidth; | ||
32 | + & > .ant-rate { | ||
33 | + vertical-align: bottom; | ||
34 | + .anticon-star { | ||
35 | + display: block; | ||
36 | + } | ||
37 | + } | ||
38 | +} | ||
39 | +.col--valid-error { | ||
40 | + & > .vxe-cell, | ||
41 | + & > .vxe-tree-cell { | ||
42 | + & > .ant-input, | ||
43 | + & > .ant-select .ant-input, | ||
44 | + & > .ant-select .ant-select-selection, | ||
45 | + & > .ant-input-number, | ||
46 | + & > .ant-cascader-picker .ant-cascader-input, | ||
47 | + & > .ant-calendar-picker .ant-calendar-picker-input { | ||
48 | + // border-color: $vxe-table-validate-error-color; | ||
49 | + box-shadow: none; | ||
50 | + } | ||
51 | + } | ||
52 | +} | ||
53 | +.vxe-table.cell--highlight { | ||
54 | + .vxe-cell, | ||
55 | + .vxe-tree-cell { | ||
56 | + & > .ant-input, | ||
57 | + & > .ant-input-number { | ||
58 | + padding: 0; | ||
59 | + @extend %ResetBorder; | ||
60 | + } | ||
61 | + & > .ant-select { | ||
62 | + .ant-input { | ||
63 | + padding: 0; | ||
64 | + @extend %ResetBorder; | ||
65 | + } | ||
66 | + } | ||
67 | + & > .ant-input-number { | ||
68 | + .ant-input-number-input { | ||
69 | + padding: 0; | ||
70 | + } | ||
71 | + .ant-input-number-handler-wrap, | ||
72 | + .ant-input-number-handler-down { | ||
73 | + @extend %ResetBorder; | ||
74 | + } | ||
75 | + } | ||
76 | + & > .ant-select { | ||
77 | + .ant-select-selection { | ||
78 | + @extend %ResetBorder; | ||
79 | + .ant-select-selection__rendered { | ||
80 | + margin: 0; | ||
81 | + } | ||
82 | + } | ||
83 | + } | ||
84 | + & > .ant-cascader-picker { | ||
85 | + .ant-input { | ||
86 | + @extend %ResetBorder; | ||
87 | + } | ||
88 | + .ant-cascader-picker-label { | ||
89 | + padding: 0; | ||
90 | + } | ||
91 | + } | ||
92 | + & > .ant-calendar-picker { | ||
93 | + .ant-calendar-picker-input { | ||
94 | + padding: 0; | ||
95 | + @extend %ResetBorder; | ||
96 | + } | ||
97 | + } | ||
98 | + & > .ant-time-picker { | ||
99 | + .ant-time-picker-input { | ||
100 | + padding: 0; | ||
101 | + @extend %ResetBorder; | ||
102 | + } | ||
103 | + } | ||
104 | + } | ||
105 | +} |
src/components/VxeTable/src/css/index.scss
0 → 100644
src/components/VxeTable/src/css/scrollbar.scss
0 → 100644
1 | +.vxe-grid_scrollbar { | ||
2 | + ::-webkit-scrollbar { | ||
3 | + width: 8px; | ||
4 | + height: 8px; | ||
5 | + } | ||
6 | + ::-webkit-scrollbar-track { | ||
7 | + background-color: #ffffff; | ||
8 | + } | ||
9 | + ::-webkit-scrollbar-thumb { | ||
10 | + background-color: rgba(0, 0, 0, 0.1); | ||
11 | + border-radius: 5px; | ||
12 | + border: 1px solid #f1f1f1; | ||
13 | + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); | ||
14 | + } | ||
15 | + ::-webkit-scrollbar-thumb:hover { | ||
16 | + background-color: #a8a8a8; | ||
17 | + } | ||
18 | + ::-webkit-scrollbar-thumb:active { | ||
19 | + background-color: #a8a8a8; | ||
20 | + } | ||
21 | + ::-webkit-scrollbar-corner { | ||
22 | + background-color: #ffffff; | ||
23 | + } | ||
24 | +} |
src/components/VxeTable/src/css/toolbar.scss
0 → 100644
1 | +.vxe-toolbar .vxe-custom--option-wrapper .vxe-custom--footer { | ||
2 | + display: flex; | ||
3 | +} | ||
4 | + | ||
5 | +.vxe-toolbar .vxe-tools--wrapper, | ||
6 | +.vxe-toolbar .vxe-tools--operate button:first-child { | ||
7 | + margin: 0; | ||
8 | +} | ||
9 | + | ||
10 | +.vxe-toolbar .vxe-tools--wrapper, | ||
11 | +.vxe-toolbar .vxe-tools--operate .vxe-button { | ||
12 | + margin-left: 1px; | ||
13 | + border-radius: 0 !important; | ||
14 | +} | ||
15 | + | ||
16 | +.vxe-toolbar .vxe-tools--wrapper, | ||
17 | +.vxe-toolbar .vxe-tools--operate button:first-child { | ||
18 | + margin-left: 10px; | ||
19 | +} | ||
20 | + | ||
21 | +.vxe-toolbar .vxe-tools--wrapper, | ||
22 | +.vxe-toolbar .vxe-tools--operate .vxe-custom--wrapper { | ||
23 | + margin-left: 1px; | ||
24 | + border-radius: 0 !important; | ||
25 | +} | ||
26 | + | ||
27 | +.vxe-toolbar .vxe-tools--wrapper, | ||
28 | +.vxe-toolbar .vxe-tools--operate .vxe-custom--wrapper .vxe-button { | ||
29 | + margin-left: 1px; | ||
30 | +} |
src/components/VxeTable/src/css/variable.scss
0 → 100644
1 | +$vxe-primary-color: rgb(9, 96, 189) !default; | ||
2 | +$vxe-table-row-current-background-color: rgba(9, 96, 189, 0.3); | ||
3 | +$vxe-table-row-hover-current-background-color: rgba(9, 96, 189, 0.2); | ||
4 | +$vxe-table-column-hover-background-color: rgba(9, 96, 189, 0.3); | ||
5 | +$vxe-table-column-current-background-color: rgba(9, 96, 189, 0.2); | ||
6 | +$vxe-table-validate-error-color: #f56c6c; |
src/components/VxeTable/src/emits.ts
0 → 100644
1 | +import tableEmits from 'vxe-table/es/table/src/emits'; | ||
2 | + | ||
3 | +export const basicEmits = [ | ||
4 | + ...tableEmits, | ||
5 | + 'page-change', | ||
6 | + 'form-submit', | ||
7 | + 'form-submit-invalid', | ||
8 | + 'form-reset', | ||
9 | + 'form-collapse', | ||
10 | + 'form-toggle-collapse', | ||
11 | + 'toolbar-button-click', | ||
12 | + 'toolbar-tool-click', | ||
13 | + 'zoom', | ||
14 | + | ||
15 | + //... 如有缺少在此处追加 | ||
16 | + // xxx | ||
17 | +]; |
src/components/VxeTable/src/helper.ts
0 → 100644
1 | +import { ComponentType } from './componentType'; | ||
2 | +import { useI18n } from '/@/hooks/web/useI18n'; | ||
3 | + | ||
4 | +const { t } = useI18n(); | ||
5 | + | ||
6 | +/** | ||
7 | + * @description: 生成placeholder | ||
8 | + */ | ||
9 | +export function createPlaceholderMessage(component: ComponentType) { | ||
10 | + if (!component) return; | ||
11 | + if (component.includes('RangePicker')) { | ||
12 | + return [t('common.chooseText'), t('common.chooseText')]; | ||
13 | + } | ||
14 | + if (component.includes('Input') || component.includes('Complete') || component.includes('Rate')) { | ||
15 | + return t('common.inputText'); | ||
16 | + } else { | ||
17 | + return t('common.chooseText'); | ||
18 | + } | ||
19 | +} |
src/components/VxeTable/src/methods.ts
0 → 100644
1 | +import { GridMethods, TableMethods } from 'vxe-table'; | ||
2 | + | ||
3 | +export const gridComponentMethodKeys: (keyof GridMethods | keyof TableMethods)[] = [ | ||
4 | + // vxe-grid 部分 | ||
5 | + 'dispatchEvent', | ||
6 | + 'commitProxy', | ||
7 | + 'getFormItems', | ||
8 | + 'getPendingRecords', | ||
9 | + 'zoom', | ||
10 | + 'isMaximized', | ||
11 | + 'maximize', | ||
12 | + 'revert', | ||
13 | + 'getProxyInfo', | ||
14 | + | ||
15 | + // vxe-table和vxe-grid公共部分 | ||
16 | + 'clearAll', | ||
17 | + 'syncData', | ||
18 | + 'updateData', | ||
19 | + 'loadData', | ||
20 | + 'reloadData', | ||
21 | + 'reloadRow', | ||
22 | + 'loadColumn', | ||
23 | + 'reloadColumn', | ||
24 | + 'getRowNode', | ||
25 | + 'getColumnNode', | ||
26 | + 'getRowIndex', | ||
27 | + 'getVTRowIndex', | ||
28 | + 'getVMRowIndex', | ||
29 | + 'getColumnIndex', | ||
30 | + 'getVTColumnIndex', | ||
31 | + 'getVMColumnIndex', | ||
32 | + 'createData', | ||
33 | + 'createRow', | ||
34 | + 'revertData', | ||
35 | + 'clearData', | ||
36 | + 'isInsertByRow', | ||
37 | + 'isUpdateByRow', | ||
38 | + 'getColumns', | ||
39 | + 'getColumnById', | ||
40 | + 'getColumnByField', | ||
41 | + 'getTableColumn', | ||
42 | + 'getData', | ||
43 | + 'getCheckboxRecords', | ||
44 | + 'getParentRow', | ||
45 | + 'getRowSeq', | ||
46 | + 'getRowById', | ||
47 | + 'getRowid', | ||
48 | + 'getTableData', | ||
49 | + 'hideColumn', | ||
50 | + 'showColumn', | ||
51 | + 'resetColumn', | ||
52 | + 'refreshColumn', | ||
53 | + 'refreshScroll', | ||
54 | + 'recalculate', | ||
55 | + 'closeTooltip', | ||
56 | + 'isAllCheckboxChecked', | ||
57 | + 'isAllCheckboxIndeterminate', | ||
58 | + 'getCheckboxIndeterminateRecords', | ||
59 | + 'setCheckboxRow', | ||
60 | + 'isCheckedByCheckboxRow', | ||
61 | + 'isIndeterminateByCheckboxRow', | ||
62 | + 'toggleCheckboxRow', | ||
63 | + 'setAllCheckboxRow', | ||
64 | + 'getRadioReserveRecord', | ||
65 | + 'clearRadioReserve', | ||
66 | + 'getCheckboxReserveRecords', | ||
67 | + 'clearCheckboxReserve', | ||
68 | + 'toggleAllCheckboxRow', | ||
69 | + 'clearCheckboxRow', | ||
70 | + 'setCurrentRow', | ||
71 | + 'isCheckedByRadioRow', | ||
72 | + 'setRadioRow', | ||
73 | + 'clearCurrentRow', | ||
74 | + 'clearRadioRow', | ||
75 | + 'getCurrentRecord', | ||
76 | + 'getRadioRecord', | ||
77 | + 'getCurrentColumn', | ||
78 | + 'setCurrentColumn', | ||
79 | + 'clearCurrentColumn', | ||
80 | + 'sort', | ||
81 | + 'clearSort', | ||
82 | + 'isSort', | ||
83 | + 'getSortColumns', | ||
84 | + 'closeFilter', | ||
85 | + 'isFilter', | ||
86 | + 'isRowExpandLoaded', | ||
87 | + 'clearRowExpandLoaded', | ||
88 | + 'reloadRowExpand', | ||
89 | + 'reloadRowExpand', | ||
90 | + 'toggleRowExpand', | ||
91 | + 'setAllRowExpand', | ||
92 | + 'setRowExpand', | ||
93 | + 'isExpandByRow', | ||
94 | + 'clearRowExpand', | ||
95 | + 'clearRowExpandReserve', | ||
96 | + 'getRowExpandRecords', | ||
97 | + 'getTreeExpandRecords', | ||
98 | + 'isTreeExpandLoaded', | ||
99 | + 'clearTreeExpandLoaded', | ||
100 | + 'reloadTreeExpand', | ||
101 | + 'reloadTreeChilds', | ||
102 | + 'toggleTreeExpand', | ||
103 | + 'setAllTreeExpand', | ||
104 | + 'setTreeExpand', | ||
105 | + 'isTreeExpandByRow', | ||
106 | + 'clearTreeExpand', | ||
107 | + 'clearTreeExpandReserve', | ||
108 | + 'getScroll', | ||
109 | + 'scrollTo', | ||
110 | + 'scrollToRow', | ||
111 | + 'scrollToColumn', | ||
112 | + 'clearScroll', | ||
113 | + 'updateFooter', | ||
114 | + 'updateStatus', | ||
115 | + 'setMergeCells', | ||
116 | + 'removeInsertRow', | ||
117 | + 'removeMergeCells', | ||
118 | + 'getMergeCells', | ||
119 | + 'clearMergeCells', | ||
120 | + 'setMergeFooterItems', | ||
121 | + 'removeMergeFooterItems', | ||
122 | + 'getMergeFooterItems', | ||
123 | + 'clearMergeFooterItems', | ||
124 | + 'openTooltip', | ||
125 | + 'focus', | ||
126 | + 'blur', | ||
127 | + 'connect', | ||
128 | + | ||
129 | + //... 如有缺少在此处追加 | ||
130 | + // xxx | ||
131 | +]; |
src/components/VxeTable/src/props.ts
0 → 100644
1 | +import { VxeGridPropTypes, VxeTablePropTypes } from 'vxe-table'; | ||
2 | +import tableProps from 'vxe-table/es/table/src/props'; | ||
3 | +import { CSSProperties } from 'vue'; | ||
4 | + | ||
5 | +/** | ||
6 | + * @description: table二次开发需要后,需要接受的所有prop属性 | ||
7 | + */ | ||
8 | +export const basicProps = { | ||
9 | + ...tableProps, | ||
10 | + columns: Array as PropType<VxeGridPropTypes.Columns>, | ||
11 | + pagerConfig: { | ||
12 | + type: Object as PropType<VxeGridPropTypes.PagerConfig>, | ||
13 | + default: () => ({}), | ||
14 | + }, | ||
15 | + proxyConfig: { | ||
16 | + type: Object as PropType<VxeGridPropTypes.ProxyConfig>, | ||
17 | + default: () => ({}), | ||
18 | + }, | ||
19 | + toolbarConfig: { | ||
20 | + type: Object as PropType<VxeGridPropTypes.ToolbarConfig>, | ||
21 | + default: () => ({}), | ||
22 | + }, | ||
23 | + formConfig: { | ||
24 | + type: Object as PropType<VxeGridPropTypes.FormConfig>, | ||
25 | + default: () => ({}), | ||
26 | + }, | ||
27 | + zoomConfig: { | ||
28 | + type: Object as PropType<VxeGridPropTypes.ZoomConfig>, | ||
29 | + default: () => ({}), | ||
30 | + }, | ||
31 | + printConfig: { | ||
32 | + type: Object as PropType<VxeTablePropTypes.PrintConfig>, | ||
33 | + default: () => ({}), | ||
34 | + }, | ||
35 | + exportConfig: { | ||
36 | + type: Object as PropType<VxeTablePropTypes.ExportConfig>, | ||
37 | + default: () => ({}), | ||
38 | + }, | ||
39 | + importConfig: { | ||
40 | + type: Object as PropType<VxeTablePropTypes.ImportConfig>, | ||
41 | + default: () => ({}), | ||
42 | + }, | ||
43 | + size: String as PropType<VxeGridPropTypes.Size>, | ||
44 | + tableClass: { | ||
45 | + type: String, | ||
46 | + default: '', | ||
47 | + }, | ||
48 | + tableStyle: { | ||
49 | + type: Object as PropType<CSSProperties>, | ||
50 | + default: () => ({}), | ||
51 | + }, | ||
52 | +}; |
src/components/VxeTable/src/setting.ts
0 → 100644
src/components/VxeTable/src/types.ts
0 → 100644
src/components/registerGlobComp.ts
1 | import type { App } from 'vue'; | 1 | import type { App } from 'vue'; |
2 | import { Button } from './Button'; | 2 | import { Button } from './Button'; |
3 | import { Input, Layout } from 'ant-design-vue'; | 3 | import { Input, Layout } from 'ant-design-vue'; |
4 | +import VXETable from 'vxe-table'; | ||
4 | 5 | ||
5 | export function registerGlobComp(app: App) { | 6 | export function registerGlobComp(app: App) { |
6 | - app.use(Input).use(Button).use(Layout); | 7 | + app.use(Input).use(Button).use(Layout).use(VXETable); |
7 | } | 8 | } |
src/locales/lang/en/routes/demo.ts
@@ -198,5 +198,6 @@ export default { | @@ -198,5 +198,6 @@ export default { | ||
198 | editRowTable: 'Editable row', | 198 | editRowTable: 'Editable row', |
199 | authColumn: 'Auth column', | 199 | authColumn: 'Auth column', |
200 | resizeParentHeightTable: 'resizeParentHeightTable', | 200 | resizeParentHeightTable: 'resizeParentHeightTable', |
201 | + vxeTable: 'VxeTable', | ||
201 | }, | 202 | }, |
202 | }; | 203 | }; |
src/locales/lang/zh-CN/routes/demo.ts
@@ -189,5 +189,6 @@ export default { | @@ -189,5 +189,6 @@ export default { | ||
189 | editRowTable: '可编辑行', | 189 | editRowTable: '可编辑行', |
190 | authColumn: '权限列', | 190 | authColumn: '权限列', |
191 | resizeParentHeightTable: '继承父元素高度', | 191 | resizeParentHeightTable: '继承父元素高度', |
192 | + vxeTable: 'VxeTable', | ||
192 | }, | 193 | }, |
193 | }; | 194 | }; |
src/main.ts
1 | import 'virtual:windi-base.css'; | 1 | import 'virtual:windi-base.css'; |
2 | import 'virtual:windi-components.css'; | 2 | import 'virtual:windi-components.css'; |
3 | import '/@/design/index.less'; | 3 | import '/@/design/index.less'; |
4 | +import '/@/components/VxeTable/src/css/index.scss'; | ||
4 | import 'virtual:windi-utilities.css'; | 5 | import 'virtual:windi-utilities.css'; |
5 | // Register icon sprite | 6 | // Register icon sprite |
6 | import 'virtual:svg-icons-register'; | 7 | import 'virtual:svg-icons-register'; |
src/router/routes/modules/demo/comp.ts
@@ -255,6 +255,14 @@ const comp: AppRouteModule = { | @@ -255,6 +255,14 @@ const comp: AppRouteModule = { | ||
255 | title: t('routes.demo.table.resizeParentHeightTable'), | 255 | title: t('routes.demo.table.resizeParentHeightTable'), |
256 | }, | 256 | }, |
257 | }, | 257 | }, |
258 | + { | ||
259 | + path: 'vxeTable', | ||
260 | + name: 'VxeTableDemo', | ||
261 | + component: () => import('/@/views/demo/table/VxeTable.vue'), | ||
262 | + meta: { | ||
263 | + title: t('routes.demo.table.vxeTable'), | ||
264 | + }, | ||
265 | + }, | ||
258 | ], | 266 | ], |
259 | }, | 267 | }, |
260 | { | 268 | { |
src/settings/componentSetting.ts
@@ -42,6 +42,52 @@ export default { | @@ -42,6 +42,52 @@ export default { | ||
42 | return data; | 42 | return data; |
43 | }, | 43 | }, |
44 | }, | 44 | }, |
45 | + vxeTable: { | ||
46 | + table: { | ||
47 | + border: true, | ||
48 | + stripe: true, | ||
49 | + columnConfig: { | ||
50 | + resizable: true, | ||
51 | + isCurrent: true, | ||
52 | + isHover: true, | ||
53 | + }, | ||
54 | + rowConfig: { | ||
55 | + isCurrent: true, | ||
56 | + isHover: true, | ||
57 | + }, | ||
58 | + emptyRender: { | ||
59 | + name: 'AEmpty', | ||
60 | + }, | ||
61 | + printConfig: {}, | ||
62 | + exportConfig: {}, | ||
63 | + customConfig: { | ||
64 | + storage: true, | ||
65 | + }, | ||
66 | + }, | ||
67 | + grid: { | ||
68 | + toolbarConfig: { | ||
69 | + enabled: true, | ||
70 | + export: true, | ||
71 | + zoom: true, | ||
72 | + print: true, | ||
73 | + refresh: true, | ||
74 | + custom: true, | ||
75 | + }, | ||
76 | + pagerConfig: { | ||
77 | + pageSizes: [20, 50, 100, 500], | ||
78 | + pageSize: 20, | ||
79 | + autoHidden: true, | ||
80 | + }, | ||
81 | + proxyConfig: { | ||
82 | + form: true, | ||
83 | + props: { | ||
84 | + result: 'items', | ||
85 | + total: 'total', | ||
86 | + }, | ||
87 | + }, | ||
88 | + zoomConfig: {}, | ||
89 | + }, | ||
90 | + }, | ||
45 | // scrollbar setting | 91 | // scrollbar setting |
46 | scrollbar: { | 92 | scrollbar: { |
47 | // Whether to use native scroll bar | 93 | // Whether to use native scroll bar |
src/views/demo/table/VxeTable.vue
0 → 100644
1 | +<template> | ||
2 | + <PageWrapper | ||
3 | + title="VxeTable表格" | ||
4 | + content="只展示部分操作,详细功能请查看VxeTable官网事例" | ||
5 | + contentFullHeight | ||
6 | + fixedHeight | ||
7 | + > | ||
8 | + <VxeBasicTable ref="tableRef" v-bind="gridOptions"> | ||
9 | + <template #action="{ row }"> | ||
10 | + <TableAction :actions="createActions(row)" /> | ||
11 | + </template> | ||
12 | + </VxeBasicTable> | ||
13 | + </PageWrapper> | ||
14 | +</template> | ||
15 | +<script lang="ts" setup> | ||
16 | + import { reactive, ref } from 'vue'; | ||
17 | + import { TableAction, ActionItem } from '/@/components/Table'; | ||
18 | + import { PageWrapper } from '/@/components/Page'; | ||
19 | + import { useMessage } from '/@/hooks/web/useMessage'; | ||
20 | + import { vxeTableColumns, vxeTableFormSchema } from './tableData'; | ||
21 | + import { VxeBasicTable, BasicTableProps, VxeGridInstance } from '/@/components/VxeTable'; | ||
22 | + import { demoListApi } from '/@/api/demo/table'; | ||
23 | + | ||
24 | + const { createMessage } = useMessage(); | ||
25 | + | ||
26 | + const tableRef = ref<VxeGridInstance>(); | ||
27 | + | ||
28 | + const gridOptions = reactive<BasicTableProps>({ | ||
29 | + id: 'VxeTable', | ||
30 | + editConfig: { trigger: 'click', mode: 'cell', showStatus: true }, | ||
31 | + columns: vxeTableColumns, | ||
32 | + toolbarConfig: { | ||
33 | + buttons: [ | ||
34 | + { | ||
35 | + content: '自定义按钮', | ||
36 | + buttonRender: { | ||
37 | + name: 'AButton', | ||
38 | + props: { | ||
39 | + type: 'primary', | ||
40 | + }, | ||
41 | + events: { | ||
42 | + click: () => { | ||
43 | + createMessage.success('点击了自定义按钮'); | ||
44 | + }, | ||
45 | + }, | ||
46 | + }, | ||
47 | + }, | ||
48 | + ], | ||
49 | + }, | ||
50 | + formConfig: { | ||
51 | + enabled: true, | ||
52 | + items: vxeTableFormSchema, | ||
53 | + }, | ||
54 | + height: 'auto', | ||
55 | + proxyConfig: { | ||
56 | + ajax: { | ||
57 | + query: async ({ page, form }) => { | ||
58 | + return demoListApi({ | ||
59 | + pageNum: page.currentPage, | ||
60 | + pageSize: page.pageSize, | ||
61 | + ...form, | ||
62 | + }); | ||
63 | + }, | ||
64 | + queryAll: async ({ form }) => { | ||
65 | + const data = await demoListApi(form); | ||
66 | + return data; | ||
67 | + }, | ||
68 | + }, | ||
69 | + }, | ||
70 | + }); | ||
71 | + | ||
72 | + // 操作按钮(权限控制) | ||
73 | + const createActions = (record) => { | ||
74 | + const actions: ActionItem[] = [ | ||
75 | + { | ||
76 | + label: '详情', | ||
77 | + onClick: () => { | ||
78 | + console.log(record); | ||
79 | + }, | ||
80 | + }, | ||
81 | + { | ||
82 | + label: '编辑', | ||
83 | + onClick: () => {}, | ||
84 | + }, | ||
85 | + { | ||
86 | + label: '删除', | ||
87 | + color: 'error', | ||
88 | + popConfirm: { | ||
89 | + title: '是否确认删除', | ||
90 | + confirm: () => {}, | ||
91 | + }, | ||
92 | + }, | ||
93 | + ]; | ||
94 | + | ||
95 | + return actions; | ||
96 | + }; | ||
97 | +</script> |
src/views/demo/table/tableData.tsx
1 | +import { optionsListApi } from '/@/api/demo/select'; | ||
1 | import { FormProps, FormSchema } from '/@/components/Table'; | 2 | import { FormProps, FormSchema } from '/@/components/Table'; |
2 | import { BasicColumn } from '/@/components/Table/src/types/table'; | 3 | import { BasicColumn } from '/@/components/Table/src/types/table'; |
4 | +import { VxeFormItemProps, VxeGridPropTypes } from '/@/components/VxeTable'; | ||
3 | 5 | ||
4 | export function getBasicColumns(): BasicColumn[] { | 6 | export function getBasicColumns(): BasicColumn[] { |
5 | return [ | 7 | return [ |
@@ -302,3 +304,111 @@ export function getTreeTableData() { | @@ -302,3 +304,111 @@ export function getTreeTableData() { | ||
302 | return arr; | 304 | return arr; |
303 | })(); | 305 | })(); |
304 | } | 306 | } |
307 | + | ||
308 | +export const vxeTableColumns: VxeGridPropTypes.Columns = [ | ||
309 | + { | ||
310 | + title: '序号', | ||
311 | + type: 'seq', | ||
312 | + fixed: 'left', | ||
313 | + width: '50', | ||
314 | + align: 'center', | ||
315 | + }, | ||
316 | + { | ||
317 | + title: '固定列', | ||
318 | + field: 'name', | ||
319 | + width: 150, | ||
320 | + showOverflow: 'tooltip', | ||
321 | + fixed: 'left', | ||
322 | + }, | ||
323 | + { | ||
324 | + title: '自适应列', | ||
325 | + field: 'address', | ||
326 | + }, | ||
327 | + { | ||
328 | + title: '自定义列(自定义导出)', | ||
329 | + field: 'no', | ||
330 | + width: 200, | ||
331 | + showOverflow: 'tooltip', | ||
332 | + align: 'center', | ||
333 | + slots: { | ||
334 | + default: ({ row }) => { | ||
335 | + const text = `自定义${row.no}`; | ||
336 | + return [<div class="text-red-500">{text}</div>]; | ||
337 | + }, | ||
338 | + }, | ||
339 | + exportMethod: ({ row }) => { | ||
340 | + return `自定义${row.no}导出`; | ||
341 | + }, | ||
342 | + }, | ||
343 | + { | ||
344 | + title: '自定义编辑', | ||
345 | + width: 150, | ||
346 | + field: 'name1', | ||
347 | + align: 'center', | ||
348 | + editRender: { | ||
349 | + name: 'AInput', | ||
350 | + placeholder: '请点击输入', | ||
351 | + }, | ||
352 | + }, | ||
353 | + { | ||
354 | + title: '开始时间', | ||
355 | + width: 150, | ||
356 | + field: 'beginTime', | ||
357 | + showOverflow: 'tooltip', | ||
358 | + align: 'center', | ||
359 | + }, | ||
360 | + { | ||
361 | + title: '结束时间', | ||
362 | + width: 150, | ||
363 | + field: 'endTime', | ||
364 | + showOverflow: 'tooltip', | ||
365 | + align: 'center', | ||
366 | + }, | ||
367 | + { | ||
368 | + width: 160, | ||
369 | + title: '操作', | ||
370 | + align: 'center', | ||
371 | + slots: { default: 'action' }, | ||
372 | + fixed: 'right', | ||
373 | + }, | ||
374 | +]; | ||
375 | + | ||
376 | +export const vxeTableFormSchema: VxeFormItemProps[] = [ | ||
377 | + { | ||
378 | + field: 'field0', | ||
379 | + title: 'field0', | ||
380 | + itemRender: { | ||
381 | + name: 'AInput', | ||
382 | + }, | ||
383 | + span: 6, | ||
384 | + }, | ||
385 | + { | ||
386 | + field: 'field1', | ||
387 | + title: 'field1', | ||
388 | + itemRender: { | ||
389 | + name: 'AApiSelect', | ||
390 | + props: { | ||
391 | + api: optionsListApi, | ||
392 | + resultField: 'list', | ||
393 | + labelField: 'name', | ||
394 | + valueField: 'id', | ||
395 | + }, | ||
396 | + }, | ||
397 | + span: 6, | ||
398 | + }, | ||
399 | + { | ||
400 | + span: 12, | ||
401 | + align: 'right', | ||
402 | + className: '!pr-0', | ||
403 | + itemRender: { | ||
404 | + name: 'AButtonGroup', | ||
405 | + children: [ | ||
406 | + { | ||
407 | + props: { type: 'primary', content: '查询', htmlType: 'submit' }, | ||
408 | + attrs: { class: 'mr-2' }, | ||
409 | + }, | ||
410 | + { props: { type: 'default', htmlType: 'reset', content: '重置' } }, | ||
411 | + ], | ||
412 | + }, | ||
413 | + }, | ||
414 | +]; |
yarn.lock
@@ -1151,6 +1151,31 @@ | @@ -1151,6 +1151,31 @@ | ||
1151 | minimatch "^3.1.2" | 1151 | minimatch "^3.1.2" |
1152 | strip-json-comments "^3.1.1" | 1152 | strip-json-comments "^3.1.1" |
1153 | 1153 | ||
1154 | +"@fast-csv/format@4.3.5": | ||
1155 | + version "4.3.5" | ||
1156 | + resolved "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz#90d83d1b47b6aaf67be70d6118f84f3e12ee1ff3" | ||
1157 | + integrity sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A== | ||
1158 | + dependencies: | ||
1159 | + "@types/node" "^14.0.1" | ||
1160 | + lodash.escaperegexp "^4.1.2" | ||
1161 | + lodash.isboolean "^3.0.3" | ||
1162 | + lodash.isequal "^4.5.0" | ||
1163 | + lodash.isfunction "^3.0.9" | ||
1164 | + lodash.isnil "^4.0.0" | ||
1165 | + | ||
1166 | +"@fast-csv/parse@4.3.6": | ||
1167 | + version "4.3.6" | ||
1168 | + resolved "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz#ee47d0640ca0291034c7aa94039a744cfb019264" | ||
1169 | + integrity sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA== | ||
1170 | + dependencies: | ||
1171 | + "@types/node" "^14.0.1" | ||
1172 | + lodash.escaperegexp "^4.1.2" | ||
1173 | + lodash.groupby "^4.6.0" | ||
1174 | + lodash.isfunction "^3.0.9" | ||
1175 | + lodash.isnil "^4.0.0" | ||
1176 | + lodash.isundefined "^3.0.1" | ||
1177 | + lodash.uniq "^4.5.0" | ||
1178 | + | ||
1154 | "@humanwhocodes/config-array@^0.9.2": | 1179 | "@humanwhocodes/config-array@^0.9.2": |
1155 | version "0.9.5" | 1180 | version "0.9.5" |
1156 | resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" | 1181 | resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" |
@@ -1719,6 +1744,11 @@ | @@ -1719,6 +1744,11 @@ | ||
1719 | resolved "https://registry.npmmirror.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" | 1744 | resolved "https://registry.npmmirror.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" |
1720 | integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== | 1745 | integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== |
1721 | 1746 | ||
1747 | +"@types/node@^14.0.1": | ||
1748 | + version "14.18.36" | ||
1749 | + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz#c414052cb9d43fab67d679d5f3c641be911f5835" | ||
1750 | + integrity sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ== | ||
1751 | + | ||
1722 | "@types/node@^14.17.1": | 1752 | "@types/node@^14.17.1": |
1723 | version "14.18.21" | 1753 | version "14.18.21" |
1724 | resolved "https://registry.npmmirror.com/@types/node/-/node-14.18.21.tgz#0155ee46f6be28b2ff0342ca1a9b9fd4468bef41" | 1754 | resolved "https://registry.npmmirror.com/@types/node/-/node-14.18.21.tgz#0155ee46f6be28b2ff0342ca1a9b9fd4468bef41" |
@@ -2355,6 +2385,35 @@ archive-type@^4.0.0: | @@ -2355,6 +2385,35 @@ archive-type@^4.0.0: | ||
2355 | dependencies: | 2385 | dependencies: |
2356 | file-type "^4.2.0" | 2386 | file-type "^4.2.0" |
2357 | 2387 | ||
2388 | +archiver-utils@^2.1.0: | ||
2389 | + version "2.1.0" | ||
2390 | + resolved "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" | ||
2391 | + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== | ||
2392 | + dependencies: | ||
2393 | + glob "^7.1.4" | ||
2394 | + graceful-fs "^4.2.0" | ||
2395 | + lazystream "^1.0.0" | ||
2396 | + lodash.defaults "^4.2.0" | ||
2397 | + lodash.difference "^4.5.0" | ||
2398 | + lodash.flatten "^4.4.0" | ||
2399 | + lodash.isplainobject "^4.0.6" | ||
2400 | + lodash.union "^4.6.0" | ||
2401 | + normalize-path "^3.0.0" | ||
2402 | + readable-stream "^2.0.0" | ||
2403 | + | ||
2404 | +archiver@^5.0.0: | ||
2405 | + version "5.3.1" | ||
2406 | + resolved "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" | ||
2407 | + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== | ||
2408 | + dependencies: | ||
2409 | + archiver-utils "^2.1.0" | ||
2410 | + async "^3.2.3" | ||
2411 | + buffer-crc32 "^0.2.1" | ||
2412 | + readable-stream "^3.6.0" | ||
2413 | + readdir-glob "^1.0.0" | ||
2414 | + tar-stream "^2.2.0" | ||
2415 | + zip-stream "^4.1.0" | ||
2416 | + | ||
2358 | arg@^4.1.0: | 2417 | arg@^4.1.0: |
2359 | version "4.1.3" | 2418 | version "4.1.3" |
2360 | resolved "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" | 2419 | resolved "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" |
@@ -2530,6 +2589,11 @@ before-after-hook@^2.2.0: | @@ -2530,6 +2589,11 @@ before-after-hook@^2.2.0: | ||
2530 | resolved "https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" | 2589 | resolved "https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" |
2531 | integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== | 2590 | integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== |
2532 | 2591 | ||
2592 | +big-integer@^1.6.17: | ||
2593 | + version "1.6.51" | ||
2594 | + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" | ||
2595 | + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== | ||
2596 | + | ||
2533 | big.js@^5.2.2: | 2597 | big.js@^5.2.2: |
2534 | version "5.2.2" | 2598 | version "5.2.2" |
2535 | resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" | 2599 | resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" |
@@ -2594,6 +2658,14 @@ binary-mirror-config@^1: | @@ -2594,6 +2658,14 @@ binary-mirror-config@^1: | ||
2594 | resolved "https://registry.npmmirror.com/binary-mirror-config/-/binary-mirror-config-1.41.0.tgz#b68032588392bee9262971f977922d075513964b" | 2658 | resolved "https://registry.npmmirror.com/binary-mirror-config/-/binary-mirror-config-1.41.0.tgz#b68032588392bee9262971f977922d075513964b" |
2595 | integrity sha512-ZiIhR1s6Sv1Fv6qCQqfPjx0Cj86BgFlhqNxZgHkQOWcxJcMbO3mj1iqsuVjowYqJqeZL8e52+IEv7IRnSX6T6w== | 2659 | integrity sha512-ZiIhR1s6Sv1Fv6qCQqfPjx0Cj86BgFlhqNxZgHkQOWcxJcMbO3mj1iqsuVjowYqJqeZL8e52+IEv7IRnSX6T6w== |
2596 | 2660 | ||
2661 | +binary@~0.3.0: | ||
2662 | + version "0.3.0" | ||
2663 | + resolved "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" | ||
2664 | + integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== | ||
2665 | + dependencies: | ||
2666 | + buffers "~0.1.1" | ||
2667 | + chainsaw "~0.1.0" | ||
2668 | + | ||
2597 | bl@^1.0.0: | 2669 | bl@^1.0.0: |
2598 | version "1.2.3" | 2670 | version "1.2.3" |
2599 | resolved "https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" | 2671 | resolved "https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" |
@@ -2602,7 +2674,7 @@ bl@^1.0.0: | @@ -2602,7 +2674,7 @@ bl@^1.0.0: | ||
2602 | readable-stream "^2.3.5" | 2674 | readable-stream "^2.3.5" |
2603 | safe-buffer "^5.1.1" | 2675 | safe-buffer "^5.1.1" |
2604 | 2676 | ||
2605 | -bl@^4.1.0: | 2677 | +bl@^4.0.3, bl@^4.1.0: |
2606 | version "4.1.0" | 2678 | version "4.1.0" |
2607 | resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" | 2679 | resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" |
2608 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== | 2680 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== |
@@ -2616,6 +2688,11 @@ bluebird@^3.5.0: | @@ -2616,6 +2688,11 @@ bluebird@^3.5.0: | ||
2616 | resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" | 2688 | resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" |
2617 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== | 2689 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== |
2618 | 2690 | ||
2691 | +bluebird@~3.4.1: | ||
2692 | + version "3.4.7" | ||
2693 | + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" | ||
2694 | + integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== | ||
2695 | + | ||
2619 | boolbase@^1.0.0: | 2696 | boolbase@^1.0.0: |
2620 | version "1.0.0" | 2697 | version "1.0.0" |
2621 | resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" | 2698 | resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" |
@@ -2682,7 +2759,7 @@ buffer-alloc@^1.2.0: | @@ -2682,7 +2759,7 @@ buffer-alloc@^1.2.0: | ||
2682 | buffer-alloc-unsafe "^1.1.0" | 2759 | buffer-alloc-unsafe "^1.1.0" |
2683 | buffer-fill "^1.0.0" | 2760 | buffer-fill "^1.0.0" |
2684 | 2761 | ||
2685 | -buffer-crc32@~0.2.3: | 2762 | +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: |
2686 | version "0.2.13" | 2763 | version "0.2.13" |
2687 | resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" | 2764 | resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" |
2688 | integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== | 2765 | integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== |
@@ -2697,6 +2774,11 @@ buffer-from@^1.0.0: | @@ -2697,6 +2774,11 @@ buffer-from@^1.0.0: | ||
2697 | resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" | 2774 | resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" |
2698 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== | 2775 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== |
2699 | 2776 | ||
2777 | +buffer-indexof-polyfill@~1.0.0: | ||
2778 | + version "1.0.2" | ||
2779 | + resolved "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" | ||
2780 | + integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== | ||
2781 | + | ||
2700 | buffer@^5.2.1, buffer@^5.5.0: | 2782 | buffer@^5.2.1, buffer@^5.5.0: |
2701 | version "5.7.1" | 2783 | version "5.7.1" |
2702 | resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" | 2784 | resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" |
@@ -2705,6 +2787,11 @@ buffer@^5.2.1, buffer@^5.5.0: | @@ -2705,6 +2787,11 @@ buffer@^5.2.1, buffer@^5.5.0: | ||
2705 | base64-js "^1.3.1" | 2787 | base64-js "^1.3.1" |
2706 | ieee754 "^1.1.13" | 2788 | ieee754 "^1.1.13" |
2707 | 2789 | ||
2790 | +buffers@~0.1.1: | ||
2791 | + version "0.1.1" | ||
2792 | + resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" | ||
2793 | + integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== | ||
2794 | + | ||
2708 | builtin-modules@^3.0.0, builtin-modules@^3.1.0: | 2795 | builtin-modules@^3.0.0, builtin-modules@^3.1.0: |
2709 | version "3.3.0" | 2796 | version "3.3.0" |
2710 | resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" | 2797 | resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" |
@@ -2830,6 +2917,13 @@ cfb@~1.2.1: | @@ -2830,6 +2917,13 @@ cfb@~1.2.1: | ||
2830 | adler-32 "~1.3.0" | 2917 | adler-32 "~1.3.0" |
2831 | crc-32 "~1.2.0" | 2918 | crc-32 "~1.2.0" |
2832 | 2919 | ||
2920 | +chainsaw@~0.1.0: | ||
2921 | + version "0.1.0" | ||
2922 | + resolved "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" | ||
2923 | + integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== | ||
2924 | + dependencies: | ||
2925 | + traverse ">=0.3.0 <0.4" | ||
2926 | + | ||
2833 | chalk@^1.0.0, chalk@^1.1.3: | 2927 | chalk@^1.0.0, chalk@^1.1.3: |
2834 | version "1.1.3" | 2928 | version "1.1.3" |
2835 | resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" | 2929 | resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" |
@@ -2881,7 +2975,7 @@ chardet@^0.7.0: | @@ -2881,7 +2975,7 @@ chardet@^0.7.0: | ||
2881 | resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" | 2975 | resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" |
2882 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== | 2976 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== |
2883 | 2977 | ||
2884 | -chokidar@^3.5.2: | 2978 | +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: |
2885 | version "3.5.3" | 2979 | version "3.5.3" |
2886 | resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" | 2980 | resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" |
2887 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== | 2981 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== |
@@ -3083,6 +3177,16 @@ component-emitter@^1.2.1: | @@ -3083,6 +3177,16 @@ component-emitter@^1.2.1: | ||
3083 | resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" | 3177 | resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" |
3084 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== | 3178 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== |
3085 | 3179 | ||
3180 | +compress-commons@^4.1.0: | ||
3181 | + version "4.1.1" | ||
3182 | + resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" | ||
3183 | + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== | ||
3184 | + dependencies: | ||
3185 | + buffer-crc32 "^0.2.13" | ||
3186 | + crc32-stream "^4.0.2" | ||
3187 | + normalize-path "^3.0.0" | ||
3188 | + readable-stream "^3.6.0" | ||
3189 | + | ||
3086 | compute-scroll-into-view@^1.0.17: | 3190 | compute-scroll-into-view@^1.0.17: |
3087 | version "1.0.17" | 3191 | version "1.0.17" |
3088 | resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" | 3192 | resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" |
@@ -3366,11 +3470,19 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: | @@ -3366,11 +3470,19 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: | ||
3366 | path-type "^4.0.0" | 3470 | path-type "^4.0.0" |
3367 | yaml "^1.10.0" | 3471 | yaml "^1.10.0" |
3368 | 3472 | ||
3369 | -crc-32@~1.2.0, crc-32@~1.2.1: | 3473 | +crc-32@^1.2.0, crc-32@~1.2.0, crc-32@~1.2.1: |
3370 | version "1.2.2" | 3474 | version "1.2.2" |
3371 | resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" | 3475 | resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" |
3372 | integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== | 3476 | integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== |
3373 | 3477 | ||
3478 | +crc32-stream@^4.0.2: | ||
3479 | + version "4.0.2" | ||
3480 | + resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" | ||
3481 | + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== | ||
3482 | + dependencies: | ||
3483 | + crc-32 "^1.2.0" | ||
3484 | + readable-stream "^3.4.0" | ||
3485 | + | ||
3374 | create-require@^1.1.0: | 3486 | create-require@^1.1.0: |
3375 | version "1.1.1" | 3487 | version "1.1.1" |
3376 | resolved "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" | 3488 | resolved "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" |
@@ -3521,6 +3633,11 @@ dayjs@^1.10.5, dayjs@^1.11.1: | @@ -3521,6 +3633,11 @@ dayjs@^1.10.5, dayjs@^1.11.1: | ||
3521 | resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz#4754eb694a624057b9ad2224b67b15d552589258" | 3633 | resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz#4754eb694a624057b9ad2224b67b15d552589258" |
3522 | integrity sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A== | 3634 | integrity sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A== |
3523 | 3635 | ||
3636 | +dayjs@^1.8.34: | ||
3637 | + version "1.11.7" | ||
3638 | + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" | ||
3639 | + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== | ||
3640 | + | ||
3524 | de-indent@^1.0.2: | 3641 | de-indent@^1.0.2: |
3525 | version "1.0.2" | 3642 | version "1.0.2" |
3526 | resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" | 3643 | resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" |
@@ -3839,6 +3956,13 @@ download@^7.1.0: | @@ -3839,6 +3956,13 @@ download@^7.1.0: | ||
3839 | p-event "^2.1.0" | 3956 | p-event "^2.1.0" |
3840 | pify "^3.0.0" | 3957 | pify "^3.0.0" |
3841 | 3958 | ||
3959 | +duplexer2@~0.1.4: | ||
3960 | + version "0.1.4" | ||
3961 | + resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" | ||
3962 | + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== | ||
3963 | + dependencies: | ||
3964 | + readable-stream "^2.0.2" | ||
3965 | + | ||
3842 | duplexer3@^0.1.4: | 3966 | duplexer3@^0.1.4: |
3843 | version "0.1.4" | 3967 | version "0.1.4" |
3844 | resolved "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" | 3968 | resolved "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" |
@@ -3899,7 +4023,7 @@ encodeurl@~1.0.2: | @@ -3899,7 +4023,7 @@ encodeurl@~1.0.2: | ||
3899 | resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" | 4023 | resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" |
3900 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== | 4024 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== |
3901 | 4025 | ||
3902 | -end-of-stream@^1.0.0, end-of-stream@^1.1.0: | 4026 | +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: |
3903 | version "1.4.4" | 4027 | version "1.4.4" |
3904 | resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" | 4028 | resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" |
3905 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== | 4029 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== |
@@ -4313,6 +4437,21 @@ etag@^1.8.1: | @@ -4313,6 +4437,21 @@ etag@^1.8.1: | ||
4313 | resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" | 4437 | resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" |
4314 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== | 4438 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== |
4315 | 4439 | ||
4440 | +exceljs@^4.3.0: | ||
4441 | + version "4.3.0" | ||
4442 | + resolved "https://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz#939bc0d4c59c200acadb7051be34d25c109853c4" | ||
4443 | + integrity sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w== | ||
4444 | + dependencies: | ||
4445 | + archiver "^5.0.0" | ||
4446 | + dayjs "^1.8.34" | ||
4447 | + fast-csv "^4.3.1" | ||
4448 | + jszip "^3.5.0" | ||
4449 | + readable-stream "^3.6.0" | ||
4450 | + saxes "^5.0.1" | ||
4451 | + tmp "^0.2.0" | ||
4452 | + unzipper "^0.10.11" | ||
4453 | + uuid "^8.3.0" | ||
4454 | + | ||
4316 | exec-buffer@^3.0.0: | 4455 | exec-buffer@^3.0.0: |
4317 | version "3.2.0" | 4456 | version "3.2.0" |
4318 | resolved "https://registry.npmmirror.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" | 4457 | resolved "https://registry.npmmirror.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" |
@@ -4460,6 +4599,14 @@ extglob@^2.0.2: | @@ -4460,6 +4599,14 @@ extglob@^2.0.2: | ||
4460 | snapdragon "^0.8.1" | 4599 | snapdragon "^0.8.1" |
4461 | to-regex "^3.0.1" | 4600 | to-regex "^3.0.1" |
4462 | 4601 | ||
4602 | +fast-csv@^4.3.1: | ||
4603 | + version "4.3.6" | ||
4604 | + resolved "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz#70349bdd8fe4d66b1130d8c91820b64a21bc4a63" | ||
4605 | + integrity sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw== | ||
4606 | + dependencies: | ||
4607 | + "@fast-csv/format" "4.3.5" | ||
4608 | + "@fast-csv/parse" "4.3.6" | ||
4609 | + | ||
4463 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: | 4610 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: |
4464 | version "3.1.3" | 4611 | version "3.1.3" |
4465 | resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" | 4612 | resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" |
@@ -4745,6 +4892,16 @@ fsevents@~2.3.2: | @@ -4745,6 +4892,16 @@ fsevents@~2.3.2: | ||
4745 | resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" | 4892 | resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" |
4746 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== | 4893 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== |
4747 | 4894 | ||
4895 | +fstream@^1.0.12: | ||
4896 | + version "1.0.12" | ||
4897 | + resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" | ||
4898 | + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== | ||
4899 | + dependencies: | ||
4900 | + graceful-fs "^4.1.2" | ||
4901 | + inherits "~2.0.0" | ||
4902 | + mkdirp ">=0.5 0" | ||
4903 | + rimraf "2" | ||
4904 | + | ||
4748 | function-bind@^1.1.1: | 4905 | function-bind@^1.1.1: |
4749 | version "1.1.1" | 4906 | version "1.1.1" |
4750 | resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" | 4907 | resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" |
@@ -4924,7 +5081,7 @@ glob-parent@^6.0.1: | @@ -4924,7 +5081,7 @@ glob-parent@^6.0.1: | ||
4924 | dependencies: | 5081 | dependencies: |
4925 | is-glob "^4.0.3" | 5082 | is-glob "^4.0.3" |
4926 | 5083 | ||
4927 | -glob@^7.1.3, glob@^7.1.6: | 5084 | +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: |
4928 | version "7.2.3" | 5085 | version "7.2.3" |
4929 | resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" | 5086 | resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" |
4930 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== | 5087 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== |
@@ -5369,6 +5526,16 @@ imagemin@^7.0.1: | @@ -5369,6 +5526,16 @@ imagemin@^7.0.1: | ||
5369 | p-pipe "^3.0.0" | 5526 | p-pipe "^3.0.0" |
5370 | replace-ext "^1.0.0" | 5527 | replace-ext "^1.0.0" |
5371 | 5528 | ||
5529 | +immediate@~3.0.5: | ||
5530 | + version "3.0.6" | ||
5531 | + resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" | ||
5532 | + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== | ||
5533 | + | ||
5534 | +immutable@^4.0.0: | ||
5535 | + version "4.2.2" | ||
5536 | + resolved "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" | ||
5537 | + integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== | ||
5538 | + | ||
5372 | import-fresh@^3.0.0, import-fresh@^3.2.1: | 5539 | import-fresh@^3.0.0, import-fresh@^3.2.1: |
5373 | version "3.3.0" | 5540 | version "3.3.0" |
5374 | resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" | 5541 | resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" |
@@ -5414,7 +5581,7 @@ inflight@^1.0.4: | @@ -5414,7 +5581,7 @@ inflight@^1.0.4: | ||
5414 | once "^1.3.0" | 5581 | once "^1.3.0" |
5415 | wrappy "1" | 5582 | wrappy "1" |
5416 | 5583 | ||
5417 | -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: | 5584 | +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: |
5418 | version "2.0.4" | 5585 | version "2.0.4" |
5419 | resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" | 5586 | resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" |
5420 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== | 5587 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== |
@@ -5986,6 +6153,16 @@ jsonpointer@^5.0.0: | @@ -5986,6 +6153,16 @@ jsonpointer@^5.0.0: | ||
5986 | resolved "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072" | 6153 | resolved "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072" |
5987 | integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg== | 6154 | integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg== |
5988 | 6155 | ||
6156 | +jszip@^3.5.0: | ||
6157 | + version "3.10.1" | ||
6158 | + resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" | ||
6159 | + integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== | ||
6160 | + dependencies: | ||
6161 | + lie "~3.3.0" | ||
6162 | + pako "~1.0.2" | ||
6163 | + readable-stream "~2.3.6" | ||
6164 | + setimmediate "^1.0.5" | ||
6165 | + | ||
5989 | junk@^3.1.0: | 6166 | junk@^3.1.0: |
5990 | version "3.1.0" | 6167 | version "3.1.0" |
5991 | resolved "https://registry.npmmirror.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" | 6168 | resolved "https://registry.npmmirror.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" |
@@ -6032,6 +6209,13 @@ kolorist@^1.5.1: | @@ -6032,6 +6209,13 @@ kolorist@^1.5.1: | ||
6032 | resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" | 6209 | resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" |
6033 | integrity sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ== | 6210 | integrity sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ== |
6034 | 6211 | ||
6212 | +lazystream@^1.0.0: | ||
6213 | + version "1.0.1" | ||
6214 | + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" | ||
6215 | + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== | ||
6216 | + dependencies: | ||
6217 | + readable-stream "^2.0.5" | ||
6218 | + | ||
6035 | less@^4.1.2: | 6219 | less@^4.1.2: |
6036 | version "4.1.3" | 6220 | version "4.1.3" |
6037 | resolved "https://registry.npmmirror.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246" | 6221 | resolved "https://registry.npmmirror.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246" |
@@ -6062,6 +6246,13 @@ levn@^0.4.1: | @@ -6062,6 +6246,13 @@ levn@^0.4.1: | ||
6062 | prelude-ls "^1.2.1" | 6246 | prelude-ls "^1.2.1" |
6063 | type-check "~0.4.0" | 6247 | type-check "~0.4.0" |
6064 | 6248 | ||
6249 | +lie@~3.3.0: | ||
6250 | + version "3.3.0" | ||
6251 | + resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" | ||
6252 | + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== | ||
6253 | + dependencies: | ||
6254 | + immediate "~3.0.5" | ||
6255 | + | ||
6065 | lilconfig@2.0.4: | 6256 | lilconfig@2.0.4: |
6066 | version "2.0.4" | 6257 | version "2.0.4" |
6067 | resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" | 6258 | resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" |
@@ -6092,6 +6283,11 @@ lint-staged@12.3.7: | @@ -6092,6 +6283,11 @@ lint-staged@12.3.7: | ||
6092 | supports-color "^9.2.1" | 6283 | supports-color "^9.2.1" |
6093 | yaml "^1.10.2" | 6284 | yaml "^1.10.2" |
6094 | 6285 | ||
6286 | +listenercount@~1.0.1: | ||
6287 | + version "1.0.1" | ||
6288 | + resolved "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" | ||
6289 | + integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== | ||
6290 | + | ||
6095 | listr2@^4.0.1: | 6291 | listr2@^4.0.1: |
6096 | version "4.0.5" | 6292 | version "4.0.5" |
6097 | resolved "https://registry.npmmirror.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" | 6293 | resolved "https://registry.npmmirror.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" |
@@ -6168,11 +6364,66 @@ lodash.debounce@^4.0.8: | @@ -6168,11 +6364,66 @@ lodash.debounce@^4.0.8: | ||
6168 | resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" | 6364 | resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" |
6169 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== | 6365 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== |
6170 | 6366 | ||
6367 | +lodash.defaults@^4.2.0: | ||
6368 | + version "4.2.0" | ||
6369 | + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" | ||
6370 | + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== | ||
6371 | + | ||
6372 | +lodash.difference@^4.5.0: | ||
6373 | + version "4.5.0" | ||
6374 | + resolved "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" | ||
6375 | + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== | ||
6376 | + | ||
6377 | +lodash.escaperegexp@^4.1.2: | ||
6378 | + version "4.1.2" | ||
6379 | + resolved "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" | ||
6380 | + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== | ||
6381 | + | ||
6382 | +lodash.flatten@^4.4.0: | ||
6383 | + version "4.4.0" | ||
6384 | + resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" | ||
6385 | + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== | ||
6386 | + | ||
6387 | +lodash.groupby@^4.6.0: | ||
6388 | + version "4.6.0" | ||
6389 | + resolved "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" | ||
6390 | + integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== | ||
6391 | + | ||
6392 | +lodash.isboolean@^3.0.3: | ||
6393 | + version "3.0.3" | ||
6394 | + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" | ||
6395 | + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== | ||
6396 | + | ||
6397 | +lodash.isequal@^4.5.0: | ||
6398 | + version "4.5.0" | ||
6399 | + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" | ||
6400 | + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== | ||
6401 | + | ||
6402 | +lodash.isfunction@^3.0.9: | ||
6403 | + version "3.0.9" | ||
6404 | + resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" | ||
6405 | + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== | ||
6406 | + | ||
6171 | lodash.ismatch@^4.4.0: | 6407 | lodash.ismatch@^4.4.0: |
6172 | version "4.4.0" | 6408 | version "4.4.0" |
6173 | resolved "https://registry.npmmirror.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" | 6409 | resolved "https://registry.npmmirror.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" |
6174 | integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== | 6410 | integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== |
6175 | 6411 | ||
6412 | +lodash.isnil@^4.0.0: | ||
6413 | + version "4.0.0" | ||
6414 | + resolved "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c" | ||
6415 | + integrity sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng== | ||
6416 | + | ||
6417 | +lodash.isplainobject@^4.0.6: | ||
6418 | + version "4.0.6" | ||
6419 | + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" | ||
6420 | + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== | ||
6421 | + | ||
6422 | +lodash.isundefined@^3.0.1: | ||
6423 | + version "3.0.1" | ||
6424 | + resolved "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" | ||
6425 | + integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA== | ||
6426 | + | ||
6176 | lodash.merge@^4.6.2: | 6427 | lodash.merge@^4.6.2: |
6177 | version "4.6.2" | 6428 | version "4.6.2" |
6178 | resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" | 6429 | resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" |
@@ -6188,6 +6439,16 @@ lodash.truncate@^4.4.2: | @@ -6188,6 +6439,16 @@ lodash.truncate@^4.4.2: | ||
6188 | resolved "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" | 6439 | resolved "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" |
6189 | integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== | 6440 | integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== |
6190 | 6441 | ||
6442 | +lodash.union@^4.6.0: | ||
6443 | + version "4.6.0" | ||
6444 | + resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" | ||
6445 | + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== | ||
6446 | + | ||
6447 | +lodash.uniq@^4.5.0: | ||
6448 | + version "4.5.0" | ||
6449 | + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" | ||
6450 | + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== | ||
6451 | + | ||
6191 | lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: | 6452 | lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: |
6192 | version "4.17.21" | 6453 | version "4.17.21" |
6193 | resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" | 6454 | resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" |
@@ -6493,6 +6754,13 @@ minimatch@^5.0.1: | @@ -6493,6 +6754,13 @@ minimatch@^5.0.1: | ||
6493 | dependencies: | 6754 | dependencies: |
6494 | brace-expansion "^2.0.1" | 6755 | brace-expansion "^2.0.1" |
6495 | 6756 | ||
6757 | +minimatch@^5.1.0: | ||
6758 | + version "5.1.6" | ||
6759 | + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" | ||
6760 | + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== | ||
6761 | + dependencies: | ||
6762 | + brace-expansion "^2.0.1" | ||
6763 | + | ||
6496 | minimatch@^5.1.1: | 6764 | minimatch@^5.1.1: |
6497 | version "5.1.2" | 6765 | version "5.1.2" |
6498 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" | 6766 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" |
@@ -6514,6 +6782,11 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: | @@ -6514,6 +6782,11 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: | ||
6514 | resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" | 6782 | resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" |
6515 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== | 6783 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== |
6516 | 6784 | ||
6785 | +minimist@^1.2.6: | ||
6786 | + version "1.2.7" | ||
6787 | + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" | ||
6788 | + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== | ||
6789 | + | ||
6517 | mixin-deep@^1.2.0: | 6790 | mixin-deep@^1.2.0: |
6518 | version "1.3.2" | 6791 | version "1.3.2" |
6519 | resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" | 6792 | resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" |
@@ -6522,6 +6795,13 @@ mixin-deep@^1.2.0: | @@ -6522,6 +6795,13 @@ mixin-deep@^1.2.0: | ||
6522 | for-in "^1.0.2" | 6795 | for-in "^1.0.2" |
6523 | is-extendable "^1.0.1" | 6796 | is-extendable "^1.0.1" |
6524 | 6797 | ||
6798 | +"mkdirp@>=0.5 0": | ||
6799 | + version "0.5.6" | ||
6800 | + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" | ||
6801 | + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== | ||
6802 | + dependencies: | ||
6803 | + minimist "^1.2.6" | ||
6804 | + | ||
6525 | mockjs@^1.1.0: | 6805 | mockjs@^1.1.0: |
6526 | version "1.1.0" | 6806 | version "1.1.0" |
6527 | resolved "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz#e6a0c378e91906dbaff20911cc0273b3c7d75b06" | 6807 | resolved "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz#e6a0c378e91906dbaff20911cc0273b3c7d75b06" |
@@ -6995,6 +7275,11 @@ p-try@^2.0.0: | @@ -6995,6 +7275,11 @@ p-try@^2.0.0: | ||
6995 | resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" | 7275 | resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" |
6996 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== | 7276 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== |
6997 | 7277 | ||
7278 | +pako@~1.0.2: | ||
7279 | + version "1.0.11" | ||
7280 | + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" | ||
7281 | + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== | ||
7282 | + | ||
6998 | param-case@^3.0.4: | 7283 | param-case@^3.0.4: |
6999 | version "3.0.4" | 7284 | version "3.0.4" |
7000 | resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" | 7285 | resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" |
@@ -7511,7 +7796,7 @@ read-pkg@^5.2.0: | @@ -7511,7 +7796,7 @@ read-pkg@^5.2.0: | ||
7511 | parse-json "^5.0.0" | 7796 | parse-json "^5.0.0" |
7512 | type-fest "^0.6.0" | 7797 | type-fest "^0.6.0" |
7513 | 7798 | ||
7514 | -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0: | 7799 | +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: |
7515 | version "3.6.0" | 7800 | version "3.6.0" |
7516 | resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" | 7801 | resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" |
7517 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== | 7802 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== |
@@ -7520,7 +7805,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stre | @@ -7520,7 +7805,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stre | ||
7520 | string_decoder "^1.1.1" | 7805 | string_decoder "^1.1.1" |
7521 | util-deprecate "^1.0.1" | 7806 | util-deprecate "^1.0.1" |
7522 | 7807 | ||
7523 | -readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: | 7808 | +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: |
7524 | version "2.3.7" | 7809 | version "2.3.7" |
7525 | resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" | 7810 | resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" |
7526 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== | 7811 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== |
@@ -7533,6 +7818,13 @@ readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable | @@ -7533,6 +7818,13 @@ readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable | ||
7533 | string_decoder "~1.1.1" | 7818 | string_decoder "~1.1.1" |
7534 | util-deprecate "~1.0.1" | 7819 | util-deprecate "~1.0.1" |
7535 | 7820 | ||
7821 | +readdir-glob@^1.0.0: | ||
7822 | + version "1.1.2" | ||
7823 | + resolved "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz#b185789b8e6a43491635b6953295c5c5e3fd224c" | ||
7824 | + integrity sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA== | ||
7825 | + dependencies: | ||
7826 | + minimatch "^5.1.0" | ||
7827 | + | ||
7536 | readdirp@~3.6.0: | 7828 | readdirp@~3.6.0: |
7537 | version "3.6.0" | 7829 | version "3.6.0" |
7538 | resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" | 7830 | resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" |
@@ -7734,14 +8026,14 @@ rfdc@^1.3.0: | @@ -7734,14 +8026,14 @@ rfdc@^1.3.0: | ||
7734 | resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" | 8026 | resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" |
7735 | integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== | 8027 | integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== |
7736 | 8028 | ||
7737 | -rimraf@^2.5.4: | 8029 | +rimraf@2, rimraf@^2.5.4: |
7738 | version "2.7.1" | 8030 | version "2.7.1" |
7739 | resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" | 8031 | resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" |
7740 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== | 8032 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== |
7741 | dependencies: | 8033 | dependencies: |
7742 | glob "^7.1.3" | 8034 | glob "^7.1.3" |
7743 | 8035 | ||
7744 | -rimraf@^3.0.2: | 8036 | +rimraf@^3.0.0, rimraf@^3.0.2: |
7745 | version "3.0.2" | 8037 | version "3.0.2" |
7746 | resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" | 8038 | resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" |
7747 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== | 8039 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== |
@@ -7824,11 +8116,27 @@ safe-regex@^1.1.0: | @@ -7824,11 +8116,27 @@ safe-regex@^1.1.0: | ||
7824 | resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" | 8116 | resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" |
7825 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== | 8117 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== |
7826 | 8118 | ||
8119 | +sass@^1.57.1: | ||
8120 | + version "1.57.1" | ||
8121 | + resolved "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" | ||
8122 | + integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== | ||
8123 | + dependencies: | ||
8124 | + chokidar ">=3.0.0 <4.0.0" | ||
8125 | + immutable "^4.0.0" | ||
8126 | + source-map-js ">=0.6.2 <2.0.0" | ||
8127 | + | ||
7827 | sax@^1.2.4: | 8128 | sax@^1.2.4: |
7828 | version "1.2.4" | 8129 | version "1.2.4" |
7829 | resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" | 8130 | resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" |
7830 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== | 8131 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== |
7831 | 8132 | ||
8133 | +saxes@^5.0.1: | ||
8134 | + version "5.0.1" | ||
8135 | + resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" | ||
8136 | + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== | ||
8137 | + dependencies: | ||
8138 | + xmlchars "^2.2.0" | ||
8139 | + | ||
7832 | scroll-into-view-if-needed@^2.2.25: | 8140 | scroll-into-view-if-needed@^2.2.25: |
7833 | version "2.2.29" | 8141 | version "2.2.29" |
7834 | resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz#551791a84b7e2287706511f8c68161e4990ab885" | 8142 | resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz#551791a84b7e2287706511f8c68161e4990ab885" |
@@ -7908,6 +8216,11 @@ set-value@^2.0.0, set-value@^2.0.1: | @@ -7908,6 +8216,11 @@ set-value@^2.0.0, set-value@^2.0.1: | ||
7908 | is-plain-object "^2.0.3" | 8216 | is-plain-object "^2.0.3" |
7909 | split-string "^3.0.1" | 8217 | split-string "^3.0.1" |
7910 | 8218 | ||
8219 | +setimmediate@^1.0.5, setimmediate@~1.0.4: | ||
8220 | + version "1.0.5" | ||
8221 | + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" | ||
8222 | + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== | ||
8223 | + | ||
7911 | shallow-equal@^1.0.0: | 8224 | shallow-equal@^1.0.0: |
7912 | version "1.2.1" | 8225 | version "1.2.1" |
7913 | resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" | 8226 | resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" |
@@ -8058,7 +8371,7 @@ sortablejs@^1.15.0: | @@ -8058,7 +8371,7 @@ sortablejs@^1.15.0: | ||
8058 | resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a" | 8371 | resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a" |
8059 | integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== | 8372 | integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== |
8060 | 8373 | ||
8061 | -source-map-js@^1.0.2: | 8374 | +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: |
8062 | version "1.0.2" | 8375 | version "1.0.2" |
8063 | resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" | 8376 | resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" |
8064 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== | 8377 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== |
@@ -8578,6 +8891,17 @@ tar-stream@^1.5.2: | @@ -8578,6 +8891,17 @@ tar-stream@^1.5.2: | ||
8578 | to-buffer "^1.1.1" | 8891 | to-buffer "^1.1.1" |
8579 | xtend "^4.0.0" | 8892 | xtend "^4.0.0" |
8580 | 8893 | ||
8894 | +tar-stream@^2.2.0: | ||
8895 | + version "2.2.0" | ||
8896 | + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" | ||
8897 | + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== | ||
8898 | + dependencies: | ||
8899 | + bl "^4.0.3" | ||
8900 | + end-of-stream "^1.4.1" | ||
8901 | + fs-constants "^1.0.0" | ||
8902 | + inherits "^2.0.3" | ||
8903 | + readable-stream "^3.1.1" | ||
8904 | + | ||
8581 | temp-dir@^1.0.0: | 8905 | temp-dir@^1.0.0: |
8582 | version "1.0.0" | 8906 | version "1.0.0" |
8583 | resolved "https://registry.npmmirror.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" | 8907 | resolved "https://registry.npmmirror.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" |
@@ -8676,6 +9000,13 @@ tmp@^0.0.33: | @@ -8676,6 +9000,13 @@ tmp@^0.0.33: | ||
8676 | dependencies: | 9000 | dependencies: |
8677 | os-tmpdir "~1.0.2" | 9001 | os-tmpdir "~1.0.2" |
8678 | 9002 | ||
9003 | +tmp@^0.2.0: | ||
9004 | + version "0.2.1" | ||
9005 | + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" | ||
9006 | + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== | ||
9007 | + dependencies: | ||
9008 | + rimraf "^3.0.0" | ||
9009 | + | ||
8679 | to-buffer@^1.1.1: | 9010 | to-buffer@^1.1.1: |
8680 | version "1.1.1" | 9011 | version "1.1.1" |
8681 | resolved "https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" | 9012 | resolved "https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" |
@@ -8730,6 +9061,11 @@ tr46@~0.0.3: | @@ -8730,6 +9061,11 @@ tr46@~0.0.3: | ||
8730 | resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" | 9061 | resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" |
8731 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== | 9062 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== |
8732 | 9063 | ||
9064 | +"traverse@>=0.3.0 <0.4": | ||
9065 | + version "0.3.9" | ||
9066 | + resolved "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" | ||
9067 | + integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== | ||
9068 | + | ||
8733 | traverse@^0.6.6: | 9069 | traverse@^0.6.6: |
8734 | version "0.6.6" | 9070 | version "0.6.6" |
8735 | resolved "https://registry.npmmirror.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" | 9071 | resolved "https://registry.npmmirror.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" |
@@ -8933,6 +9269,22 @@ unset-value@^1.0.0: | @@ -8933,6 +9269,22 @@ unset-value@^1.0.0: | ||
8933 | has-value "^0.3.1" | 9269 | has-value "^0.3.1" |
8934 | isobject "^3.0.0" | 9270 | isobject "^3.0.0" |
8935 | 9271 | ||
9272 | +unzipper@^0.10.11: | ||
9273 | + version "0.10.11" | ||
9274 | + resolved "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" | ||
9275 | + integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== | ||
9276 | + dependencies: | ||
9277 | + big-integer "^1.6.17" | ||
9278 | + binary "~0.3.0" | ||
9279 | + bluebird "~3.4.1" | ||
9280 | + buffer-indexof-polyfill "~1.0.0" | ||
9281 | + duplexer2 "~0.1.4" | ||
9282 | + fstream "^1.0.12" | ||
9283 | + graceful-fs "^4.2.2" | ||
9284 | + listenercount "~1.0.1" | ||
9285 | + readable-stream "~2.3.6" | ||
9286 | + setimmediate "~1.0.4" | ||
9287 | + | ||
8936 | upath@^1.2.0: | 9288 | upath@^1.2.0: |
8937 | version "1.2.0" | 9289 | version "1.2.0" |
8938 | resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" | 9290 | resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" |
@@ -9011,6 +9363,11 @@ uuid@^3.0.1, uuid@^3.3.2: | @@ -9011,6 +9363,11 @@ uuid@^3.0.1, uuid@^3.3.2: | ||
9011 | resolved "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" | 9363 | resolved "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" |
9012 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== | 9364 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== |
9013 | 9365 | ||
9366 | +uuid@^8.3.0: | ||
9367 | + version "8.3.2" | ||
9368 | + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" | ||
9369 | + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== | ||
9370 | + | ||
9014 | v8-compile-cache-lib@^3.0.1: | 9371 | v8-compile-cache-lib@^3.0.1: |
9015 | version "3.0.1" | 9372 | version "3.0.1" |
9016 | resolved "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" | 9373 | resolved "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" |
@@ -9296,6 +9653,16 @@ vue@^3.2.45: | @@ -9296,6 +9653,16 @@ vue@^3.2.45: | ||
9296 | "@vue/server-renderer" "3.2.45" | 9653 | "@vue/server-renderer" "3.2.45" |
9297 | "@vue/shared" "3.2.45" | 9654 | "@vue/shared" "3.2.45" |
9298 | 9655 | ||
9656 | +vxe-table-plugin-export-xlsx@^3.0.4: | ||
9657 | + version "3.0.4" | ||
9658 | + resolved "https://registry.npmjs.org/vxe-table-plugin-export-xlsx/-/vxe-table-plugin-export-xlsx-3.0.4.tgz#35faabc0791b4e9aa516b78ea3fd45e67314afe4" | ||
9659 | + integrity sha512-Og/NbXRIb+BS6sJ48oDNVrZnlkcpaCd/zS8JBAZjHLgioWr1Xoob6FEpaeXBebGPPgTumZNUrrBO57JhhYAerA== | ||
9660 | + | ||
9661 | +vxe-table@^4.3.9: | ||
9662 | + version "4.3.9" | ||
9663 | + resolved "https://registry.npmjs.org/vxe-table/-/vxe-table-4.3.9.tgz#4b288e5e666eb4fb47e9732d51d967e2aa69b61f" | ||
9664 | + integrity sha512-Ns7Ooa7lOHBpks90i0k0BMNyxfMpUo39ryxTgKE41X3xVnI9tGQs2U6+klfDlsuqYfmG3ibyzHN3OCrWbbKo4Q== | ||
9665 | + | ||
9299 | warning@^4.0.0: | 9666 | warning@^4.0.0: |
9300 | version "4.0.3" | 9667 | version "4.0.3" |
9301 | resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" | 9668 | resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" |
@@ -9581,6 +9948,11 @@ write-file-atomic@^4.0.1: | @@ -9581,6 +9948,11 @@ write-file-atomic@^4.0.1: | ||
9581 | imurmurhash "^0.1.4" | 9948 | imurmurhash "^0.1.4" |
9582 | signal-exit "^3.0.7" | 9949 | signal-exit "^3.0.7" |
9583 | 9950 | ||
9951 | +xe-utils@^3.5.7: | ||
9952 | + version "3.5.7" | ||
9953 | + resolved "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.7.tgz#2c885852dfadd5c8beeffdc1f884f8ceb962c669" | ||
9954 | + integrity sha512-3H+fDBKBR2wLJgyA7k9C/w1Xljx6Maml5ukV0WDY06HjYyGs2FEz6XhcwRCLIDXX4pBP3Gu0nX9DbCeuuRA2Ew== | ||
9955 | + | ||
9584 | xlsx@^0.18.5: | 9956 | xlsx@^0.18.5: |
9585 | version "0.18.5" | 9957 | version "0.18.5" |
9586 | resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" | 9958 | resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" |
@@ -9594,6 +9966,11 @@ xlsx@^0.18.5: | @@ -9594,6 +9966,11 @@ xlsx@^0.18.5: | ||
9594 | wmf "~1.0.1" | 9966 | wmf "~1.0.1" |
9595 | word "~0.3.0" | 9967 | word "~0.3.0" |
9596 | 9968 | ||
9969 | +xmlchars@^2.2.0: | ||
9970 | + version "2.2.0" | ||
9971 | + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" | ||
9972 | + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== | ||
9973 | + | ||
9597 | xtend@^4.0.0, xtend@~4.0.1: | 9974 | xtend@^4.0.0, xtend@~4.0.1: |
9598 | version "4.0.2" | 9975 | version "4.0.2" |
9599 | resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" | 9976 | resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" |
@@ -9703,6 +10080,15 @@ yocto-queue@^0.1.0: | @@ -9703,6 +10080,15 @@ yocto-queue@^0.1.0: | ||
9703 | resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" | 10080 | resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" |
9704 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== | 10081 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== |
9705 | 10082 | ||
10083 | +zip-stream@^4.1.0: | ||
10084 | + version "4.1.0" | ||
10085 | + resolved "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" | ||
10086 | + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== | ||
10087 | + dependencies: | ||
10088 | + archiver-utils "^2.1.0" | ||
10089 | + compress-commons "^4.1.0" | ||
10090 | + readable-stream "^3.6.0" | ||
10091 | + | ||
9706 | zrender@5.3.2: | 10092 | zrender@5.3.2: |
9707 | version "5.3.2" | 10093 | version "5.3.2" |
9708 | resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz#f67b11d36d3d020d62411d3bb123eb1c93cccd69" | 10094 | resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz#f67b11d36d3d020d62411d3bb123eb1c93cccd69" |