@vc-shell/framework 1.0.57 → 1.0.59

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 (139) hide show
  1. package/core/plugins/validation/rules.ts +67 -24
  2. package/core/types/index.ts +19 -2
  3. package/dist/framework.mjs +1859 -4863
  4. package/dist/index.css +1 -1
  5. package/dist/types/core/plugins/validation/rules.d.ts +8 -30
  6. package/dist/types/core/plugins/validation/rules.d.ts.map +1 -1
  7. package/dist/types/core/types/index.d.ts +17 -2
  8. package/dist/types/core/types/index.d.ts.map +1 -1
  9. package/dist/types/index.d.ts.map +1 -1
  10. package/dist/types/shared/components/app-switcher/components/index.d.ts.map +1 -0
  11. package/dist/types/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/index.d.ts +5 -5
  12. package/dist/types/shared/components/app-switcher/components/vc-app-switcher/index.d.ts.map +1 -0
  13. package/dist/types/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/vc-app-switcher.vue.d.ts +1 -1
  14. package/dist/types/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -0
  15. package/dist/types/shared/components/app-switcher/composables/index.d.ts.map +1 -0
  16. package/dist/types/shared/{app-switcher → components/app-switcher}/composables/useAppSwitcher/index.d.ts +1 -1
  17. package/dist/types/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +1 -0
  18. package/dist/types/shared/components/app-switcher/index.d.ts.map +1 -0
  19. package/dist/types/shared/components/blade-navigation/components/index.d.ts.map +1 -0
  20. package/dist/types/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts.map +1 -0
  21. package/dist/types/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts +1 -1
  22. package/dist/types/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -0
  23. package/dist/types/shared/components/blade-navigation/composables/index.d.ts.map +1 -0
  24. package/dist/types/shared/{blade-navigation → components/blade-navigation}/composables/useBladeNavigation/index.d.ts +1 -1
  25. package/dist/types/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -0
  26. package/dist/types/shared/components/blade-navigation/index.d.ts.map +1 -0
  27. package/dist/types/shared/{blade-navigation → components/blade-navigation}/types/index.d.ts +1 -1
  28. package/dist/types/shared/components/blade-navigation/types/index.d.ts.map +1 -0
  29. package/dist/types/shared/index.d.ts +4 -3
  30. package/dist/types/shared/index.d.ts.map +1 -1
  31. package/dist/types/shared/{assets → modules/assets}/components/assets-details/assets-details.vue.d.ts +4 -13
  32. package/dist/types/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -0
  33. package/dist/types/shared/{assets → modules/assets}/components/assets-details/index.d.ts +6 -7
  34. package/dist/types/shared/modules/assets/components/assets-details/index.d.ts.map +1 -0
  35. package/dist/types/shared/modules/assets/components/index.d.ts.map +1 -0
  36. package/dist/types/shared/modules/assets/index.d.ts.map +1 -0
  37. package/dist/types/shared/modules/assets/locales/index.d.ts +3 -0
  38. package/dist/types/shared/modules/assets/locales/index.d.ts.map +1 -0
  39. package/dist/types/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +58 -0
  40. package/dist/types/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -0
  41. package/dist/types/shared/modules/assets-manager/components/assets-manager/index.d.ts +59 -0
  42. package/dist/types/shared/modules/assets-manager/components/assets-manager/index.d.ts.map +1 -0
  43. package/dist/types/shared/modules/assets-manager/components/index.d.ts +2 -0
  44. package/dist/types/shared/modules/assets-manager/components/index.d.ts.map +1 -0
  45. package/dist/types/shared/modules/assets-manager/index.d.ts +12 -0
  46. package/dist/types/shared/modules/assets-manager/index.d.ts.map +1 -0
  47. package/dist/types/shared/modules/assets-manager/locales/index.d.ts.map +1 -0
  48. package/dist/types/shared/utilities/assets.d.ts +5 -0
  49. package/dist/types/shared/utilities/assets.d.ts.map +1 -0
  50. package/dist/types/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
  51. package/dist/types/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  52. package/dist/types/ui/components/molecules/vc-input/index.d.ts +0 -4
  53. package/dist/types/ui/components/molecules/vc-input/index.d.ts.map +1 -1
  54. package/dist/types/ui/components/molecules/vc-input/vc-input.vue.d.ts +1 -1
  55. package/dist/types/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  56. package/dist/types/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
  57. package/dist/types/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
  58. package/dist/types/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts +2 -19
  59. package/dist/types/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
  60. package/dist/types/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -20
  61. package/dist/types/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts.map +1 -1
  62. package/dist/types/ui/components/organisms/vc-gallery/index.d.ts +30 -33
  63. package/dist/types/ui/components/organisms/vc-gallery/index.d.ts.map +1 -1
  64. package/dist/types/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +2 -6
  65. package/dist/types/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
  66. package/dist/types/ui/components/organisms/vc-table/index.d.ts +49 -37
  67. package/dist/types/ui/components/organisms/vc-table/index.d.ts.map +1 -1
  68. package/dist/types/ui/components/organisms/vc-table/vc-table.stories.d.ts +49 -37
  69. package/dist/types/ui/components/organisms/vc-table/vc-table.stories.d.ts.map +1 -1
  70. package/dist/types/ui/components/organisms/vc-table/vc-table.vue.d.ts +12 -7
  71. package/dist/types/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  72. package/package.json +5 -6
  73. package/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/vc-app-switcher.vue +1 -1
  74. package/shared/{app-switcher → components/app-switcher}/composables/useAppSwitcher/index.ts +2 -2
  75. package/shared/{app-switcher → components/app-switcher}/index.ts +1 -1
  76. package/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/vc-blade-navigation.vue +2 -2
  77. package/shared/{blade-navigation → components/blade-navigation}/composables/useBladeNavigation/index.ts +6 -5
  78. package/shared/{blade-navigation → components/blade-navigation}/index.ts +1 -1
  79. package/shared/{blade-navigation → components/blade-navigation}/types/index.ts +1 -1
  80. package/shared/index.ts +10 -7
  81. package/shared/modules/assets/components/assets-details/assets-details.vue +166 -0
  82. package/shared/{assets → modules/assets}/index.ts +1 -1
  83. package/shared/{assets → modules/assets}/locales/en.json +7 -5
  84. package/shared/modules/assets/locales/index.ts +2 -0
  85. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +372 -0
  86. package/shared/modules/assets-manager/components/assets-manager/index.ts +3 -0
  87. package/shared/modules/assets-manager/components/index.ts +1 -0
  88. package/shared/modules/assets-manager/index.ts +14 -0
  89. package/shared/modules/assets-manager/locales/en.json +28 -0
  90. package/shared/utilities/assets.ts +40 -0
  91. package/ui/components/atoms/vc-checkbox/vc-checkbox.vue +1 -11
  92. package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +1 -0
  93. package/ui/components/molecules/vc-input/vc-input.vue +1 -1
  94. package/ui/components/molecules/vc-select/vc-select.vue +2 -2
  95. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +3 -2
  96. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +3 -6
  97. package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +2 -6
  98. package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +6 -0
  99. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +5 -11
  100. package/ui/components/organisms/vc-gallery/vc-gallery.vue +164 -49
  101. package/ui/components/organisms/vc-table/vc-table.vue +171 -100
  102. package/dist/types/shared/app-switcher/components/index.d.ts.map +0 -1
  103. package/dist/types/shared/app-switcher/components/vc-app-switcher/index.d.ts.map +0 -1
  104. package/dist/types/shared/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +0 -1
  105. package/dist/types/shared/app-switcher/composables/index.d.ts.map +0 -1
  106. package/dist/types/shared/app-switcher/composables/useAppSwitcher/index.d.ts.map +0 -1
  107. package/dist/types/shared/app-switcher/index.d.ts.map +0 -1
  108. package/dist/types/shared/assets/components/assets-details/assets-details.vue.d.ts.map +0 -1
  109. package/dist/types/shared/assets/components/assets-details/index.d.ts.map +0 -1
  110. package/dist/types/shared/assets/components/index.d.ts.map +0 -1
  111. package/dist/types/shared/assets/index.d.ts.map +0 -1
  112. package/dist/types/shared/assets/locales/index.d.ts.map +0 -1
  113. package/dist/types/shared/blade-navigation/components/index.d.ts.map +0 -1
  114. package/dist/types/shared/blade-navigation/components/vc-blade-navigation/index.d.ts.map +0 -1
  115. package/dist/types/shared/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +0 -1
  116. package/dist/types/shared/blade-navigation/composables/index.d.ts.map +0 -1
  117. package/dist/types/shared/blade-navigation/composables/useBladeNavigation/index.d.ts.map +0 -1
  118. package/dist/types/shared/blade-navigation/index.d.ts.map +0 -1
  119. package/dist/types/shared/blade-navigation/types/index.d.ts.map +0 -1
  120. package/shared/assets/components/assets-details/assets-details.vue +0 -116
  121. /package/dist/types/shared/{app-switcher → components/app-switcher}/components/index.d.ts +0 -0
  122. /package/dist/types/shared/{app-switcher → components/app-switcher}/composables/index.d.ts +0 -0
  123. /package/dist/types/shared/{app-switcher → components/app-switcher}/index.d.ts +0 -0
  124. /package/dist/types/shared/{blade-navigation → components/blade-navigation}/components/index.d.ts +0 -0
  125. /package/dist/types/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/index.d.ts +0 -0
  126. /package/dist/types/shared/{blade-navigation → components/blade-navigation}/composables/index.d.ts +0 -0
  127. /package/dist/types/shared/{blade-navigation → components/blade-navigation}/index.d.ts +0 -0
  128. /package/dist/types/shared/{assets → modules/assets}/components/index.d.ts +0 -0
  129. /package/dist/types/shared/{assets → modules/assets}/index.d.ts +0 -0
  130. /package/dist/types/shared/{assets → modules/assets-manager}/locales/index.d.ts +0 -0
  131. /package/shared/{app-switcher → components/app-switcher}/components/index.ts +0 -0
  132. /package/shared/{app-switcher → components/app-switcher}/components/vc-app-switcher/index.ts +0 -0
  133. /package/shared/{app-switcher → components/app-switcher}/composables/index.ts +0 -0
  134. /package/shared/{blade-navigation → components/blade-navigation}/components/index.ts +0 -0
  135. /package/shared/{blade-navigation → components/blade-navigation}/components/vc-blade-navigation/index.ts +0 -0
  136. /package/shared/{blade-navigation → components/blade-navigation}/composables/index.ts +0 -0
  137. /package/shared/{assets → modules/assets}/components/assets-details/index.ts +0 -0
  138. /package/shared/{assets → modules/assets}/components/index.ts +0 -0
  139. /package/shared/{assets → modules/assets-manager}/locales/index.ts +0 -0
@@ -11,8 +11,8 @@ declare const _default: {
11
11
  items: import("./vc-table.vue").TableItemType[];
12
12
  totalCount: number;
13
13
  pages: number;
14
- currentPage: number;
15
14
  totalLabel: string;
15
+ currentPage: number;
16
16
  searchPlaceholder: string;
17
17
  empty: import("./vc-table.vue").StatusImage;
18
18
  notfound: import("./vc-table.vue").StatusImage;
@@ -61,16 +61,16 @@ declare const _default: {
61
61
  loading: {
62
62
  type: import("vue").PropType<boolean>;
63
63
  };
64
- currentPage: {
65
- type: import("vue").PropType<number>;
66
- } & {
67
- default: number;
68
- };
69
64
  totalLabel: {
70
65
  type: import("vue").PropType<string>;
71
66
  } & {
72
67
  default: string;
73
68
  };
69
+ currentPage: {
70
+ type: import("vue").PropType<number>;
71
+ } & {
72
+ default: number;
73
+ };
74
74
  searchPlaceholder: {
75
75
  type: import("vue").PropType<string>;
76
76
  } & {
@@ -111,6 +111,9 @@ declare const _default: {
111
111
  multiselect: {
112
112
  type: import("vue").PropType<boolean>;
113
113
  };
114
+ multiselectEmitItem: {
115
+ type: import("vue").PropType<boolean>;
116
+ };
114
117
  searchValue: {
115
118
  type: import("vue").PropType<string>;
116
119
  };
@@ -130,16 +133,16 @@ declare const _default: {
130
133
  }>> & {
131
134
  onHeaderClick?: (value: Record<string, unknown>) => any;
132
135
  "onScroll:ptr"?: () => any;
133
- onItemClick?: (item: import("./vc-table.vue").TableItem) => any;
136
+ onItemClick?: (item: import("./vc-table.vue").TableItemType) => any;
137
+ onSelectionChanged?: (values: import("./vc-table.vue").TableItemType[]) => any;
134
138
  onPaginationClick?: (page: number) => any;
135
- onSelectionChanged?: (values: Record<string, boolean>) => any;
136
139
  "onSearch:change"?: (value: string) => any;
137
140
  "onRow:reorder"?: (args: {
138
141
  dragIndex: number;
139
142
  dropIndex: number;
140
143
  value: import("./vc-table.vue").TableItemType[];
141
144
  }) => any;
142
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "footer" | "header" | "expanded" | "items" | "totalCount" | "pages" | "currentPage" | "totalLabel" | "searchPlaceholder" | "empty" | "notfound" | "activeFilterCount" | "resizableColumns" | "reorderableColumns">;
145
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "footer" | "header" | "expanded" | "items" | "totalCount" | "pages" | "totalLabel" | "currentPage" | "searchPlaceholder" | "empty" | "notfound" | "activeFilterCount" | "resizableColumns" | "reorderableColumns">;
143
146
  $attrs: {
144
147
  [x: string]: unknown;
145
148
  };
@@ -151,7 +154,7 @@ declare const _default: {
151
154
  }>;
152
155
  $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}>;
153
156
  $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}>;
154
- $emit: ((event: "scroll:ptr") => void) & ((event: "itemClick", item: import("./vc-table.vue").TableItem) => void) & ((event: "paginationClick", page: number) => void) & ((event: "selectionChanged", values: Record<string, boolean>) => void) & ((event: "search:change", value: string) => void) & ((event: "headerClick", value: Record<string, unknown>) => void) & ((event: "row:reorder", args: {
157
+ $emit: ((event: "scroll:ptr") => void) & ((event: "paginationClick", page: number) => void) & ((event: "selectionChanged", values: import("./vc-table.vue").TableItemType[]) => void) & ((event: "search:change", value: string) => void) & ((event: "headerClick", value: Record<string, unknown>) => void) & ((event: "itemClick", item: import("./vc-table.vue").TableItemType) => void) & ((event: "row:reorder", args: {
155
158
  dragIndex: number;
156
159
  dropIndex: number;
157
160
  value: import("./vc-table.vue").TableItemType[];
@@ -199,16 +202,16 @@ declare const _default: {
199
202
  loading: {
200
203
  type: import("vue").PropType<boolean>;
201
204
  };
202
- currentPage: {
203
- type: import("vue").PropType<number>;
204
- } & {
205
- default: number;
206
- };
207
205
  totalLabel: {
208
206
  type: import("vue").PropType<string>;
209
207
  } & {
210
208
  default: string;
211
209
  };
210
+ currentPage: {
211
+ type: import("vue").PropType<number>;
212
+ } & {
213
+ default: number;
214
+ };
212
215
  searchPlaceholder: {
213
216
  type: import("vue").PropType<string>;
214
217
  } & {
@@ -249,6 +252,9 @@ declare const _default: {
249
252
  multiselect: {
250
253
  type: import("vue").PropType<boolean>;
251
254
  };
255
+ multiselectEmitItem: {
256
+ type: import("vue").PropType<boolean>;
257
+ };
252
258
  searchValue: {
253
259
  type: import("vue").PropType<string>;
254
260
  };
@@ -268,9 +274,9 @@ declare const _default: {
268
274
  }>> & {
269
275
  onHeaderClick?: (value: Record<string, unknown>) => any;
270
276
  "onScroll:ptr"?: () => any;
271
- onItemClick?: (item: import("./vc-table.vue").TableItem) => any;
277
+ onItemClick?: (item: import("./vc-table.vue").TableItemType) => any;
278
+ onSelectionChanged?: (values: import("./vc-table.vue").TableItemType[]) => any;
272
279
  onPaginationClick?: (page: number) => any;
273
- onSelectionChanged?: (values: Record<string, boolean>) => any;
274
280
  "onSearch:change"?: (value: string) => any;
275
281
  "onRow:reorder"?: (args: {
276
282
  dragIndex: number;
@@ -280,13 +286,13 @@ declare const _default: {
280
286
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
281
287
  paginationClick: (page: number) => void;
282
288
  } & {
283
- selectionChanged: (values: Record<string, boolean>) => void;
289
+ selectionChanged: (values: import("./vc-table.vue").TableItemType[]) => void;
284
290
  } & {
285
291
  "search:change": (value: string) => void;
286
292
  } & {
287
293
  headerClick: (value: Record<string, unknown>) => void;
288
294
  } & {
289
- itemClick: (item: import("./vc-table.vue").TableItem) => void;
295
+ itemClick: (item: import("./vc-table.vue").TableItemType) => void;
290
296
  } & {
291
297
  "scroll:ptr": () => void;
292
298
  } & {
@@ -302,8 +308,8 @@ declare const _default: {
302
308
  items: import("./vc-table.vue").TableItemType[];
303
309
  totalCount: number;
304
310
  pages: number;
305
- currentPage: number;
306
311
  totalLabel: string;
312
+ currentPage: number;
307
313
  searchPlaceholder: string;
308
314
  empty: import("./vc-table.vue").StatusImage;
309
315
  notfound: import("./vc-table.vue").StatusImage;
@@ -372,16 +378,16 @@ declare const _default: {
372
378
  loading: {
373
379
  type: import("vue").PropType<boolean>;
374
380
  };
375
- currentPage: {
376
- type: import("vue").PropType<number>;
377
- } & {
378
- default: number;
379
- };
380
381
  totalLabel: {
381
382
  type: import("vue").PropType<string>;
382
383
  } & {
383
384
  default: string;
384
385
  };
386
+ currentPage: {
387
+ type: import("vue").PropType<number>;
388
+ } & {
389
+ default: number;
390
+ };
385
391
  searchPlaceholder: {
386
392
  type: import("vue").PropType<string>;
387
393
  } & {
@@ -422,6 +428,9 @@ declare const _default: {
422
428
  multiselect: {
423
429
  type: import("vue").PropType<boolean>;
424
430
  };
431
+ multiselectEmitItem: {
432
+ type: import("vue").PropType<boolean>;
433
+ };
425
434
  searchValue: {
426
435
  type: import("vue").PropType<string>;
427
436
  };
@@ -441,9 +450,9 @@ declare const _default: {
441
450
  }>> & {
442
451
  onHeaderClick?: (value: Record<string, unknown>) => any;
443
452
  "onScroll:ptr"?: () => any;
444
- onItemClick?: (item: import("./vc-table.vue").TableItem) => any;
453
+ onItemClick?: (item: import("./vc-table.vue").TableItemType) => any;
454
+ onSelectionChanged?: (values: import("./vc-table.vue").TableItemType[]) => any;
445
455
  onPaginationClick?: (page: number) => any;
446
- onSelectionChanged?: (values: Record<string, boolean>) => any;
447
456
  "onSearch:change"?: (value: string) => any;
448
457
  "onRow:reorder"?: (args: {
449
458
  dragIndex: number;
@@ -496,16 +505,16 @@ declare const _default: {
496
505
  loading: {
497
506
  type: import("vue").PropType<boolean>;
498
507
  };
499
- currentPage: {
500
- type: import("vue").PropType<number>;
501
- } & {
502
- default: number;
503
- };
504
508
  totalLabel: {
505
509
  type: import("vue").PropType<string>;
506
510
  } & {
507
511
  default: string;
508
512
  };
513
+ currentPage: {
514
+ type: import("vue").PropType<number>;
515
+ } & {
516
+ default: number;
517
+ };
509
518
  searchPlaceholder: {
510
519
  type: import("vue").PropType<string>;
511
520
  } & {
@@ -546,6 +555,9 @@ declare const _default: {
546
555
  multiselect: {
547
556
  type: import("vue").PropType<boolean>;
548
557
  };
558
+ multiselectEmitItem: {
559
+ type: import("vue").PropType<boolean>;
560
+ };
549
561
  searchValue: {
550
562
  type: import("vue").PropType<string>;
551
563
  };
@@ -565,9 +577,9 @@ declare const _default: {
565
577
  }>> & {
566
578
  onHeaderClick?: (value: Record<string, unknown>) => any;
567
579
  "onScroll:ptr"?: () => any;
568
- onItemClick?: (item: import("./vc-table.vue").TableItem) => any;
580
+ onItemClick?: (item: import("./vc-table.vue").TableItemType) => any;
581
+ onSelectionChanged?: (values: import("./vc-table.vue").TableItemType[]) => any;
569
582
  onPaginationClick?: (page: number) => any;
570
- onSelectionChanged?: (values: Record<string, boolean>) => any;
571
583
  "onSearch:change"?: (value: string) => any;
572
584
  "onRow:reorder"?: (args: {
573
585
  dragIndex: number;
@@ -577,13 +589,13 @@ declare const _default: {
577
589
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
578
590
  paginationClick: (page: number) => void;
579
591
  } & {
580
- selectionChanged: (values: Record<string, boolean>) => void;
592
+ selectionChanged: (values: import("./vc-table.vue").TableItemType[]) => void;
581
593
  } & {
582
594
  "search:change": (value: string) => void;
583
595
  } & {
584
596
  headerClick: (value: Record<string, unknown>) => void;
585
597
  } & {
586
- itemClick: (item: import("./vc-table.vue").TableItem) => void;
598
+ itemClick: (item: import("./vc-table.vue").TableItemType) => void;
587
599
  } & {
588
600
  "scroll:ptr": () => void;
589
601
  } & {
@@ -599,8 +611,8 @@ declare const _default: {
599
611
  items: import("./vc-table.vue").TableItemType[];
600
612
  totalCount: number;
601
613
  pages: number;
602
- currentPage: number;
603
614
  totalLabel: string;
615
+ currentPage: number;
604
616
  searchPlaceholder: string;
605
617
  empty: import("./vc-table.vue").StatusImage;
606
618
  notfound: import("./vc-table.vue").StatusImage;
@@ -1 +1 @@
1
- {"version":3,"file":"vc-table.stories.d.ts","sourceRoot":"","sources":["../../../../../../ui/components/organisms/vc-table/vc-table.stories.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wBAGE;AAwBF,eAAO,MAAM,KAAK,KAAoB,CAAC"}
1
+ {"version":3,"file":"vc-table.stories.d.ts","sourceRoot":"","sources":["../../../../../../ui/components/organisms/vc-table/vc-table.stories.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wBAGE;AAwBF,eAAO,MAAM,KAAK,KAAoB,CAAC"}
@@ -17,6 +17,11 @@ export interface Props {
17
17
  itemActionBuilder?: (item: TableItem) => IActionBuilderResult[];
18
18
  sort?: string;
19
19
  multiselect?: boolean;
20
+ /**
21
+ * Emit whole item instead of {id: boolean} while prop multiselect = true
22
+ * @default false
23
+ */
24
+ multiselectEmitItem?: boolean;
20
25
  expanded?: boolean;
21
26
  totalLabel?: string;
22
27
  totalCount?: number;
@@ -39,10 +44,10 @@ export interface Props {
39
44
  }
40
45
  export interface Emits {
41
46
  (event: "paginationClick", page: number): void;
42
- (event: "selectionChanged", values: Record<string, boolean>): void;
47
+ (event: "selectionChanged", values: TableItemType[]): void;
43
48
  (event: "search:change", value: string): void;
44
49
  (event: "headerClick", value: Record<string, unknown>): void;
45
- (event: "itemClick", item: TableItem): void;
50
+ (event: "itemClick", item: TableItemType): void;
46
51
  (event: "scroll:ptr"): void;
47
52
  (event: "row:reorder", args: {
48
53
  dragIndex: number;
@@ -72,13 +77,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
72
77
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
73
78
  paginationClick: (page: number) => void;
74
79
  } & {
75
- selectionChanged: (values: Record<string, boolean>) => void;
80
+ selectionChanged: (values: TableItemType[]) => void;
76
81
  } & {
77
82
  "search:change": (value: string) => void;
78
83
  } & {
79
84
  headerClick: (value: Record<string, unknown>) => void;
80
85
  } & {
81
- itemClick: (item: TableItem) => void;
86
+ itemClick: (item: TableItemType) => void;
82
87
  } & {
83
88
  "scroll:ptr": () => void;
84
89
  } & {
@@ -109,9 +114,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
109
114
  }>>> & {
110
115
  onHeaderClick?: (value: Record<string, unknown>) => any;
111
116
  "onScroll:ptr"?: () => any;
112
- onItemClick?: (item: TableItem) => any;
117
+ onItemClick?: (item: TableItemType) => any;
118
+ onSelectionChanged?: (values: TableItemType[]) => any;
113
119
  onPaginationClick?: (page: number) => any;
114
- onSelectionChanged?: (values: Record<string, boolean>) => any;
115
120
  "onSearch:change"?: (value: string) => any;
116
121
  "onRow:reorder"?: (args: {
117
122
  dragIndex: number;
@@ -125,8 +130,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
125
130
  items: TableItemType[];
126
131
  totalCount: number;
127
132
  pages: number;
128
- currentPage: number;
129
133
  totalLabel: string;
134
+ currentPage: number;
130
135
  searchPlaceholder: string;
131
136
  empty: StatusImage;
132
137
  notfound: StatusImage;
@@ -1 +1 @@
1
- {"version":3,"file":"vc-table.vue.d.ts","sourceRoot":"","sources":["../../../../../../ui/components/organisms/vc-table/vc-table.vue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vc-table.vue.d.ts","sourceRoot":"","sources":["../../../../../../ui/components/organisms/vc-table/vc-table.vue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.0.57",
3
+ "version": "1.0.59",
4
4
  "main": "./dist/framework.mjs",
5
5
  "module": "./dist/framework.mjs",
6
6
  "types": "./dist/types/index.d.ts",
@@ -53,12 +53,11 @@
53
53
  "vue-i18n": "^9.1.7",
54
54
  "vue-router": "^4.1.6",
55
55
  "vue3-ace-editor": "^2.2.2",
56
- "vue3-touch-events": "^4.1.0",
57
- "vuedraggable": "^4.1.0"
56
+ "vue3-touch-events": "^4.1.0"
58
57
  },
59
58
  "devDependencies": {
60
- "@vc-shell/api-client-generator": "^1.0.57",
61
- "@vc-shell/config-generator": "^1.0.57",
59
+ "@vc-shell/api-client-generator": "^1.0.59",
60
+ "@vc-shell/config-generator": "^1.0.59",
62
61
  "sass": "^1.49.0",
63
62
  "typescript": "^4.9.5",
64
63
  "url-pattern": "^1.0.3"
@@ -67,5 +66,5 @@
67
66
  "access": "public",
68
67
  "registry": "https://registry.npmjs.org/"
69
68
  },
70
- "gitHead": "ca294492c2aa439befaba5ee3899dd867c50e35b"
69
+ "gitHead": "aef25f0aa06a93c8d9265e5ffd7f73a088a0bca9"
71
70
  }
@@ -42,7 +42,7 @@
42
42
 
43
43
  <script lang="ts" setup>
44
44
  import { ref } from "vue";
45
- import { AppDescriptor } from "./../../../../core/api";
45
+ import { AppDescriptor } from "../../../../../core/api";
46
46
 
47
47
  export interface Props {
48
48
  appsList: AppDescriptor[];
@@ -1,6 +1,6 @@
1
1
  import { computed, Ref, ref } from "vue";
2
- import { AppDescriptor, AppsClient } from "./../../../../core/api";
3
- import { useUser, usePermissions } from "./../../../../core/composables";
2
+ import { AppDescriptor, AppsClient } from "../../../../../core/api";
3
+ import { useUser, usePermissions } from "../../../../../core/composables";
4
4
 
5
5
  interface IUseAppSwitcher {
6
6
  readonly appsList: Ref<AppDescriptor[]>;
@@ -1,4 +1,4 @@
1
- import { createModule } from "../../core/plugins/modularity";
1
+ import { createModule } from "../../../core/plugins/modularity";
2
2
  import * as components from "./components";
3
3
 
4
4
  // Declare globally
@@ -33,7 +33,7 @@
33
33
  <script lang="ts" setup>
34
34
  import { computed, onBeforeUpdate, ref } from "vue";
35
35
  import { useRoute } from "vue-router";
36
- import { IBladeContainer, IBladeElement, IBladeEvent, IParentCallArgs } from "./../../../../shared";
36
+ import { IBladeContainer, IBladeElement, IBladeEvent, IParentCallArgs } from "./../../../../../shared";
37
37
 
38
38
  export interface Props {
39
39
  blades: IBladeContainer[];
@@ -64,7 +64,7 @@ onBeforeUpdate(() => {
64
64
  });
65
65
 
66
66
  const setBladesRef = (el: IBladeElement) => {
67
- if (el && Object.keys(el).length) {
67
+ if (el && el !== null) {
68
68
  bladesRefs.value.push(el);
69
69
  }
70
70
  };
@@ -1,8 +1,8 @@
1
1
  import { computed, ref, unref, watch, Ref } from "vue";
2
2
  import { isEqual } from "lodash-es";
3
3
  import { useRouter, useRoute, NavigationFailure } from "vue-router";
4
- import { usePermissions } from "./../../../../core/composables";
5
- import { ExtendedComponent, IBladeContainer, IBladeElement, IBladeEvent, IParentCallArgs } from "./../../../../shared";
4
+ import { usePermissions } from "../../../../../core/composables";
5
+ import { ExtendedComponent, IBladeContainer, IBladeElement, IBladeEvent, IParentCallArgs } from "../../../..";
6
6
 
7
7
  interface IUseBladeNavigation {
8
8
  readonly blades: Ref<IBladeContainer[]>;
@@ -52,7 +52,7 @@ export default (): IUseBladeNavigation => {
52
52
  index?: number,
53
53
  navigationCb?: () => Promise<void | NavigationFailure>
54
54
  ) {
55
- console.debug(`openBlade(${1}) called.`);
55
+ console.debug(`openBlade called.`);
56
56
 
57
57
  const parent = unref(parentBlade);
58
58
  const child = unref(blade);
@@ -91,8 +91,9 @@ export default (): IUseBladeNavigation => {
91
91
  }
92
92
 
93
93
  async function closeBlade(index: number) {
94
- if (index < bladesRefs.value.length) {
95
- const children = bladesRefs.value.slice(index).reverse();
94
+ const refsIndex = index + 1;
95
+ if (refsIndex < bladesRefs.value.length) {
96
+ const children = bladesRefs.value.slice(refsIndex).reverse();
96
97
 
97
98
  isPrevented.value = false;
98
99
  for (let i = 0; i < children.length; i++) {
@@ -1,4 +1,4 @@
1
- import { createModule } from "../../core/plugins/modularity";
1
+ import { createModule } from "../../../core/plugins/modularity";
2
2
  import * as components from "./components";
3
3
 
4
4
  // Declare globally
@@ -1,5 +1,5 @@
1
1
  import { Component, ComponentPublicInstance } from "vue";
2
- import { IMenuItems } from "./../../../core/types";
2
+ import { IMenuItems } from "../../../../core/types";
3
3
  import { NavigationFailure } from "vue-router";
4
4
 
5
5
  /* onParentCall event interface */
package/shared/index.ts CHANGED
@@ -1,14 +1,17 @@
1
1
  import { App } from "vue";
2
- import { default as AssetsDetailsModule } from "./assets";
3
- import { default as VcAppSwitcherModule } from "./app-switcher";
4
- import { default as VcBladeNavigationModule } from "./blade-navigation";
2
+ import { default as AssetsDetailsModule } from "./modules/assets";
3
+ import { default as VcAppSwitcherComponent } from "./components/app-switcher";
4
+ import { default as VcBladeNavigationComponent } from "./components/blade-navigation";
5
+ import { default as AssetsManagerModule } from "./modules/assets-manager";
5
6
 
6
7
  export default {
7
8
  install(app: App): void {
8
- app.use(AssetsDetailsModule).use(VcAppSwitcherModule).use(VcBladeNavigationModule);
9
+ app.use(AssetsDetailsModule).use(AssetsManagerModule).use(VcBladeNavigationComponent).use(VcAppSwitcherComponent);
9
10
  },
10
11
  };
11
12
 
12
- export * from "./assets";
13
- export * from "./app-switcher";
14
- export * from "./blade-navigation";
13
+ export * from "./modules/assets";
14
+ export * from "./modules/assets-manager";
15
+
16
+ export * from "./components/app-switcher";
17
+ export * from "./components/blade-navigation";
@@ -0,0 +1,166 @@
1
+ <template>
2
+ <VcBlade
3
+ :title="options?.asset?.name"
4
+ :subtitle="$t('ASSETS.PAGES.DETAILS.SUBTITLE')"
5
+ :expanded="expanded"
6
+ :closable="closable"
7
+ :toolbarItems="bladeToolbar"
8
+ @close="$emit('close:blade')"
9
+ >
10
+ <!-- Blade contents -->
11
+ <div class="tw-flex tw-grow-1 tw-border-t tw-border-solid tw-border-t-[#eaedf3]">
12
+ <div class="assets-details__content tw-grow tw-basis-0">
13
+ <VcContainer :no-padding="true">
14
+ <div class="tw-p-4">
15
+ <VcForm>
16
+ <VcRow class="tw-mb-4 !tw-flex">
17
+ <template v-if="isImage(defaultAsset.name)">
18
+ <VcImage
19
+ :src="defaultAsset.url"
20
+ size="xl"
21
+ :bordered="true"
22
+ ></VcImage>
23
+ </template>
24
+ <template v-else>
25
+ <VcIcon
26
+ :icon="getFileThumbnail(defaultAsset.name)"
27
+ class="tw-text-[#a9bfd2] tw-text-[128px]"
28
+ ></VcIcon>
29
+ </template>
30
+ <VcCol class="tw-ml-6">
31
+ <VcCol>
32
+ <VcCol>
33
+ <VcLabel>{{ $t("ASSETS.PAGES.DETAILS.FIELDS.SIZE") }}</VcLabel>
34
+ <VcHint class="tw-text-s">{{ readableSize(defaultAsset.size) }}</VcHint>
35
+ </VcCol>
36
+ <VcCol>
37
+ <VcLabel>{{ $t("ASSETS.PAGES.DETAILS.FIELDS.CREATED_DATE") }}</VcLabel>
38
+ <VcHint class="tw-text-s">{{
39
+ (defaultAsset.createdDate && moment(defaultAsset.createdDate).fromNow()) || "N/A"
40
+ }}</VcHint>
41
+ </VcCol>
42
+ <VcCol>
43
+ <VcLabel>{{ $t("ASSETS.PAGES.DETAILS.FIELDS.URL") }}</VcLabel>
44
+ <VcRow>
45
+ <VcLink
46
+ class="vc-link tw-text-s tw-max-w-10 tw-truncate tw-w-max tw-max-w-[100px]"
47
+ @click="openLink(defaultAsset.url)"
48
+ >{{ defaultAsset.name }}</VcLink
49
+ >
50
+ <VcButton
51
+ icon="far fa-copy"
52
+ size="m"
53
+ class="tw-ml-2"
54
+ variant="onlytext"
55
+ @click="copyLink(defaultAsset.url)"
56
+ title="Copy link"
57
+ ></VcButton>
58
+ </VcRow>
59
+ </VcCol>
60
+ </VcCol>
61
+ </VcCol>
62
+ </VcRow>
63
+
64
+ <VcInput
65
+ class="tw-mb-4"
66
+ :label="$t('ASSETS.PAGES.DETAILS.FIELDS.NAME.TITLE')"
67
+ v-model="defaultAsset.name"
68
+ clearable
69
+ required
70
+ :placeholder="$t('ASSETS.PAGES.DETAILS.FIELDS.NAME.PLACEHOLDER')"
71
+ ></VcInput>
72
+ <VcInput
73
+ class="tw-mb-4"
74
+ :label="$t('ASSETS.PAGES.DETAILS.FIELDS.ALT.TITLE')"
75
+ v-model="defaultAsset.altText"
76
+ clearable
77
+ :placeholder="$t('ASSETS.PAGES.DETAILS.FIELDS.ALT.PLACEHOLDER')"
78
+ :tooltip="$t('ASSETS.PAGES.DETAILS.FIELDS.ALT.TOOLTIP')"
79
+ required
80
+ v-if="assetType === 'Image'"
81
+ ></VcInput>
82
+ <VcTextarea
83
+ class="tw-mb-4"
84
+ :label="$t('ASSETS.PAGES.DETAILS.FIELDS.DESCRIPTION.TITLE')"
85
+ v-model="defaultAsset.description"
86
+ :placeholder="$t('ASSETS.PAGES.DETAILS.FIELDS.DESCRIPTION.PLACEHOLDER')"
87
+ required
88
+ ></VcTextarea>
89
+ </VcForm>
90
+ </div>
91
+ </VcContainer>
92
+ </div>
93
+ </div>
94
+ </VcBlade>
95
+ </template>
96
+
97
+ <script lang="ts" setup>
98
+ import { Asset } from "./../../../../../core/types";
99
+ import { computed, ref } from "vue";
100
+ import { useI18n } from "vue-i18n";
101
+ import { VcBlade, VcContainer, VcForm, VcImage, VcInput, VcTextarea } from "./../../../../../ui/components";
102
+ import { isImage, getFileThumbnail, readableSize } from "./../../../../utilities/assets";
103
+ import moment from "moment";
104
+
105
+ export interface Props {
106
+ expanded?: boolean;
107
+ closable?: boolean;
108
+ options?: {
109
+ asset: Asset;
110
+ assetEditHandler?: (defaultAsset: Asset) => void;
111
+ assetRemoveHandler?: (defaultAsset: Asset) => void;
112
+ };
113
+ }
114
+
115
+ export interface Emits {
116
+ (event: "close:blade"): void;
117
+ }
118
+
119
+ const props = withDefaults(defineProps<Props>(), {
120
+ expanded: true,
121
+ closable: true,
122
+ });
123
+
124
+ const emit = defineEmits<Emits>();
125
+ const { t } = useI18n();
126
+ const defaultAsset = ref<Asset>({ ...props.options?.asset });
127
+
128
+ const bladeToolbar = [
129
+ {
130
+ id: "save",
131
+ title: t("ASSETS.PAGES.DETAILS.TOOLBAR.SAVE"),
132
+ icon: "fas fa-save",
133
+ clickHandler() {
134
+ if (props.options?.assetEditHandler && typeof props.options?.assetEditHandler === "function") {
135
+ props.options?.assetEditHandler(defaultAsset.value);
136
+ emit("close:blade");
137
+ }
138
+ },
139
+ },
140
+ {
141
+ id: "delete",
142
+ title: t("ASSETS.PAGES.DETAILS.TOOLBAR.DELETE"),
143
+ icon: "fas fa-trash",
144
+ clickHandler() {
145
+ if (props.options?.assetRemoveHandler && typeof props.options?.assetRemoveHandler === "function") {
146
+ props.options?.assetRemoveHandler(defaultAsset.value);
147
+ emit("close:blade");
148
+ }
149
+ },
150
+ },
151
+ ];
152
+
153
+ const assetType = computed(() => defaultAsset.value?.typeId);
154
+
155
+ function copyLink(link: string) {
156
+ if (link.charAt(0) === "/") {
157
+ navigator.clipboard?.writeText(`${location.origin}${link}`);
158
+ } else {
159
+ navigator.clipboard?.writeText(link);
160
+ }
161
+ }
162
+
163
+ function openLink(link: string) {
164
+ location.href = link;
165
+ }
166
+ </script>