el-plus 0.0.76 → 0.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +112 -71
  4. package/dist/index.full.min.js +4 -4
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +4 -4
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +113 -72
  9. package/es/components/attachment/index.d.ts +24 -0
  10. package/es/components/attachment/src/attachment.d.ts +8 -0
  11. package/es/components/attachment/src/attachment.mjs +8 -0
  12. package/es/components/attachment/src/attachment.mjs.map +1 -1
  13. package/es/components/attachment/src/attachment.vue.d.ts +15 -0
  14. package/es/components/attachment/src/attachment.vue2.mjs +10 -5
  15. package/es/components/attachment/src/attachment.vue2.mjs.map +1 -1
  16. package/es/components/attachment/src/use-attachment.d.ts +14 -105
  17. package/es/components/attachment/src/use-attachment.mjs +31 -30
  18. package/es/components/attachment/src/use-attachment.mjs.map +1 -1
  19. package/es/components/header/index.d.ts +6 -0
  20. package/es/components/header/src/header.vue.d.ts +2 -0
  21. package/es/components/search-list-page/index.d.ts +42 -15
  22. package/es/components/search-list-page/src/search-list-page.vue.d.ts +14 -5
  23. package/es/components/search-list-page/src/use-search-list-page.d.ts +14 -5
  24. package/es/components/table/index.d.ts +15 -3
  25. package/es/components/table/src/table.d.ts +4 -1
  26. package/es/components/table/src/table.mjs +4 -0
  27. package/es/components/table/src/table.mjs.map +1 -1
  28. package/es/components/table/src/table.vue.d.ts +9 -2
  29. package/es/components/table/src/table.vue2.mjs +17 -6
  30. package/es/components/table/src/table.vue2.mjs.map +1 -1
  31. package/es/components/table/src/use-table.mjs +1 -1
  32. package/es/components/table/src/use-table.mjs.map +1 -1
  33. package/es/components/uni-vue/index.d.ts +23 -3
  34. package/es/components/uni-vue/src/uni-vue.vue.d.ts +10 -2
  35. package/es/components/uni-vue/src/uni-vue.vue2.mjs +4 -2
  36. package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
  37. package/es/components/uni-vue/src/use-uni-vue.d.ts +1 -1
  38. package/es/components/uni-vue/src/use-uni-vue.mjs +39 -27
  39. package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
  40. package/es/package.json.mjs +1 -1
  41. package/lib/components/attachment/index.d.ts +24 -0
  42. package/lib/components/attachment/src/attachment.d.ts +8 -0
  43. package/lib/components/attachment/src/attachment.js +8 -0
  44. package/lib/components/attachment/src/attachment.js.map +1 -1
  45. package/lib/components/attachment/src/attachment.vue.d.ts +15 -0
  46. package/lib/components/attachment/src/attachment.vue2.js +11 -6
  47. package/lib/components/attachment/src/attachment.vue2.js.map +1 -1
  48. package/lib/components/attachment/src/use-attachment.d.ts +14 -105
  49. package/lib/components/attachment/src/use-attachment.js +31 -30
  50. package/lib/components/attachment/src/use-attachment.js.map +1 -1
  51. package/lib/components/header/index.d.ts +6 -0
  52. package/lib/components/header/src/header.vue.d.ts +2 -0
  53. package/lib/components/search-list-page/index.d.ts +42 -15
  54. package/lib/components/search-list-page/src/search-list-page.vue.d.ts +14 -5
  55. package/lib/components/search-list-page/src/use-search-list-page.d.ts +14 -5
  56. package/lib/components/table/index.d.ts +15 -3
  57. package/lib/components/table/src/table.d.ts +4 -1
  58. package/lib/components/table/src/table.js +4 -0
  59. package/lib/components/table/src/table.js.map +1 -1
  60. package/lib/components/table/src/table.vue.d.ts +9 -2
  61. package/lib/components/table/src/table.vue2.js +17 -6
  62. package/lib/components/table/src/table.vue2.js.map +1 -1
  63. package/lib/components/table/src/use-table.js +1 -1
  64. package/lib/components/table/src/use-table.js.map +1 -1
  65. package/lib/components/uni-vue/index.d.ts +23 -3
  66. package/lib/components/uni-vue/src/uni-vue.vue.d.ts +10 -2
  67. package/lib/components/uni-vue/src/uni-vue.vue2.js +4 -2
  68. package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
  69. package/lib/components/uni-vue/src/use-uni-vue.d.ts +1 -1
  70. package/lib/components/uni-vue/src/use-uni-vue.js +38 -26
  71. package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
  72. package/lib/package.json.js +1 -1
  73. package/package.json +1 -1
  74. package/theme-chalk/header.css +1 -1
  75. package/theme-chalk/index.css +1 -1
  76. package/theme-chalk/src/header.scss +8 -1
@@ -2,32 +2,6 @@ export declare const useAttachment: (props: any, { data }: {
2
2
  data: any;
3
3
  }) => {
4
4
  columns: import("vue").Ref<({
5
- type: string;
6
- label: any;
7
- width: string;
8
- props: {
9
- type: string;
10
- list: ({
11
- name: any;
12
- onClick: ({ row }: {
13
- row: any;
14
- }) => void;
15
- disabled?: undefined;
16
- } | {
17
- name: any;
18
- disabled: () => boolean;
19
- onClick: ({ $index, row }: {
20
- $index: any;
21
- row: any;
22
- }) => void;
23
- })[];
24
- desc?: undefined;
25
- };
26
- prop?: undefined;
27
- required?: undefined;
28
- show?: undefined;
29
- onClick?: undefined;
30
- } | {
31
5
  label: any;
32
6
  prop: string;
33
7
  type: string;
@@ -37,10 +11,7 @@ export declare const useAttachment: (props: any, { data }: {
37
11
  desc: ({ row }: {
38
12
  row: any;
39
13
  }) => any;
40
- type?: undefined;
41
- list?: undefined;
42
14
  };
43
- width?: undefined;
44
15
  onClick?: undefined;
45
16
  } | {
46
17
  label: any;
@@ -49,55 +20,26 @@ export declare const useAttachment: (props: any, { data }: {
49
20
  onClick: ({ row }: {
50
21
  row: any;
51
22
  }) => void;
52
- width?: undefined;
53
- props?: undefined;
54
23
  required?: undefined;
55
24
  show?: undefined;
25
+ props?: undefined;
56
26
  } | {
57
27
  label: any;
58
28
  prop: string;
59
29
  type?: undefined;
60
- width?: undefined;
61
- props?: undefined;
62
30
  required?: undefined;
63
31
  show?: undefined;
32
+ props?: undefined;
64
33
  onClick?: undefined;
65
34
  } | {
66
35
  label: any;
67
36
  prop: string;
68
37
  type: string;
69
38
  show: () => any;
70
- width?: undefined;
71
- props?: undefined;
72
39
  required?: undefined;
40
+ props?: undefined;
73
41
  onClick?: undefined;
74
42
  })[], ({
75
- type: string;
76
- label: any;
77
- width: string;
78
- props: {
79
- type: string;
80
- list: ({
81
- name: any;
82
- onClick({ row }: {
83
- row: any;
84
- }): void;
85
- disabled?: undefined;
86
- } | {
87
- name: any;
88
- disabled: () => boolean;
89
- onClick: ({ $index, row }: {
90
- $index: any;
91
- row: any;
92
- }) => void;
93
- })[];
94
- desc?: undefined;
95
- };
96
- prop?: undefined;
97
- required?: undefined;
98
- show?: undefined;
99
- onClick?: undefined;
100
- } | {
101
43
  label: any;
102
44
  prop: string;
103
45
  type: string;
@@ -107,10 +49,7 @@ export declare const useAttachment: (props: any, { data }: {
107
49
  desc: ({ row }: {
108
50
  row: any;
109
51
  }) => any;
110
- type?: undefined;
111
- list?: undefined;
112
52
  };
113
- width?: undefined;
114
53
  onClick?: undefined;
115
54
  } | {
116
55
  label: any;
@@ -119,55 +58,26 @@ export declare const useAttachment: (props: any, { data }: {
119
58
  onClick({ row }: {
120
59
  row: any;
121
60
  }): void;
122
- width?: undefined;
123
- props?: undefined;
124
61
  required?: undefined;
125
62
  show?: undefined;
63
+ props?: undefined;
126
64
  } | {
127
65
  label: any;
128
66
  prop: string;
129
67
  type?: undefined;
130
- width?: undefined;
131
- props?: undefined;
132
68
  required?: undefined;
133
69
  show?: undefined;
70
+ props?: undefined;
134
71
  onClick?: undefined;
135
72
  } | {
136
73
  label: any;
137
74
  prop: string;
138
75
  type: string;
139
76
  show: () => any;
140
- width?: undefined;
141
- props?: undefined;
142
77
  required?: undefined;
78
+ props?: undefined;
143
79
  onClick?: undefined;
144
80
  })[] | ({
145
- type: string;
146
- label: any;
147
- width: string;
148
- props: {
149
- type: string;
150
- list: ({
151
- name: any;
152
- onClick: ({ row }: {
153
- row: any;
154
- }) => void;
155
- disabled?: undefined;
156
- } | {
157
- name: any;
158
- disabled: () => boolean;
159
- onClick: ({ $index, row }: {
160
- $index: any;
161
- row: any;
162
- }) => void;
163
- })[];
164
- desc?: undefined;
165
- };
166
- prop?: undefined;
167
- required?: undefined;
168
- show?: undefined;
169
- onClick?: undefined;
170
- } | {
171
81
  label: any;
172
82
  prop: string;
173
83
  type: string;
@@ -177,10 +87,7 @@ export declare const useAttachment: (props: any, { data }: {
177
87
  desc: ({ row }: {
178
88
  row: any;
179
89
  }) => any;
180
- type?: undefined;
181
- list?: undefined;
182
90
  };
183
- width?: undefined;
184
91
  onClick?: undefined;
185
92
  } | {
186
93
  label: any;
@@ -189,33 +96,35 @@ export declare const useAttachment: (props: any, { data }: {
189
96
  onClick: ({ row }: {
190
97
  row: any;
191
98
  }) => void;
192
- width?: undefined;
193
- props?: undefined;
194
99
  required?: undefined;
195
100
  show?: undefined;
101
+ props?: undefined;
196
102
  } | {
197
103
  label: any;
198
104
  prop: string;
199
105
  type?: undefined;
200
- width?: undefined;
201
- props?: undefined;
202
106
  required?: undefined;
203
107
  show?: undefined;
108
+ props?: undefined;
204
109
  onClick?: undefined;
205
110
  } | {
206
111
  label: any;
207
112
  prop: string;
208
113
  type: string;
209
114
  show: () => any;
210
- width?: undefined;
211
- props?: undefined;
212
115
  required?: undefined;
116
+ props?: undefined;
213
117
  onClick?: undefined;
214
118
  })[]>;
119
+ actionButtons: import("vue").Ref<any, any>;
215
120
  addAttachment: () => Promise<void>;
216
121
  isNormalOpen: boolean;
217
122
  isDialogOpen: boolean;
218
123
  onConfirm: (resolve: any) => Promise<void>;
219
124
  onCancel: (resolve: any) => void;
220
125
  mode: import("vue").ComputedRef<any>;
126
+ permission: import("vue").ComputedRef<{
127
+ arg: any;
128
+ value: any;
129
+ }>;
221
130
  };
@@ -15,38 +15,30 @@ const useAttachment = (props, { data }) => {
15
15
  const isDialogOpen = props.openType === "dialog";
16
16
  let toBeConfirmData = [];
17
17
  let toBeDeleteData = {};
18
- const columns = ref([
18
+ const actionButtons = ref([
19
19
  {
20
- type: "EpButtons",
21
- label: t("ep.attachment.operation"),
22
- width: "120px",
23
- props: {
24
- type: "text",
25
- list: [
26
- {
27
- name: t("ep.attachment.download"),
28
- onClick({ row }) {
29
- downloadFile({
30
- src: row.filePath,
31
- fileName: row.originalFilename || row.originalFileName
32
- });
33
- }
34
- },
35
- {
36
- name: t("ep.attachment.delete"),
37
- disabled: () => {
38
- return mode.value === "browse";
39
- },
40
- onClick: ({ $index, row }) => {
41
- if (isDialogOpen) {
42
- toBeDeleteData[$index] = row;
43
- }
44
- data.value.splice($index, 1);
45
- }
46
- }
47
- ]
20
+ name: t("ep.attachment.download"),
21
+ onClick({ row }) {
22
+ downloadFile({
23
+ src: row.filePath,
24
+ fileName: row.originalFilename || row.originalFileName
25
+ });
48
26
  }
49
27
  },
28
+ {
29
+ name: t("ep.attachment.delete"),
30
+ disabled: () => {
31
+ return mode.value === "browse";
32
+ },
33
+ onClick: ({ $index, row }) => {
34
+ if (isDialogOpen) {
35
+ toBeDeleteData[$index] = row;
36
+ }
37
+ data.value.splice($index, 1);
38
+ }
39
+ }
40
+ ]);
41
+ const columns = ref([
50
42
  {
51
43
  label: t("ep.attachment.attachmentType"),
52
44
  prop: "type",
@@ -124,14 +116,23 @@ const useAttachment = (props, { data }) => {
124
116
  }
125
117
  resolve();
126
118
  };
119
+ const permission = computed(() => {
120
+ const arr = props.permission?.split(":") || [];
121
+ return {
122
+ arg: arr[0],
123
+ value: arr[1]
124
+ };
125
+ });
127
126
  return {
128
127
  columns,
128
+ actionButtons,
129
129
  addAttachment,
130
130
  isNormalOpen,
131
131
  isDialogOpen,
132
132
  onConfirm,
133
133
  onCancel,
134
- mode
134
+ mode,
135
+ permission
135
136
  };
136
137
  };
137
138
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-attachment.mjs","sources":["../../../../../../packages/components/attachment/src/use-attachment.ts"],"sourcesContent":["import { ref, computed, useTemplateRef } from 'vue'\nimport { useNavigation } from '@el-plus/hooks/use-navigation'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nimport { downloadFile, previewFile, importFile } from '@el-plus/utils/file'\nimport { Cookies } from '@el-plus/utils/cookie'\nimport type { TableInstance } from '@el-plus/components/table'\n\nexport const useAttachment = (props, { data }) => {\n const { mode: defaultMode } = useNavigation()\n const { t } = useLocale()\n const mode = computed(() => {\n return props.mode || defaultMode.value\n })\n const tableRef = useTemplateRef<TableInstance>('tableRef')\n const isNormalOpen = props.openType === 'normal'\n const isDialogOpen = props.openType === 'dialog'\n\n // 待确认的附件列表\n let toBeConfirmData: Record<string, any>[] = []\n // 待删除的附件列表\n let toBeDeleteData: {\n [key: number]: Record<string, any> // key要存储原来索引以便保留原顺序\n } = {}\n const columns = ref([\n {\n type: 'EpButtons',\n label: t('ep.attachment.operation'),\n width: '120px',\n props: {\n type: 'text',\n list: [\n {\n name: t('ep.attachment.download'),\n onClick({ row }) {\n downloadFile({\n src: row.filePath,\n fileName: row.originalFilename || row.originalFileName,\n })\n },\n },\n {\n name: t('ep.attachment.delete'),\n disabled: () => {\n return mode.value === 'browse'\n },\n onClick: ({ $index, row }) => {\n if (isDialogOpen) {\n // 待删除的附件列表\n toBeDeleteData[$index] = row\n }\n data.value.splice($index, 1)\n },\n },\n ],\n },\n },\n {\n label: t('ep.attachment.attachmentType'),\n prop: 'type',\n type: 'EpSelect',\n required: true,\n show: () => props.isType,\n props: {\n desc: ({ row }) => {\n return row.typeDesc\n },\n },\n },\n {\n label: t('ep.attachment.fileName'),\n prop: 'originalFilename',\n type: 'EpLink',\n onClick({ row }) {\n previewFile(row.filePath)\n },\n },\n {\n label: t('ep.attachment.creator'),\n prop: 'createBy',\n },\n {\n label: t('ep.attachment.createTime'),\n prop: 'createTime',\n },\n {\n label: t('ep.attachment.description'),\n prop: 'note',\n type: 'EpInput',\n show: () => props.isNote,\n },\n ])\n const addAttachment = async () => {\n toBeConfirmData = []\n const fileData = await importFile({\n api: 'api-f/fast/files/save',\n extraData: {\n createBy: Cookies.get('accountName') || '',\n },\n })\n fileData.fileId = fileData.id\n delete fileData.id\n if (isDialogOpen) {\n // 待确认的附件列表\n toBeConfirmData.push(fileData)\n }\n if (props.beforeAdd) {\n await props.beforeAdd?.(fileData)\n }\n data.value.push(fileData)\n }\n // 确认\n const onConfirm = async (resolve) => {\n await tableRef.value?.validate()\n resolve(data.value)\n toBeConfirmData = []\n toBeDeleteData = {}\n }\n // 取消\n const onCancel = (resolve) => {\n if (toBeConfirmData.length) {\n // 找到待确认的附件\n const index = data.value.findIndex((item) => {\n return item.fileId === toBeConfirmData[0].fileId\n })\n if (index !== -1) {\n // 删除待确认的附件\n data.value.splice(index, 1)\n }\n // 清空待确认的附件列表\n toBeConfirmData = []\n }\n if (Object.keys(toBeDeleteData).length) {\n // 找到待删除的附件在原位置插入\n Object.keys(toBeDeleteData).forEach((oldIndex) => {\n data.value.splice(Number(oldIndex), 0, toBeDeleteData[oldIndex])\n })\n // 清空待删除的附件列表\n toBeDeleteData = {}\n }\n resolve()\n }\n return {\n columns,\n addAttachment,\n isNormalOpen,\n isDialogOpen,\n onConfirm,\n onCancel,\n mode\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-attachment.mjs","sources":["../../../../../../packages/components/attachment/src/use-attachment.ts"],"sourcesContent":["import { ref, computed, useTemplateRef } from 'vue'\nimport { useNavigation } from '@el-plus/hooks/use-navigation'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nimport { downloadFile, previewFile, importFile } from '@el-plus/utils/file'\nimport { Cookies } from '@el-plus/utils/cookie'\nimport type { TableInstance, TableProps } from '@el-plus/components/table'\n\nexport const useAttachment = (props, { data }) => {\n const { mode: defaultMode } = useNavigation()\n const { t } = useLocale()\n const mode = computed(() => {\n return props.mode || defaultMode.value\n })\n const tableRef = useTemplateRef<TableInstance>('tableRef')\n const isNormalOpen = props.openType === 'normal'\n const isDialogOpen = props.openType === 'dialog'\n\n // 待确认的附件列表\n let toBeConfirmData: Record<string, any>[] = []\n // 待删除的附件列表\n let toBeDeleteData: {\n [key: number]: Record<string, any> // key要存储原来索引以便保留原顺序\n } = {}\n const actionButtons = ref<any>([\n {\n name: t('ep.attachment.download'),\n onClick({ row }) {\n downloadFile({\n src: row.filePath,\n fileName: row.originalFilename || row.originalFileName,\n })\n },\n },\n {\n name: t('ep.attachment.delete'),\n disabled: () => {\n return mode.value === 'browse'\n },\n onClick: ({ $index, row }) => {\n if (isDialogOpen) {\n // 待删除的附件列表\n toBeDeleteData[$index] = row\n }\n data.value.splice($index, 1)\n },\n },\n ])\n const columns = ref([\n {\n label: t('ep.attachment.attachmentType'),\n prop: 'type',\n type: 'EpSelect',\n required: true,\n show: () => props.isType,\n props: {\n desc: ({ row }) => {\n return row.typeDesc\n },\n },\n },\n {\n label: t('ep.attachment.fileName'),\n prop: 'originalFilename',\n type: 'EpLink',\n onClick({ row }) {\n previewFile(row.filePath)\n },\n },\n {\n label: t('ep.attachment.creator'),\n prop: 'createBy',\n },\n {\n label: t('ep.attachment.createTime'),\n prop: 'createTime',\n },\n {\n label: t('ep.attachment.description'),\n prop: 'note',\n type: 'EpInput',\n show: () => props.isNote,\n },\n ])\n const addAttachment = async () => {\n toBeConfirmData = []\n const fileData = await importFile({\n api: 'api-f/fast/files/save',\n extraData: {\n createBy: Cookies.get('accountName') || '',\n },\n })\n fileData.fileId = fileData.id\n delete fileData.id\n if (isDialogOpen) {\n // 待确认的附件列表\n toBeConfirmData.push(fileData)\n }\n if (props.beforeAdd) {\n await props.beforeAdd?.(fileData)\n }\n data.value.push(fileData)\n }\n // 确认\n const onConfirm = async (resolve) => {\n await tableRef.value?.validate()\n resolve(data.value)\n toBeConfirmData = []\n toBeDeleteData = {}\n }\n // 取消\n const onCancel = (resolve) => {\n if (toBeConfirmData.length) {\n // 找到待确认的附件\n const index = data.value.findIndex((item) => {\n return item.fileId === toBeConfirmData[0].fileId\n })\n if (index !== -1) {\n // 删除待确认的附件\n data.value.splice(index, 1)\n }\n // 清空待确认的附件列表\n toBeConfirmData = []\n }\n if (Object.keys(toBeDeleteData).length) {\n // 找到待删除的附件在原位置插入\n Object.keys(toBeDeleteData).forEach((oldIndex) => {\n data.value.splice(Number(oldIndex), 0, toBeDeleteData[oldIndex])\n })\n // 清空待删除的附件列表\n toBeDeleteData = {}\n }\n resolve()\n }\n const permission = computed(() => {\n const arr = props.permission?.split(':') || []\n return {\n arg: arr[0],\n value: arr[1]\n }\n })\n return {\n columns,\n actionButtons,\n addAttachment,\n isNormalOpen,\n isDialogOpen,\n onConfirm,\n onCancel,\n mode,\n permission\n }\n}\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,aAAA,GAAgB,CAAC,KAAA,EAAO,EAAE,MAAK,KAAM;AAChD,EAAA,MAAM,EAAE,IAAA,EAAM,WAAA,EAAY,GAAI,aAAA,EAAc;AAC5C,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,EAAU;AACxB,EAAA,MAAM,IAAA,GAAO,SAAS,MAAM;AAC1B,IAAA,OAAO,KAAA,CAAM,QAAQ,WAAA,CAAY,KAAA;AAAA,EACnC,CAAC,CAAA;AACD,EAAA,MAAM,QAAA,GAAW,eAA8B,UAAU,CAAA;AACzD,EAAA,MAAM,YAAA,GAAe,MAAM,QAAA,KAAa,QAAA;AACxC,EAAA,MAAM,YAAA,GAAe,MAAM,QAAA,KAAa,QAAA;AAGxC,EAAA,IAAI,kBAAyC,EAAC;AAE9C,EAAA,IAAI,iBAEA,EAAC;AACL,EAAA,MAAM,gBAAgB,GAAA,CAAS;AAAA,IAC7B;AAAA,MACE,IAAA,EAAM,EAAE,wBAAwB,CAAA;AAAA,MAChC,OAAA,CAAQ,EAAE,GAAA,EAAI,EAAG;AACf,QAAA,YAAA,CAAa;AAAA,UACX,KAAK,GAAA,CAAI,QAAA;AAAA,UACT,QAAA,EAAU,GAAA,CAAI,gBAAA,IAAoB,GAAA,CAAI;AAAA,SACvC,CAAA;AAAA,MACH;AAAA,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,EAAE,sBAAsB,CAAA;AAAA,MAC9B,UAAU,MAAM;AACd,QAAA,OAAO,KAAK,KAAA,KAAU,QAAA;AAAA,MACxB,CAAA;AAAA,MACA,OAAA,EAAS,CAAC,EAAE,MAAA,EAAQ,KAAI,KAAM;AAC5B,QAAA,IAAI,YAAA,EAAc;AAEhB,UAAA,cAAA,CAAe,MAAM,CAAA,GAAI,GAAA;AAAA,QAC3B;AACA,QAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,MAAA,EAAQ,CAAC,CAAA;AAAA,MAC7B;AAAA;AACF,GACD,CAAA;AACD,EAAA,MAAM,UAAU,GAAA,CAAI;AAAA,IAClB;AAAA,MACE,KAAA,EAAO,EAAE,8BAA8B,CAAA;AAAA,MACvC,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,IAAA,EAAM,MAAM,KAAA,CAAM,MAAA;AAAA,MAClB,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,CAAC,EAAE,GAAA,EAAI,KAAM;AACjB,UAAA,OAAO,GAAA,CAAI,QAAA;AAAA,QACb;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,MACjC,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,CAAQ,EAAE,GAAA,EAAI,EAAG;AACf,QAAA,WAAA,CAAY,IAAI,QAAQ,CAAA;AAAA,MAC1B;AAAA,KACF;AAAA,IACA;AAAA,MACE,KAAA,EAAO,EAAE,uBAAuB,CAAA;AAAA,MAChC,IAAA,EAAM;AAAA,KACR;AAAA,IACA;AAAA,MACE,KAAA,EAAO,EAAE,0BAA0B,CAAA;AAAA,MACnC,IAAA,EAAM;AAAA,KACR;AAAA,IACA;AAAA,MACE,KAAA,EAAO,EAAE,2BAA2B,CAAA;AAAA,MACpC,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,MAAM,KAAA,CAAM;AAAA;AACpB,GACD,CAAA;AACD,EAAA,MAAM,gBAAgB,YAAY;AAChC,IAAA,eAAA,GAAkB,EAAC;AACnB,IAAA,MAAM,QAAA,GAAW,MAAM,UAAA,CAAW;AAAA,MAChC,GAAA,EAAK,uBAAA;AAAA,MACL,SAAA,EAAW;AAAA,QACT,QAAA,EAAU,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAA,IAAK;AAAA;AAC1C,KACD,CAAA;AACD,IAAA,QAAA,CAAS,SAAS,QAAA,CAAS,EAAA;AAC3B,IAAA,OAAO,QAAA,CAAS,EAAA;AAChB,IAAA,IAAI,YAAA,EAAc;AAEhB,MAAA,eAAA,CAAgB,KAAK,QAAQ,CAAA;AAAA,IAC/B;AACA,IAAA,IAAI,MAAM,SAAA,EAAW;AACnB,MAAA,MAAM,KAAA,CAAM,YAAY,QAAQ,CAAA;AAAA,IAClC;AACA,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,QAAQ,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,OAAO,OAAA,KAAY;AACnC,IAAA,MAAM,QAAA,CAAS,OAAO,QAAA,EAAS;AAC/B,IAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAClB,IAAA,eAAA,GAAkB,EAAC;AACnB,IAAA,cAAA,GAAiB,EAAC;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,OAAA,KAAY;AAC5B,IAAA,IAAI,gBAAgB,MAAA,EAAQ;AAE1B,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,CAAC,IAAA,KAAS;AAC3C,QAAA,OAAO,IAAA,CAAK,MAAA,KAAW,eAAA,CAAgB,CAAC,CAAA,CAAE,MAAA;AAAA,MAC5C,CAAC,CAAA;AACD,MAAA,IAAI,UAAU,EAAA,EAAI;AAEhB,QAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,CAAC,CAAA;AAAA,MAC5B;AAEA,MAAA,eAAA,GAAkB,EAAC;AAAA,IACrB;AACA,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,CAAE,MAAA,EAAQ;AAEtC,MAAA,MAAA,CAAO,IAAA,CAAK,cAAc,CAAA,CAAE,OAAA,CAAQ,CAAC,QAAA,KAAa;AAChD,QAAA,IAAA,CAAK,KAAA,CAAM,OAAO,MAAA,CAAO,QAAQ,GAAG,CAAA,EAAG,cAAA,CAAe,QAAQ,CAAC,CAAA;AAAA,MACjE,CAAC,CAAA;AAED,MAAA,cAAA,GAAiB,EAAC;AAAA,IACpB;AACA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AACA,EAAA,MAAM,UAAA,GAAa,SAAS,MAAM;AAChC,IAAA,MAAM,MAAM,KAAA,CAAM,UAAA,EAAY,KAAA,CAAM,GAAG,KAAK,EAAC;AAC7C,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,IAAI,CAAC,CAAA;AAAA,MACV,KAAA,EAAO,IAAI,CAAC;AAAA,KACd;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -75,6 +75,8 @@ export declare const EpHeader: {
75
75
  show?: (boolean | ((T: unknown) => boolean)) | undefined;
76
76
  hide?: (boolean | ((T: unknown) => boolean)) | undefined;
77
77
  }>[] | undefined;
78
+ readonly rowKey?: string | undefined;
79
+ readonly permission?: `${string}:${string}` | undefined;
78
80
  readonly openType?: "dialog" | "normal" | undefined;
79
81
  readonly isType?: boolean | undefined;
80
82
  readonly isNote?: boolean | undefined;
@@ -164,6 +166,8 @@ export declare const EpHeader: {
164
166
  show?: (boolean | ((T: unknown) => boolean)) | undefined;
165
167
  hide?: (boolean | ((T: unknown) => boolean)) | undefined;
166
168
  }>[] | undefined;
169
+ readonly rowKey?: string | undefined;
170
+ readonly permission?: `${string}:${string}` | undefined;
167
171
  readonly openType?: "dialog" | "normal" | undefined;
168
172
  readonly isType?: boolean | undefined;
169
173
  readonly isNote?: boolean | undefined;
@@ -238,6 +242,8 @@ export declare const EpHeader: {
238
242
  show?: (boolean | ((T: unknown) => boolean)) | undefined;
239
243
  hide?: (boolean | ((T: unknown) => boolean)) | undefined;
240
244
  }>[] | undefined;
245
+ readonly rowKey?: string | undefined;
246
+ readonly permission?: `${string}:${string}` | undefined;
241
247
  readonly openType?: "dialog" | "normal" | undefined;
242
248
  readonly isType?: boolean | undefined;
243
249
  readonly isNote?: boolean | undefined;
@@ -92,6 +92,8 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
92
92
  show?: (boolean | ((T: unknown) => boolean)) | undefined;
93
93
  hide?: (boolean | ((T: unknown) => boolean)) | undefined;
94
94
  }>[] | undefined;
95
+ readonly rowKey?: string | undefined;
96
+ readonly permission?: `${string}:${string}` | undefined;
95
97
  readonly openType?: "dialog" | "normal" | undefined;
96
98
  readonly isType?: boolean | undefined;
97
99
  readonly isNote?: boolean | undefined;