atom-nuxt 1.3.0 → 1.3.3

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 (34) hide show
  1. package/dist/module.d.mts +3 -1
  2. package/dist/module.json +3 -3
  3. package/dist/module.mjs +2 -1
  4. package/dist/runtime/components/AlertDisplay.vue +11 -18
  5. package/dist/runtime/components/AlertDisplay.vue.d.ts +2 -0
  6. package/dist/runtime/components/CrudAddressSearchField.vue +22 -35
  7. package/dist/runtime/components/CrudAddressSearchField.vue.d.ts +8 -0
  8. package/dist/runtime/components/CrudApiSelectorField.vue +11 -24
  9. package/dist/runtime/components/CrudApiSelectorField.vue.d.ts +30 -0
  10. package/dist/runtime/components/CrudConfirmDialog.vue +11 -17
  11. package/dist/runtime/components/CrudConfirmDialog.vue.d.ts +18 -0
  12. package/dist/runtime/components/CrudErrorDisplay.vue +3 -4
  13. package/dist/runtime/components/CrudErrorDisplay.vue.d.ts +6 -0
  14. package/dist/runtime/components/CrudFilter.vue +25 -46
  15. package/dist/runtime/components/CrudFilter.vue.d.ts +8 -0
  16. package/dist/runtime/components/CrudFilterList.vue +0 -6
  17. package/dist/runtime/components/CrudFilterList.vue.d.ts +5 -0
  18. package/dist/runtime/components/CrudFormDialog.vue +82 -24
  19. package/dist/runtime/components/CrudFormDialog.vue.d.ts +39 -0
  20. package/dist/runtime/components/CrudFormLoader.vue +127 -120
  21. package/dist/runtime/components/CrudFormLoader.vue.d.ts +46 -0
  22. package/dist/runtime/components/CrudListLoader.vue +17 -28
  23. package/dist/runtime/components/CrudListLoader.vue.d.ts +37 -0
  24. package/dist/runtime/components/CrudPaginatedLoader.vue +118 -104
  25. package/dist/runtime/components/CrudPaginatedLoader.vue.d.ts +83 -0
  26. package/dist/runtime/components/CrudUploadField.vue +6 -28
  27. package/dist/runtime/components/CrudUploadField.vue.d.ts +23 -0
  28. package/dist/runtime/components/CrudUploadFieldSelection.vue +19 -27
  29. package/dist/runtime/components/CrudUploadFieldSelection.vue.d.ts +18 -0
  30. package/dist/types.d.mts +4 -2
  31. package/package.json +1 -1
  32. package/dist/module.cjs +0 -5
  33. package/dist/module.d.ts +0 -22
  34. package/dist/types.d.ts +0 -7
@@ -1,16 +1,15 @@
1
1
  <script setup async>
2
- import {useCrudApi} from "../composables/useCrudApi";
2
+ import { useCrudApi } from "../composables/useCrudApi";
3
3
  import CrudErrorDisplay from "./CrudErrorDisplay.vue";
4
- import {useListenerService} from "../composables/useListenerService";
5
- import {watch, onMounted, onBeforeUnmount, ref} from "vue";
6
- import {useDebounceFn} from "@vueuse/core";
7
-
4
+ import { useListenerService } from "../composables/useListenerService";
5
+ import { watch, onMounted, onBeforeUnmount, ref } from "vue";
6
+ import { useDebounceFn } from "@vueuse/core";
8
7
  const props = defineProps({
9
- debounced : {
8
+ debounced: {
10
9
  type: Boolean,
11
- default :false
10
+ default: false
12
11
  },
13
- disableNoResults : {
12
+ disableNoResults: {
14
13
  type: Boolean,
15
14
  default: false
16
15
  },
@@ -37,7 +36,7 @@ const props = defineProps({
37
36
  required: false,
38
37
  default: false
39
38
  },
40
- listeners : {
39
+ listeners: {
41
40
  type: Array,
42
41
  required: false,
43
42
  default: () => []
@@ -64,50 +63,44 @@ const {
64
63
  totalPages,
65
64
  hasListErrors
66
65
  } = useCrudApi(props.path);
67
-
68
66
  const debouncedGet = useDebounceFn(getItems, 500);
69
-
70
67
  const lastRequest = ref(null);
71
-
72
68
  const setLastRequest = () => {
73
- lastRequest.value = JSON.stringify({page: props.page, perPage: props.perPage, customFilters: props.customFilters});
74
- }
75
-
69
+ lastRequest.value = JSON.stringify({ page: props.page, perPage: props.perPage, customFilters: props.customFilters });
70
+ };
76
71
  watch(() => props.customFilters, () => {
77
- if (lastRequest.value === JSON.stringify({page: props.page, perPage: props.perPage, customFilters: props.customFilters})) {
72
+ if (lastRequest.value === JSON.stringify({ page: props.page, perPage: props.perPage, customFilters: props.customFilters })) {
78
73
  return;
79
74
  }
80
- if(props.debounced) {
75
+ if (props.debounced) {
81
76
  debouncedGet(props.page, props.perPage, props.customFilters);
82
77
  } else {
83
78
  getItems(props.page, props.perPage, props.customFilters);
84
79
  }
85
80
  setLastRequest();
86
- }, {deep: true});
81
+ });
87
82
  watch(() => props.page, () => {
88
83
  getItems(props.page, props.perPage, props.customFilters);
89
84
  });
90
- if(props.await) {
85
+ if (props.await) {
91
86
  await getItems(props.page, props.perPage, props.customFilters);
92
87
  } else {
93
88
  getItems(props.page, props.perPage, props.customFilters);
94
89
  }
95
90
  setLastRequest();
96
-
97
- const {addListener, removeLocalListenersWithEvent, notify} = useListenerService();
91
+ const { addListener, removeLocalListenersWithEvent, notify } = useListenerService();
98
92
  onMounted(() => {
99
93
  props.listeners.forEach((listener) => {
100
94
  addListener(listener, (data) => {
101
95
  getItems(props.page, null, props.customFilters);
102
96
  });
103
97
  });
104
- })
98
+ });
105
99
  onBeforeUnmount(() => {
106
100
  props.listeners.forEach((listener) => {
107
101
  removeLocalListenersWithEvent(listener);
108
102
  });
109
- })
110
-
103
+ });
111
104
  </script>
112
105
 
113
106
  <template>
@@ -135,7 +128,3 @@ onBeforeUnmount(() => {
135
128
  </slot>
136
129
  </div>
137
130
  </template>
138
-
139
- <style scoped>
140
-
141
- </style>
@@ -0,0 +1,37 @@
1
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
2
+ export default _default;
3
+ type __VLS_WithSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import("vue").DefineComponent<{}, {
7
+ page: number;
8
+ debounced: boolean;
9
+ disableNoResults: boolean;
10
+ path: string;
11
+ perPage: number;
12
+ await: boolean;
13
+ listeners: unknown[];
14
+ noResultsText: string;
15
+ useQueryParams: boolean;
16
+ customFilters?: Record<string, any> | undefined;
17
+ $props: any;
18
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
19
+ type __VLS_Slots = {
20
+ errors?: ((props: {}) => any) | undefined;
21
+ } & {
22
+ empty?: ((props: {}) => any) | undefined;
23
+ } & {
24
+ loader?: ((props: {
25
+ empty: boolean;
26
+ }) => any) | undefined;
27
+ } & {
28
+ default?: ((props: {
29
+ items: any;
30
+ pending: any;
31
+ totalItems: any;
32
+ totalPages: any;
33
+ currentPage: any;
34
+ perPage: any;
35
+ filters: any;
36
+ }) => any) | undefined;
37
+ };
@@ -1,17 +1,26 @@
1
1
  <script setup async>
2
- import {useCrudApi} from "../composables/useCrudApi";
3
- import {useCrudConverters} from "../composables/useCrudConverters";
4
- import {usePreviousRoute} from "../composables/usePreviousRoute";
5
- import {useRoute, useRouter} from '#app';
2
+ import { useCrudApi } from "../composables/useCrudApi";
3
+ import { useCrudConverters } from "../composables/useCrudConverters";
4
+ import { usePreviousRoute } from "../composables/usePreviousRoute";
5
+ import { useRoute, useRouter } from "#app";
6
6
  import CrudFilterList from "./CrudFilterList.vue";
7
- import {computed, ref, watch, onMounted, onBeforeUnmount} from "vue";
8
- import {useDebounceFn} from '@vueuse/core'
9
- import {useListenerService} from "../composables/useListenerService";
7
+ import { computed, ref, watch, onMounted, onBeforeUnmount } from "vue";
8
+ import { useDebounceFn } from "@vueuse/core";
9
+ import { useListenerService } from "../composables/useListenerService";
10
10
  import CrudFormDialog from "./CrudFormDialog.vue";
11
11
  import CrudErrorDisplay from "./CrudErrorDisplay.vue";
12
-
13
- const {parseQuery, stringifyQuery, cloneDeep} = useCrudConverters();
12
+ const { parseQuery, stringifyQuery, cloneDeep } = useCrudConverters();
14
13
  const props = defineProps({
14
+ filterClasses: {
15
+ type: String,
16
+ required: false,
17
+ default: ""
18
+ },
19
+ resultClasses: {
20
+ type: String,
21
+ required: false,
22
+ default: ""
23
+ },
15
24
  fullScreenDialog: {
16
25
  type: Boolean,
17
26
  required: false,
@@ -123,6 +132,36 @@ const props = defineProps({
123
132
  type: String,
124
133
  required: false,
125
134
  default: ""
135
+ },
136
+ dialogStyle: {
137
+ type: String,
138
+ required: false,
139
+ default: null
140
+ },
141
+ dialogSize: {
142
+ type: [String, Number],
143
+ required: false,
144
+ default: null
145
+ },
146
+ createDialogSize: {
147
+ type: [String, Number],
148
+ required: false,
149
+ default: null
150
+ },
151
+ updateDialogSize: {
152
+ type: [String, Number],
153
+ required: false,
154
+ default: null
155
+ },
156
+ deleteDialogSize: {
157
+ type: [String, Number],
158
+ required: false,
159
+ default: null
160
+ },
161
+ viewDialogSize: {
162
+ type: [String, Number],
163
+ required: false,
164
+ default: null
126
165
  }
127
166
  });
128
167
  const {
@@ -152,40 +191,29 @@ const {
152
191
  hasExportErrors,
153
192
  hasListErrors
154
193
  } = useCrudApi(props.path, false, props.transformItem, props.transformItems);
155
-
156
194
  perPage.value = props.perPage;
157
-
158
195
  const route = useRoute();
159
196
  const router = useRouter();
160
197
  const previousRoute = usePreviousRoute();
161
-
162
- const action = computed(() => route.query[(props.loaderKey ?? '') + 'action']);
163
- const actionId = computed(() => route.query[(props.loaderKey ?? '') + 'actionId']);
164
-
198
+ const action = computed(() => route.query[(props.loaderKey ?? "") + "action"]);
199
+ const actionId = computed(() => route.query[(props.loaderKey ?? "") + "actionId"]);
165
200
  const dialogOpen = computed({
166
- get: () => !!(action.value === "create" || (action.value === "update" && actionId.value) || (action.value === "delete" && actionId.value) || (action.value === "view" && actionId.value)),
201
+ get: () => !!(action.value === "create" || action.value === "update" && actionId.value || action.value === "delete" && actionId.value || action.value === "view" && actionId.value),
167
202
  set: (value) => {
168
203
  if (!value) {
169
- const hasBackState = router.options.history.state.back
170
-
171
- console.log('hasBackState', hasBackState)
172
- console.log('previousRoute', previousRoute.value)
173
- console.log('route', route)
174
-
175
- const previousRouteName = previousRoute.value?.name
176
- const currentRouteName = route.name
177
-
178
- console.log('previousRouteName', previousRouteName)
179
- console.log('currentRouteName', currentRouteName)
180
-
181
-
182
- if (hasBackState && previousRouteName === currentRouteName) { // Only go back if there's a back state AND the previous route is the same
183
- console.log('going back')
204
+ const hasBackState = router.options.history.state.back;
205
+ console.log("hasBackState", hasBackState);
206
+ console.log("previousRoute", previousRoute.value);
207
+ console.log("route", route);
208
+ const previousRouteName = previousRoute.value?.name;
209
+ const currentRouteName = route.name;
210
+ console.log("previousRouteName", previousRouteName);
211
+ console.log("currentRouteName", currentRouteName);
212
+ if (hasBackState && previousRouteName === currentRouteName) {
213
+ console.log("going back");
184
214
  router.back();
185
215
  } else {
186
- // Clone the query object!
187
- const currentQuery = {...route.query};
188
-
216
+ const currentQuery = { ...route.query };
189
217
  if (props.loaderKey) {
190
218
  delete currentQuery[`${props.loaderKey}action`];
191
219
  delete currentQuery[`${props.loaderKey}actionId`];
@@ -193,40 +221,35 @@ const dialogOpen = computed({
193
221
  delete currentQuery.action;
194
222
  delete currentQuery.actionId;
195
223
  }
196
-
197
224
  const finalRoute = {
198
225
  path: route.path,
199
- query: currentQuery,
226
+ query: currentQuery
200
227
  };
201
228
  router.replace(finalRoute);
202
229
  }
203
230
  }
204
231
  }
205
232
  });
206
-
207
-
208
233
  const page = computed(() => props.loaderKey ? parseQuery(route.query[props.loaderKey])?.page ?? 1 : route.query.page ?? 1);
209
- const filterValues = props.loaderKey ? ref({...props.customFilters, ...parseQuery(route.query[props.loaderKey])} ?? props.customFilters) : ref({...props.customFilters, ...route.query});
210
- const onQueryChange = (page) => {
234
+ const filterValues = props.loaderKey ? ref({ ...props.customFilters, ...parseQuery(route.query[props.loaderKey]) }) : ref({ ...props.customFilters, ...route.query });
235
+ const onQueryChange = (page2) => {
211
236
  console.error("QUERY CHANGED");
212
- const newQuery = {}
237
+ const newQuery = {};
213
238
  const existingQuery = parseQuery(route.query);
214
-
215
239
  for (const key in filterValues.value) {
216
240
  if (filterValues.value[key] !== null && filterValues.value[key] !== "") {
217
241
  newQuery[key] = filterValues.value[key];
218
242
  }
219
243
  }
220
- newQuery.page = page;
244
+ newQuery.page = page2;
221
245
  let finalQuery = {
222
- ...existingQuery,
223
- }
246
+ ...existingQuery
247
+ };
224
248
  if (props.loaderKey) {
225
249
  finalQuery[props.loaderKey] = stringifyQuery(newQuery);
226
250
  } else {
227
251
  finalQuery = newQuery;
228
252
  }
229
- //Delete action and actionId from query when filters or page change
230
253
  if (props.loaderKey) {
231
254
  delete finalQuery[`${props.loaderKey}action`];
232
255
  delete finalQuery[`${props.loaderKey}actionId`];
@@ -235,81 +258,70 @@ const onQueryChange = (page) => {
235
258
  delete finalQuery.actionId;
236
259
  }
237
260
  console.error("Setting query", finalQuery);
238
- router.replace({path: route.path, query: finalQuery, force: true})
239
- }
261
+ router.replace({ path: route.path, query: finalQuery, force: true });
262
+ };
240
263
  watch(currentPage, (newVal, oldValue) => {
241
264
  onQueryChange(currentPage.value);
242
265
  });
243
266
  watch(filterValues, (newVal, oldValue) => {
244
267
  console.error("FILTERS CHANGED");
245
268
  onQueryChange(1);
246
- }, {deep: true});
247
-
248
-
269
+ }, { deep: true });
249
270
  watch(() => page, () => {
250
271
  console.error("ROUTE CHANGED");
251
272
  debouncedGet();
252
- }, {deep: true});
273
+ }, { deep: true });
253
274
  watch(() => filterValues, () => {
254
275
  console.error("ROUTE CHANGED");
255
276
  debouncedGet();
256
- }, {deep: true});
257
-
258
- watch(() => props.customFilters, (newVal) => {
259
- // Update filterValues when customFilters prop changes
260
- filterValues.value = {...filterValues.value, ...newVal};
261
- }, {deep: true});
262
-
277
+ }, { deep: true });
263
278
  const debouncedGet = useDebounceFn(() => {
264
279
  console.error("DEBOUNCED GET");
265
280
  getItems(Number.parseInt(page.value) ?? null, null, filterValues.value);
266
- }, 200)
267
-
281
+ }, 200);
268
282
  const updateForm = async (id) => {
269
- const newQuery = {query: {...route.query}};
283
+ const newQuery = { query: { ...route.query } };
270
284
  if (props.loaderKey) {
271
- newQuery.query[(props.loaderKey ?? '') + 'action'] = "update";
272
- newQuery.query[(props.loaderKey ?? '') + 'actionId'] = id;
285
+ newQuery.query[(props.loaderKey ?? "") + "action"] = "update";
286
+ newQuery.query[(props.loaderKey ?? "") + "actionId"] = id;
273
287
  } else {
274
288
  newQuery.query.action = "update";
275
289
  newQuery.query.actionId = id;
276
290
  }
277
291
  await router.push(newQuery);
278
- }
292
+ };
279
293
  const deleteForm = async (id) => {
280
-
281
- const newQuery = {query: {...route.query}};
294
+ const newQuery = { query: { ...route.query } };
282
295
  if (props.loaderKey) {
283
- newQuery.query[(props.loaderKey ?? '') + 'action'] = "delete";
284
- newQuery.query[(props.loaderKey ?? '') + 'actionId'] = id;
296
+ newQuery.query[(props.loaderKey ?? "") + "action"] = "delete";
297
+ newQuery.query[(props.loaderKey ?? "") + "actionId"] = id;
285
298
  } else {
286
299
  newQuery.query.action = "delete";
287
300
  newQuery.query.actionId = id;
288
301
  }
289
302
  await router.push(newQuery);
290
- }
303
+ };
291
304
  const viewForm = async (id) => {
292
- const newQuery = {query: {...route.query}};
305
+ const newQuery = { query: { ...route.query } };
293
306
  if (props.loaderKey) {
294
- newQuery.query[(props.loaderKey ?? '') + 'action'] = "view";
295
- newQuery.query[(props.loaderKey ?? '') + 'actionId'] = id;
307
+ newQuery.query[(props.loaderKey ?? "") + "action"] = "view";
308
+ newQuery.query[(props.loaderKey ?? "") + "actionId"] = id;
296
309
  } else {
297
310
  newQuery.query.action = "view";
298
311
  newQuery.query.actionId = id;
299
312
  }
300
313
  await router.push(newQuery);
301
- }
314
+ };
302
315
  const createForm = () => {
303
316
  item.value = props.initialItem ? cloneDeep(props.initialItem) : {};
304
- const newQuery = {query: {...route.query}};
317
+ const newQuery = { query: { ...route.query } };
305
318
  if (props.loaderKey) {
306
- newQuery.query[(props.loaderKey ?? '') + 'action'] = "create";
319
+ newQuery.query[(props.loaderKey ?? "") + "action"] = "create";
307
320
  } else {
308
321
  newQuery.query.action = "create";
309
322
  }
310
323
  router.push(newQuery);
311
- }
312
-
324
+ };
313
325
  const saveAction = async () => {
314
326
  formPending.value = true;
315
327
  let itemToSave = JSON.parse(JSON.stringify(item.value));
@@ -340,14 +352,12 @@ const saveAction = async () => {
340
352
  await getItems(Number.parseInt(page.value) ?? null, null, filterValues.value);
341
353
  notify(savedPath + ":" + savedAction, savedItem);
342
354
  }
343
- }
344
-
355
+ };
345
356
  if (props.await) {
346
357
  await getItems(page.value ?? null, null, filterValues.value);
347
358
  } else {
348
359
  getItems(page.value ?? null, null, filterValues.value);
349
360
  }
350
-
351
361
  watch(action, (newVal, oldValue) => {
352
362
  try {
353
363
  if (action.value === "update" && actionId.value) {
@@ -362,28 +372,26 @@ watch(action, (newVal, oldValue) => {
362
372
  } catch (error) {
363
373
  console.error("Error in actionId watcher:", error);
364
374
  }
365
- }, {immediate: true});
366
-
367
- const {addListener, removeLocalListenersWithEvent, notify} = useListenerService();
375
+ }, { immediate: true });
376
+ const { addListener, removeLocalListenersWithEvent, notify } = useListenerService();
368
377
  onMounted(() => {
369
378
  props.listeners.forEach((listener) => {
370
379
  addListener(listener, (data) => {
371
380
  getItems(Number.parseInt(page.value) ?? null, null, filterValues.value);
372
381
  });
373
382
  });
374
- })
383
+ });
375
384
  onBeforeUnmount(() => {
376
385
  props.listeners.forEach((listener) => {
377
386
  removeLocalListenersWithEvent(listener);
378
387
  });
379
- })
388
+ });
380
389
  const exportAction = async () => {
381
390
  await exportItems(filterValues.value);
382
391
  if (!hasExportErrors.value) {
383
- window.open(exportUrl.value, '_blank');
392
+ window.open(exportUrl.value, "_blank");
384
393
  }
385
- }
386
-
394
+ };
387
395
  </script>
388
396
 
389
397
  <template>
@@ -410,7 +418,9 @@ const exportAction = async () => {
410
418
  <v-col v-if="!hideFilters && filters.length > 0" cols="12" md="3">
411
419
  <div>
412
420
  <slot name="filters" :filters="filters">
413
- <crud-filter-list v-model="filterValues" :filters="filters"></crud-filter-list>
421
+ <div :class="filterClasses">
422
+ <crud-filter-list v-model="filterValues" :filters="filters"></crud-filter-list>
423
+ </div>
414
424
  </slot>
415
425
  </div>
416
426
  </v-col>
@@ -424,16 +434,18 @@ const exportAction = async () => {
424
434
  <slot v-if="hasListErrors" name="error" :errors="listErrors">
425
435
  <crud-error-display :errors="listErrors"></crud-error-display>
426
436
  </slot>
427
- <slot
428
- v-if="totalItems > 0"
429
- :items="items"
430
- :pending="listPending"
431
- :update-action="updateForm"
432
- :view-action="viewForm"
433
- :delete-action="deleteForm"
434
- :form-pending="formPending"
435
- >
436
- </slot>
437
+ <div :class="resultClasses">
438
+ <slot
439
+ v-if="totalItems > 0"
440
+ :items="items"
441
+ :pending="listPending"
442
+ :update-action="updateForm"
443
+ :view-action="viewForm"
444
+ :delete-action="deleteForm"
445
+ :form-pending="formPending"
446
+ >
447
+ </slot>
448
+ </div>
437
449
  </div>
438
450
  <div v-if="totalItems > 0 && totalPages > 1" class="pa-3">
439
451
  <span class="d-none d-md-block pa-3">Page {{ currentPage }} of {{ totalPages }} pages with {{ totalItems }} items</span>
@@ -462,6 +474,12 @@ const exportAction = async () => {
462
474
  :view-title="viewTitle"
463
475
  :save-action="saveAction"
464
476
  :full-screen="fullScreenDialog"
477
+ :dialog-style="dialogStyle"
478
+ :dialog-size="dialogSize"
479
+ :create-dialog-size="createDialogSize"
480
+ :update-dialog-size="updateDialogSize"
481
+ :delete-dialog-size="deleteDialogSize"
482
+ :view-dialog-size="viewDialogSize"
465
483
  >
466
484
  <slot
467
485
  name="form" :action="action"
@@ -474,7 +492,3 @@ const exportAction = async () => {
474
492
 
475
493
  </div>
476
494
  </template>
477
-
478
- <style scoped>
479
-
480
- </style>
@@ -0,0 +1,83 @@
1
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
2
+ export default _default;
3
+ type __VLS_WithSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import("vue").DefineComponent<{}, {
7
+ path: string;
8
+ customFilters: Record<string, any>;
9
+ perPage: number;
10
+ await: boolean;
11
+ listeners: unknown[];
12
+ noResultsText: string;
13
+ createTitle: string;
14
+ updateTitle: string;
15
+ deleteTitle: string;
16
+ viewTitle: string;
17
+ dialogStyle: string;
18
+ dialogSize: string | number;
19
+ createDialogSize: string | number;
20
+ updateDialogSize: string | number;
21
+ deleteDialogSize: string | number;
22
+ viewDialogSize: string | number;
23
+ allowCreate: boolean;
24
+ hideFilters: boolean;
25
+ filterClasses: string;
26
+ resultClasses: string;
27
+ fullScreenDialog: boolean;
28
+ contentClasses: string;
29
+ title?: string | undefined;
30
+ loaderKey?: string | undefined;
31
+ initialItem?: Record<string, any> | undefined;
32
+ transformItem?: Function | undefined;
33
+ transformItems?: Function | undefined;
34
+ beforeSave?: Function | undefined;
35
+ beforeCreate?: Function | undefined;
36
+ beforeUpdate?: Function | undefined;
37
+ beforeDelete?: Function | undefined;
38
+ $props: any;
39
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
40
+ type __VLS_Slots = {
41
+ before?: ((props: {
42
+ items: any;
43
+ totalItems: any;
44
+ totalPages: any;
45
+ pending: any;
46
+ createAction: any;
47
+ updateAction: any;
48
+ viewAction: any;
49
+ deleteAction: any;
50
+ formPending: any;
51
+ exportAction: any;
52
+ exportPending: any;
53
+ exportErrors: any;
54
+ }) => any) | undefined;
55
+ } & {
56
+ filters?: ((props: {
57
+ filters: any;
58
+ }) => any) | undefined;
59
+ } & {
60
+ empty?: ((props: {
61
+ createAction: any;
62
+ }) => any) | undefined;
63
+ } & {
64
+ error?: ((props: {
65
+ errors: any;
66
+ }) => any) | undefined;
67
+ } & {
68
+ default?: ((props: {
69
+ items: any;
70
+ pending: any;
71
+ updateAction: any;
72
+ viewAction: any;
73
+ deleteAction: any;
74
+ formPending: any;
75
+ }) => any) | undefined;
76
+ } & {
77
+ form?: ((props: {
78
+ action: any;
79
+ item: any;
80
+ originalItem: any;
81
+ errors: any;
82
+ }) => any) | undefined;
83
+ };