@ramathibodi/nuxt-commons 4.0.12 → 4.0.13
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.
- package/dist/module.json +1 -1
- package/dist/runtime/components/dialog/ImportProgress.d.vue.ts +35 -0
- package/dist/runtime/components/dialog/ImportProgress.vue +53 -0
- package/dist/runtime/components/dialog/ImportProgress.vue.d.ts +35 -0
- package/dist/runtime/components/document/TemplateBuilder.vue +112 -7
- package/dist/runtime/components/model/Pad.vue +2 -1
- package/dist/runtime/components/model/Table.d.vue.ts +79 -12
- package/dist/runtime/components/model/Table.vue +106 -3
- package/dist/runtime/components/model/Table.vue.d.ts +79 -12
- package/dist/runtime/components/model/iterator.d.vue.ts +117 -29
- package/dist/runtime/components/model/iterator.vue +117 -5
- package/dist/runtime/components/model/iterator.vue.d.ts +117 -29
- package/dist/runtime/composables/apiModel.d.ts +20 -1
- package/dist/runtime/composables/apiModel.js +24 -16
- package/dist/runtime/composables/document/template.d.ts +61 -0
- package/dist/runtime/composables/document/template.js +59 -0
- package/dist/runtime/composables/document/validateTemplate.d.ts +62 -0
- package/dist/runtime/composables/document/validateTemplate.js +378 -0
- package/dist/runtime/composables/graphqlModel.d.ts +20 -1
- package/dist/runtime/composables/graphqlModel.js +24 -16
- package/dist/runtime/composables/graphqlModelOperation.d.ts +1 -0
- package/dist/runtime/composables/importProgress.d.ts +34 -0
- package/dist/runtime/composables/importProgress.js +50 -0
- package/dist/runtime/utils/virtualize.d.ts +15 -0
- package/dist/runtime/utils/virtualize.js +10 -0
- package/package.json +2 -1
- package/scripts/validate-document-template.mjs +158 -0
|
@@ -8,6 +8,7 @@ import { usePerPagePreference } from "../../composables/perPagePreference";
|
|
|
8
8
|
import { useDialog } from "../../composables/dialog";
|
|
9
9
|
import { useUserPermission } from "../../composables/userPermission";
|
|
10
10
|
import { useModelAutoRefresh } from "../../composables/modelAutoRefresh";
|
|
11
|
+
import { shouldVirtualize } from "../../utils/virtualize";
|
|
11
12
|
import { useState } from "#imports";
|
|
12
13
|
defineOptions({
|
|
13
14
|
inheritAttrs: false
|
|
@@ -29,6 +30,7 @@ const props = defineProps({
|
|
|
29
30
|
search: { type: String, required: false },
|
|
30
31
|
saveAndStay: { type: Boolean, required: false, default: false },
|
|
31
32
|
stringFields: { type: Array, required: false, default: () => [] },
|
|
33
|
+
importConcurrency: { type: Number, required: false, default: 3 },
|
|
32
34
|
onlyOwnerEdit: { type: Boolean, required: false, default: false },
|
|
33
35
|
onlyOwnerOverridePermission: { type: [String, Array], required: false },
|
|
34
36
|
api: { type: Boolean, required: false, default: false },
|
|
@@ -37,6 +39,9 @@ const props = defineProps({
|
|
|
37
39
|
autoRefresh: { type: [Number, Boolean], required: false, default: false },
|
|
38
40
|
autoRefreshDefault: { type: Number, required: false, default: 60 },
|
|
39
41
|
autoRefreshControl: { type: Boolean, required: false, default: true },
|
|
42
|
+
virtual: { type: Boolean, required: false, default: void 0 },
|
|
43
|
+
virtualThreshold: { type: Number, required: false, default: 500 },
|
|
44
|
+
virtualHeight: { type: [Number, String], required: false, default: "70vh" },
|
|
40
45
|
modelName: { type: String, required: true },
|
|
41
46
|
modelKey: { type: String, required: false, default: "id" },
|
|
42
47
|
modelBy: { type: Object, required: false, default: void 0 },
|
|
@@ -74,6 +79,7 @@ const {
|
|
|
74
79
|
itemsLength,
|
|
75
80
|
search,
|
|
76
81
|
setSearch,
|
|
82
|
+
currentOptions,
|
|
77
83
|
canServerPageable,
|
|
78
84
|
canServerSearch,
|
|
79
85
|
canCreate,
|
|
@@ -85,7 +91,8 @@ const {
|
|
|
85
91
|
deleteItem,
|
|
86
92
|
loadItems,
|
|
87
93
|
reload,
|
|
88
|
-
isLoading
|
|
94
|
+
isLoading,
|
|
95
|
+
importProgress
|
|
89
96
|
} = props.api ? useApiModel(props) : useGraphqlModel(props);
|
|
90
97
|
const { autoRefresh, manualReload } = useModelAutoRefresh(props, {
|
|
91
98
|
reload,
|
|
@@ -136,13 +143,25 @@ const canEditRow = function(item) {
|
|
|
136
143
|
return true;
|
|
137
144
|
};
|
|
138
145
|
const operation = ref({ openDialog, openDialogReadonly, createItem, importItems, updateItem, deleteItem, reload, setSearch, canServerPageable, canServerSearch, canCreate, canUpdate, canDelete, canEditRow, onlyOwnerEdit: props.onlyOwnerEdit, onlyOwnerOverridePermission: props.onlyOwnerOverridePermission, autoRefresh: markRaw(autoRefresh) });
|
|
146
|
+
const useVirtual = computed(() => shouldVirtualize(items.value.length, props.virtual, props.virtualThreshold));
|
|
147
|
+
const virtualPerPageOptions = computed(
|
|
148
|
+
() => plainAttrs.value["items-per-page-options"] ?? plainAttrs.value["itemsPerPageOptions"] ?? [{ value: 25, title: "25" }, { value: 50, title: "50" }, { value: 100, title: "100" }, { value: -1, title: "All" }]
|
|
149
|
+
);
|
|
150
|
+
function onVirtualPerPageChange(value) {
|
|
151
|
+
itemsPerPageInternal.value = value;
|
|
152
|
+
loadItems({
|
|
153
|
+
page: 1,
|
|
154
|
+
itemsPerPage: Number(value),
|
|
155
|
+
sortBy: currentOptions.value?.sortBy ?? []
|
|
156
|
+
});
|
|
157
|
+
}
|
|
139
158
|
const computedInitialData = computed(() => {
|
|
140
159
|
return Object.assign({}, props.initialData, props.modelBy);
|
|
141
160
|
});
|
|
142
161
|
watch(() => props.search, () => {
|
|
143
162
|
search.value = props.search;
|
|
144
163
|
}, { immediate: true });
|
|
145
|
-
defineExpose({ reload, operation, items, autoRefresh });
|
|
164
|
+
defineExpose({ reload, operation, items, autoRefresh, importProgress });
|
|
146
165
|
</script>
|
|
147
166
|
|
|
148
167
|
<template>
|
|
@@ -233,7 +252,7 @@ defineExpose({ reload, operation, items, autoRefresh });
|
|
|
233
252
|
</VToolbar>
|
|
234
253
|
</slot>
|
|
235
254
|
<v-data-table-server
|
|
236
|
-
v-if="canServerPageable"
|
|
255
|
+
v-if="canServerPageable && !useVirtual"
|
|
237
256
|
v-bind="plainAttrs"
|
|
238
257
|
v-model:items-per-page="itemsPerPageInternal"
|
|
239
258
|
color="primary"
|
|
@@ -283,6 +302,72 @@ defineExpose({ reload, operation, items, autoRefresh });
|
|
|
283
302
|
/>
|
|
284
303
|
</template>
|
|
285
304
|
</v-data-table-server>
|
|
305
|
+
<v-data-table-virtual
|
|
306
|
+
v-else-if="useVirtual"
|
|
307
|
+
v-bind="plainAttrs"
|
|
308
|
+
color="primary"
|
|
309
|
+
:items="items"
|
|
310
|
+
:item-value="props.modelKey"
|
|
311
|
+
:search="search"
|
|
312
|
+
:loading="isLoading"
|
|
313
|
+
:height="props.virtualHeight"
|
|
314
|
+
fixed-header
|
|
315
|
+
>
|
|
316
|
+
<!-- @ts-ignore -->
|
|
317
|
+
<template
|
|
318
|
+
v-for="(_, name, index) in $slots"
|
|
319
|
+
:key="index"
|
|
320
|
+
#[name]="slotData"
|
|
321
|
+
>
|
|
322
|
+
<slot
|
|
323
|
+
:name="name"
|
|
324
|
+
v-bind="slotData || {}"
|
|
325
|
+
:operation="operation"
|
|
326
|
+
/>
|
|
327
|
+
</template>
|
|
328
|
+
<!-- action-column: keep in sync with the v-data-table-server and v-data-table branches -->
|
|
329
|
+
<template
|
|
330
|
+
v-if="!$slots['item.action']"
|
|
331
|
+
#item.action="{ item }"
|
|
332
|
+
>
|
|
333
|
+
<v-btn
|
|
334
|
+
v-if="!canUpdate || !canEditRow(item)"
|
|
335
|
+
variant="flat"
|
|
336
|
+
density="compact"
|
|
337
|
+
icon="mdi mdi-note-search"
|
|
338
|
+
@click="openDialogReadonly(item)"
|
|
339
|
+
/>
|
|
340
|
+
<v-btn
|
|
341
|
+
v-if="canUpdate && canEditRow(item)"
|
|
342
|
+
variant="flat"
|
|
343
|
+
density="compact"
|
|
344
|
+
icon="mdi mdi-note-edit"
|
|
345
|
+
@click="openDialog(item)"
|
|
346
|
+
/>
|
|
347
|
+
<v-btn
|
|
348
|
+
v-if="canDelete && canEditRow(item)"
|
|
349
|
+
variant="flat"
|
|
350
|
+
density="compact"
|
|
351
|
+
icon="mdi mdi-delete"
|
|
352
|
+
@click="confirmDeleteItem(item)"
|
|
353
|
+
/>
|
|
354
|
+
</template>
|
|
355
|
+
<template #bottom>
|
|
356
|
+
<div class="d-flex align-center justify-end pa-2 ga-3">
|
|
357
|
+
<span class="text-caption text-medium-emphasis">{{ items.length }} rows</span>
|
|
358
|
+
<v-select
|
|
359
|
+
:model-value="itemsPerPageInternal"
|
|
360
|
+
:items="virtualPerPageOptions"
|
|
361
|
+
label="Items per page"
|
|
362
|
+
density="compact"
|
|
363
|
+
variant="outlined"
|
|
364
|
+
hide-details
|
|
365
|
+
style="max-width: 130px"
|
|
366
|
+
@update:model-value="onVirtualPerPageChange"
|
|
367
|
+
/>
|
|
368
|
+
</div>
|
|
369
|
+
</template>
|
|
370
|
+
</v-data-table-virtual>
|
|
286
371
|
<v-data-table
|
|
287
372
|
v-else
|
|
288
373
|
v-bind="plainAttrs"
|
|
@@ -373,5 +458,23 @@ defineExpose({ reload, operation, items, autoRefresh });
|
|
|
373
458
|
/>
|
|
374
459
|
</template>
|
|
375
460
|
</FormDialog>
|
|
461
|
+
<slot
|
|
462
|
+
name="importProgress"
|
|
463
|
+
:is-importing="importProgress.isImporting.value"
|
|
464
|
+
:total="importProgress.total.value"
|
|
465
|
+
:processed="importProgress.processed.value"
|
|
466
|
+
:succeeded="importProgress.succeeded.value"
|
|
467
|
+
:failed="importProgress.failed.value"
|
|
468
|
+
:percent="importProgress.percent.value"
|
|
469
|
+
>
|
|
470
|
+
<DialogImportProgress
|
|
471
|
+
:model-value="importProgress.isImporting.value"
|
|
472
|
+
:total="importProgress.total.value"
|
|
473
|
+
:processed="importProgress.processed.value"
|
|
474
|
+
:succeeded="importProgress.succeeded.value"
|
|
475
|
+
:failed="importProgress.failed.value"
|
|
476
|
+
:percent="importProgress.percent.value"
|
|
477
|
+
/>
|
|
478
|
+
</slot>
|
|
376
479
|
</v-card>
|
|
377
480
|
</template>
|
|
@@ -18,6 +18,7 @@ interface Props extends /* @vue-ignore */ InstanceType<typeof VDataTable['$props
|
|
|
18
18
|
search?: string;
|
|
19
19
|
saveAndStay?: boolean;
|
|
20
20
|
stringFields?: Array<string>;
|
|
21
|
+
importConcurrency?: number;
|
|
21
22
|
onlyOwnerEdit?: boolean;
|
|
22
23
|
onlyOwnerOverridePermission?: string | string[];
|
|
23
24
|
api?: boolean;
|
|
@@ -26,6 +27,9 @@ interface Props extends /* @vue-ignore */ InstanceType<typeof VDataTable['$props
|
|
|
26
27
|
autoRefresh?: number | boolean;
|
|
27
28
|
autoRefreshDefault?: number;
|
|
28
29
|
autoRefreshControl?: boolean;
|
|
30
|
+
virtual?: boolean;
|
|
31
|
+
virtualThreshold?: number;
|
|
32
|
+
virtualHeight?: number | string;
|
|
29
33
|
}
|
|
30
34
|
/**
|
|
31
35
|
* Public props accepted by ModelTable.
|
|
@@ -40,7 +44,7 @@ declare var __VLS_8: {
|
|
|
40
44
|
openDialog: typeof openDialog;
|
|
41
45
|
openDialogReadonly: typeof openDialogReadonly;
|
|
42
46
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
43
|
-
importItems: ((
|
|
47
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
44
48
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
45
49
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
46
50
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -73,7 +77,7 @@ declare var __VLS_8: {
|
|
|
73
77
|
openDialog: typeof openDialog;
|
|
74
78
|
openDialogReadonly: typeof openDialogReadonly;
|
|
75
79
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
76
|
-
importItems: ((
|
|
80
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
77
81
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
78
82
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
79
83
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -94,7 +98,7 @@ declare var __VLS_8: {
|
|
|
94
98
|
openDialog: typeof openDialog;
|
|
95
99
|
openDialogReadonly: typeof openDialogReadonly;
|
|
96
100
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
97
|
-
importItems: ((
|
|
101
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
98
102
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
99
103
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
100
104
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -114,7 +118,7 @@ declare var __VLS_8: {
|
|
|
114
118
|
openDialog: typeof openDialog;
|
|
115
119
|
openDialogReadonly: typeof openDialogReadonly;
|
|
116
120
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
117
|
-
importItems: ((
|
|
121
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
118
122
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
119
123
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
120
124
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -134,7 +138,7 @@ declare var __VLS_8: {
|
|
|
134
138
|
openDialog: typeof openDialog;
|
|
135
139
|
openDialogReadonly: typeof openDialogReadonly;
|
|
136
140
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
137
|
-
importItems: ((
|
|
141
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
138
142
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
139
143
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
140
144
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -149,11 +153,40 @@ declare var __VLS_8: {
|
|
|
149
153
|
onlyOwnerOverridePermission: string | string[] | undefined;
|
|
150
154
|
autoRefresh: import("vue").Raw<import("#imports").UseAutoRefreshHandle>;
|
|
151
155
|
};
|
|
152
|
-
},
|
|
156
|
+
}, __VLS_176: never, __VLS_177: {
|
|
157
|
+
operation: {
|
|
158
|
+
openDialog: typeof openDialog;
|
|
159
|
+
openDialogReadonly: typeof openDialogReadonly;
|
|
160
|
+
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
161
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
162
|
+
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
163
|
+
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
164
|
+
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
165
|
+
setSearch: ((keyword: string) => void) | ((keyword: string) => void);
|
|
166
|
+
canServerPageable: boolean;
|
|
167
|
+
canServerSearch: boolean;
|
|
168
|
+
canCreate: boolean;
|
|
169
|
+
canUpdate: boolean;
|
|
170
|
+
canDelete: boolean;
|
|
171
|
+
canEditRow: (item: Record<string, any>) => boolean;
|
|
172
|
+
onlyOwnerEdit: boolean;
|
|
173
|
+
onlyOwnerOverridePermission: string | string[] | undefined;
|
|
174
|
+
autoRefresh: import("vue").Raw<import("#imports").UseAutoRefreshHandle>;
|
|
175
|
+
};
|
|
176
|
+
}, __VLS_212: any, __VLS_215: any, __VLS_218: any, __VLS_220: {
|
|
177
|
+
isImporting: boolean;
|
|
178
|
+
total: number;
|
|
179
|
+
processed: number;
|
|
180
|
+
succeeded: number;
|
|
181
|
+
failed: number;
|
|
182
|
+
percent: number;
|
|
183
|
+
};
|
|
153
184
|
type __VLS_Slots = {} & {
|
|
154
185
|
[K in NonNullable<typeof __VLS_102>]?: (props: typeof __VLS_103) => any;
|
|
155
186
|
} & {
|
|
156
187
|
[K in NonNullable<typeof __VLS_135>]?: (props: typeof __VLS_136) => any;
|
|
188
|
+
} & {
|
|
189
|
+
[K in NonNullable<typeof __VLS_176>]?: (props: typeof __VLS_177) => any;
|
|
157
190
|
} & {
|
|
158
191
|
header?: (props: typeof __VLS_8) => any;
|
|
159
192
|
} & {
|
|
@@ -165,11 +198,13 @@ type __VLS_Slots = {} & {
|
|
|
165
198
|
} & {
|
|
166
199
|
toolbarItems?: (props: typeof __VLS_70) => any;
|
|
167
200
|
} & {
|
|
168
|
-
form?: (props: typeof
|
|
201
|
+
form?: (props: typeof __VLS_212) => any;
|
|
169
202
|
} & {
|
|
170
|
-
formTitle?: (props: typeof
|
|
203
|
+
formTitle?: (props: typeof __VLS_215) => any;
|
|
171
204
|
} & {
|
|
172
|
-
formAction?: (props: typeof
|
|
205
|
+
formAction?: (props: typeof __VLS_218) => any;
|
|
206
|
+
} & {
|
|
207
|
+
importProgress?: (props: typeof __VLS_220) => any;
|
|
173
208
|
};
|
|
174
209
|
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
|
|
175
210
|
noDataText: string;
|
|
@@ -184,19 +219,23 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
184
219
|
modelBy: undefined;
|
|
185
220
|
fields: () => never[];
|
|
186
221
|
stringFields: () => never[];
|
|
222
|
+
importConcurrency: number;
|
|
187
223
|
onlyOwnerEdit: boolean;
|
|
188
224
|
api: boolean;
|
|
189
225
|
perPageStorageEnabled: boolean;
|
|
190
226
|
autoRefresh: boolean;
|
|
191
227
|
autoRefreshDefault: number;
|
|
192
228
|
autoRefreshControl: boolean;
|
|
229
|
+
virtual: undefined;
|
|
230
|
+
virtualThreshold: number;
|
|
231
|
+
virtualHeight: string;
|
|
193
232
|
}>>, {
|
|
194
233
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
195
234
|
operation: import("vue").Ref<{
|
|
196
235
|
openDialog: typeof openDialog;
|
|
197
236
|
openDialogReadonly: typeof openDialogReadonly;
|
|
198
237
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
199
|
-
importItems: ((
|
|
238
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
200
239
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
201
240
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
202
241
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -214,7 +253,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
214
253
|
openDialog: typeof openDialog;
|
|
215
254
|
openDialogReadonly: typeof openDialogReadonly;
|
|
216
255
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
217
|
-
importItems: ((
|
|
256
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
218
257
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
219
258
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
220
259
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -232,7 +271,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
232
271
|
openDialog: typeof openDialog;
|
|
233
272
|
openDialogReadonly: typeof openDialogReadonly;
|
|
234
273
|
createItem: ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<any>);
|
|
235
|
-
importItems: ((
|
|
274
|
+
importItems: ((importData: Record<string, any>[], callback?: FormDialogCallback) => void) | ((importData: Record<string, any>[], callback?: FormDialogCallback) => void);
|
|
236
275
|
updateItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
237
276
|
deleteItem: ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>) | ((item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>);
|
|
238
277
|
reload: (() => Promise<void> | undefined) | (() => Promise<void>);
|
|
@@ -249,6 +288,30 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
249
288
|
}>;
|
|
250
289
|
items: import("vue").Ref<Record<string, any>[], Record<string, any>[]>;
|
|
251
290
|
autoRefresh: import("#imports").UseAutoRefreshHandle;
|
|
291
|
+
importProgress: {
|
|
292
|
+
isImporting: import("vue").Ref<boolean, boolean>;
|
|
293
|
+
total: import("vue").Ref<number, number>;
|
|
294
|
+
processed: import("vue").Ref<number, number>;
|
|
295
|
+
succeeded: import("vue").Ref<number, number>;
|
|
296
|
+
failed: import("vue").Ref<number, number>;
|
|
297
|
+
errors: import("vue").Ref<{
|
|
298
|
+
index: number;
|
|
299
|
+
message: string;
|
|
300
|
+
}[], import("#imports").ImportError[] | {
|
|
301
|
+
index: number;
|
|
302
|
+
message: string;
|
|
303
|
+
}[]>;
|
|
304
|
+
percent: import("vue").ComputedRef<number>;
|
|
305
|
+
reset: () => void;
|
|
306
|
+
run: <T = any>(items: T[], worker: import("#imports").ImportWorker<T>, options?: {
|
|
307
|
+
concurrency
|
|
308
|
+
/**
|
|
309
|
+
* ModelTable connects model metadata to reusable selection, labeling, iterator, or table UI patterns.
|
|
310
|
+
* This doc block is consumed by vue-docgen for generated API documentation.
|
|
311
|
+
*/
|
|
312
|
+
?: number;
|
|
313
|
+
}) => Promise<import("#imports").ImportSummary>;
|
|
314
|
+
};
|
|
252
315
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
253
316
|
delete: (...args: any[]) => void;
|
|
254
317
|
create: (...args: any[]) => void;
|
|
@@ -268,12 +331,16 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
268
331
|
modelBy: undefined;
|
|
269
332
|
fields: () => never[];
|
|
270
333
|
stringFields: () => never[];
|
|
334
|
+
importConcurrency: number;
|
|
271
335
|
onlyOwnerEdit: boolean;
|
|
272
336
|
api: boolean;
|
|
273
337
|
perPageStorageEnabled: boolean;
|
|
274
338
|
autoRefresh: boolean;
|
|
275
339
|
autoRefreshDefault: number;
|
|
276
340
|
autoRefreshControl: boolean;
|
|
341
|
+
virtual: undefined;
|
|
342
|
+
virtualThreshold: number;
|
|
343
|
+
virtualHeight: string;
|
|
277
344
|
}>>> & Readonly<{
|
|
278
345
|
onDelete?: ((...args: any[]) => any) | undefined;
|
|
279
346
|
onCreate?: ((...args: any[]) => any) | undefined;
|