@vc-shell/framework 1.0.211 → 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 (60) hide show
  1. package/CHANGELOG.md +24 -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 +2 -2
  50. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
  51. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +4 -4
  52. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +4 -4
  55. package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +3 -3
  56. package/shared/modules/dynamic/factories/base/useListFactory.ts +2 -2
  57. package/shared/modules/dynamic/factories/types/index.ts +11 -2
  58. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +12 -10
  59. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +18 -9
  60. 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.211",
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.211",
63
- "@vc-shell/config-generator": "^1.0.211",
64
- "@vc-shell/ts-config": "^1.0.211",
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>;
@@ -81,7 +81,6 @@ import {
81
81
  toRefs,
82
82
  provide,
83
83
  toRef,
84
- MaybeRef,
85
84
  } from "vue";
86
85
  import { DynamicDetailsSchema, FormContentSchema, SettingsSchema } from "../types";
87
86
  import { reactiveComputed, toReactive, useMounted, useTemplateRefsList } from "@vueuse/core";
@@ -105,7 +104,7 @@ import { notification } from "../../../components";
105
104
  interface Props {
106
105
  expanded?: boolean;
107
106
  closable?: boolean;
108
- param?: MaybeRef<string>;
107
+ param?: string;
109
108
  model?: DynamicDetailsSchema;
110
109
  options?: {
111
110
  [x: string]: unknown;
@@ -289,15 +288,18 @@ const toolbarComputed =
289
288
  ) {
290
289
  if (props.param) {
291
290
  await remove?.({ id: unref(props.param) });
292
- emit("parent:call", {
293
- method: "reload",
294
- });
295
- emit("parent:call", {
296
- method: "updateActiveWidgetCount",
297
- });
298
-
299
- emit("close:blade");
291
+ } else {
292
+ await remove?.({ item: item.value });
300
293
  }
294
+
295
+ emit("parent:call", {
296
+ method: "reload",
297
+ });
298
+ emit("parent:call", {
299
+ method: "updateActiveWidgetCount",
300
+ });
301
+
302
+ emit("close:blade");
301
303
  }
302
304
  },
303
305
  disabled: computed(() => toValue(scope)?.disabled),
@@ -162,7 +162,7 @@ import {
162
162
  toRefs,
163
163
  provide,
164
164
  isRef,
165
- MaybeRef,
165
+ onMounted,
166
166
  } from "vue";
167
167
  import { useI18n } from "vue-i18n";
168
168
  import { DynamicGridSchema, ListContentSchema, SettingsSchema } from "../types";
@@ -180,7 +180,7 @@ import { safeIn } from "../helpers/safeIn";
180
180
  export interface Props {
181
181
  expanded?: boolean;
182
182
  closable?: boolean;
183
- param?: MaybeRef<string>;
183
+ param?: string;
184
184
  options?: unknown;
185
185
  model?: DynamicGridSchema;
186
186
  composables?: Record<string, (...args: any[]) => Record<string, any>>;
@@ -431,7 +431,22 @@ const openDetailsBlade = async () => {
431
431
 
432
432
  const onItemClick = (item: { [x: string]: any; id?: string }) => {
433
433
  if (!props.isWidgetView) {
434
- 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
+ ) {
435
450
  toValue(scope).openDetailsBlade?.({
436
451
  param: item.id,
437
452
  onOpen() {
@@ -442,12 +457,6 @@ const onItemClick = (item: { [x: string]: any; id?: string }) => {
442
457
  },
443
458
  });
444
459
  }
445
-
446
- if (scope && safeIn("onListItemClick", toValue(scope)) && typeof toValue(scope).onListItemClick === "function") {
447
- toValue(scope).onListItemClick?.({
448
- item,
449
- });
450
- }
451
460
  } else {
452
461
  emit("item-click", { param: item.id });
453
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 {