@vc-shell/framework 1.0.212 → 1.0.213

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 (59) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/framework.js +11 -5
  3. package/dist/index.css +1 -1
  4. package/dist/shared/modules/dynamic/components/SchemaRender.d.ts +3 -3
  5. package/dist/shared/modules/dynamic/components/fields/Button.d.ts +1 -1
  6. package/dist/shared/modules/dynamic/components/fields/Card.d.ts +1 -1
  7. package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts +1 -1
  8. package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts +1 -1
  9. package/dist/shared/modules/dynamic/components/fields/CustomComponent.d.ts +1 -1
  10. package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts +1 -1
  11. package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts +1 -1
  12. package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts +1 -1
  13. package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts +1 -1
  14. package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts +1 -1
  15. package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts +1 -1
  16. package/dist/shared/modules/dynamic/components/fields/InputField.d.ts +1 -1
  17. package/dist/shared/modules/dynamic/components/fields/MultivalueField.d.ts +1 -1
  18. package/dist/shared/modules/dynamic/components/fields/RatingField.d.ts +1 -1
  19. package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts +1 -1
  20. package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts +1 -1
  21. package/dist/shared/modules/dynamic/components/fields/SwitchField.d.ts +1 -1
  22. package/dist/shared/modules/dynamic/components/fields/Table.d.ts +1 -1
  23. package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts +1 -1
  24. package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts +1 -1
  25. package/dist/shared/modules/dynamic/components/fields/props.d.ts +1 -1
  26. package/dist/shared/modules/dynamic/components/fields/storybook/Button.stories.d.ts +3 -3
  27. package/dist/shared/modules/dynamic/components/fields/storybook/Card.stories.d.ts +3 -3
  28. package/dist/shared/modules/dynamic/components/fields/storybook/Checkbox.stories.d.ts +3 -3
  29. package/dist/shared/modules/dynamic/components/fields/storybook/ContentField.stories.d.ts +3 -3
  30. package/dist/shared/modules/dynamic/components/fields/storybook/EditorField.stories.d.ts +3 -3
  31. package/dist/shared/modules/dynamic/components/fields/storybook/Fieldset.stories.d.ts +3 -3
  32. package/dist/shared/modules/dynamic/components/fields/storybook/GalleryField.stories.d.ts +3 -3
  33. package/dist/shared/modules/dynamic/components/fields/storybook/ImageField.stories.d.ts +3 -3
  34. package/dist/shared/modules/dynamic/components/fields/storybook/InputCurrency.stories.d.ts +3 -3
  35. package/dist/shared/modules/dynamic/components/fields/storybook/InputField.stories.d.ts +3 -3
  36. package/dist/shared/modules/dynamic/components/fields/storybook/MultivalueField.stories.d.ts +3 -3
  37. package/dist/shared/modules/dynamic/components/fields/storybook/RatingField.stories.d.ts +3 -3
  38. package/dist/shared/modules/dynamic/components/fields/storybook/SelectField.stories.d.ts +3 -3
  39. package/dist/shared/modules/dynamic/components/fields/storybook/StatusField.stories.d.ts +3 -3
  40. package/dist/shared/modules/dynamic/components/fields/storybook/TextareaField.stories.d.ts +3 -3
  41. package/dist/shared/modules/dynamic/components/fields/storybook/VideoField.stories.d.ts +3 -3
  42. package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts +3 -3
  43. package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts +3 -3
  44. package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts.map +1 -1
  45. package/dist/shared/modules/dynamic/factories/base/useListFactory.d.ts +2 -2
  46. package/dist/shared/modules/dynamic/factories/base/useListFactory.d.ts.map +1 -1
  47. package/dist/shared/modules/dynamic/factories/types/index.d.ts +5 -2
  48. package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
  49. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
  50. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +1 -1
  51. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +4 -4
  54. package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +3 -3
  55. package/shared/modules/dynamic/factories/base/useListFactory.ts +2 -2
  56. package/shared/modules/dynamic/factories/types/index.ts +11 -2
  57. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +11 -8
  58. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +17 -7
  59. package/ui/components/atoms/vc-widget/vc-widget.vue +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.0.212",
3
+ "version": "1.0.213",
4
4
  "type": "module",
5
5
  "main": "./dist/framework.js",
6
6
  "types": "./dist/index.d.ts",
@@ -59,9 +59,9 @@
59
59
  "devDependencies": {
60
60
  "@types/dompurify": "^3.0.5",
61
61
  "@types/quill": "^2.0.14",
62
- "@vc-shell/api-client-generator": "^1.0.212",
63
- "@vc-shell/config-generator": "^1.0.212",
64
- "@vc-shell/ts-config": "^1.0.212",
62
+ "@vc-shell/api-client-generator": "^1.0.213",
63
+ "@vc-shell/config-generator": "^1.0.213",
64
+ "@vc-shell/ts-config": "^1.0.213",
65
65
  "@vitejs/plugin-vue": "^5.0.3",
66
66
  "sass": "^1.69.6",
67
67
  "shx": "^0.3.4",
@@ -6,9 +6,9 @@ import type { ItemId, IValidationState, UseDetails } from "../types";
6
6
  import { createUnrefFn } from "@vueuse/core";
7
7
 
8
8
  export interface UseDetailsFactoryParams<Item> {
9
- load: (args?: ItemId) => Promise<Item | undefined>;
10
- saveChanges?: (details: Item) => Promise<Item | void>;
11
- remove?: (args: ItemId) => Promise<void>;
9
+ load: (args?: ItemId) => Promise<Item | undefined> | Item | undefined;
10
+ saveChanges?: (details: Item) => Promise<Item | void> | Item | void;
11
+ remove?: (args: ItemId) => Promise<void> | void;
12
12
  }
13
13
 
14
14
  export const useDetailsFactory = <Item>(factoryParams: UseDetailsFactoryParams<Item>) => {
@@ -9,8 +9,8 @@ interface ISearchResult<T> {
9
9
  }
10
10
 
11
11
  export interface UseListFactoryParams<Items extends Record<string, any>[], Query extends IQuery> {
12
- load?: (query: Query, ...args: any[]) => Promise<ISearchResult<Items>>;
13
- remove?: (query: Query, customQuery: CustomQuery, ...args: any[]) => Promise<void>;
12
+ load?: (query: Query, ...args: any[]) => Promise<ISearchResult<Items>> | ISearchResult<Items>;
13
+ remove?: (query: Query, customQuery: CustomQuery, ...args: any[]) => Promise<void> | void;
14
14
  }
15
15
 
16
16
  export interface IQuery {
@@ -40,7 +40,7 @@ export type CustomQuery = { ids: string[] | null; allSelected?: boolean };
40
40
  export interface UseDetails<Item, Scope extends DetailsBaseBladeScope = DetailsBaseBladeScope> {
41
41
  load: AsyncAction<ItemId>;
42
42
  saveChanges: AsyncAction<Item, Item | void>;
43
- remove?: AsyncAction<ItemId>;
43
+ remove?: AsyncAction<ItemId | Item>;
44
44
  loading: ComputedRef<boolean>;
45
45
  item: Ref<Item | undefined>;
46
46
  validationState: ComputedRef<IValidationState<Item>>;
@@ -76,12 +76,21 @@ export interface ListBaseBladeScope<Item = Record<string, any>, Query = Record<s
76
76
  openDetailsBlade?: (
77
77
  args?: Omit<Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"], "blade">,
78
78
  ) => Promise<void> | void;
79
- onListItemClick?: (args: { item?: Item }) => void;
79
+ onListItemClick?: (
80
+ args: { item?: Item } & Omit<
81
+ Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"],
82
+ "blade" | "param" | "options"
83
+ >,
84
+ ) => void;
80
85
  onPaginationClick?: (query: Query) => void;
81
86
  breadcrumbs?: ComputedRef<Breadcrumbs[]>;
82
87
  }
83
88
 
84
89
  export type TOpenBladeArgs = Omit<Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"], "blade">;
90
+ export type TListItemClickArgs<Item extends Record<string, any> = Record<string, any>> = Omit<
91
+ Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"],
92
+ "blade" | "param" | "options"
93
+ > & { item?: Item | undefined };
85
94
 
86
95
  export interface DetailsBaseBladeScope extends BaseBladeScope {
87
96
  disabled?: ComputedRef<boolean | undefined> | Ref<boolean | undefined>;
@@ -288,15 +288,18 @@ const toolbarComputed =
288
288
  ) {
289
289
  if (props.param) {
290
290
  await remove?.({ id: unref(props.param) });
291
- emit("parent:call", {
292
- method: "reload",
293
- });
294
- emit("parent:call", {
295
- method: "updateActiveWidgetCount",
296
- });
297
-
298
- emit("close:blade");
291
+ } else {
292
+ await remove?.({ item: item.value });
299
293
  }
294
+
295
+ emit("parent:call", {
296
+ method: "reload",
297
+ });
298
+ emit("parent:call", {
299
+ method: "updateActiveWidgetCount",
300
+ });
301
+
302
+ emit("close:blade");
300
303
  }
301
304
  },
302
305
  disabled: computed(() => toValue(scope)?.disabled),
@@ -162,6 +162,7 @@ import {
162
162
  toRefs,
163
163
  provide,
164
164
  isRef,
165
+ onMounted,
165
166
  } from "vue";
166
167
  import { useI18n } from "vue-i18n";
167
168
  import { DynamicGridSchema, ListContentSchema, SettingsSchema } from "../types";
@@ -430,7 +431,22 @@ const openDetailsBlade = async () => {
430
431
 
431
432
  const onItemClick = (item: { [x: string]: any; id?: string }) => {
432
433
  if (!props.isWidgetView) {
433
- if (scope && safeIn("openDetailsBlade", toValue(scope)) && typeof toValue(scope).openDetailsBlade === "function") {
434
+ // TODO Add to docs
435
+ if (scope && safeIn("onListItemClick", toValue(scope)) && typeof toValue(scope).onListItemClick === "function") {
436
+ toValue(scope).onListItemClick?.({
437
+ item,
438
+ onOpen() {
439
+ selectedItemId.value = item.id;
440
+ },
441
+ onClose() {
442
+ selectedItemId.value = undefined;
443
+ },
444
+ });
445
+ } else if (
446
+ scope &&
447
+ safeIn("openDetailsBlade", toValue(scope)) &&
448
+ typeof toValue(scope).openDetailsBlade === "function"
449
+ ) {
434
450
  toValue(scope).openDetailsBlade?.({
435
451
  param: item.id,
436
452
  onOpen() {
@@ -441,12 +457,6 @@ const onItemClick = (item: { [x: string]: any; id?: string }) => {
441
457
  },
442
458
  });
443
459
  }
444
-
445
- if (scope && safeIn("onListItemClick", toValue(scope)) && typeof toValue(scope).onListItemClick === "function") {
446
- toValue(scope).onListItemClick?.({
447
- item,
448
- });
449
- }
450
460
  } else {
451
461
  emit("item-click", { param: item.id });
452
462
  }
@@ -70,7 +70,7 @@ function onClick() {
70
70
  }
71
71
 
72
72
  &__title {
73
- @apply tw-font-medium tw-text-sm tw-text-[#333333] tw-mt-3 tw-mb-1 tw-mx-0;
73
+ @apply tw-font-medium tw-text-sm tw-text-[#333333] tw-mt-3 tw-mb-1 tw-mx-0 tw-text-center;
74
74
  }
75
75
 
76
76
  &_disabled &__title {