@vc-shell/framework 1.0.224 → 1.0.226

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 (28) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/framework.js +1084 -1059
  3. package/dist/index.css +1 -1
  4. package/dist/shared/modules/dynamic/components/fields/Table.d.ts.map +1 -1
  5. package/dist/shared/modules/dynamic/components/fields/storybook/Checkbox.stories.d.ts +8 -8
  6. package/dist/shared/modules/dynamic/components/fields/storybook/InputCurrency.stories.d.ts +8 -8
  7. package/dist/shared/modules/dynamic/components/fields/storybook/RadioButtonGroup.stories.d.ts +8 -8
  8. package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts.map +1 -1
  9. package/dist/shared/modules/dynamic/factories/types/index.d.ts +1 -1
  10. package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
  11. package/dist/shared/modules/dynamic/helpers/nodeBuilder.d.ts.map +1 -1
  12. package/dist/shared/modules/dynamic/types/index.d.ts +14 -6
  13. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +16 -0
  16. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  17. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts +6 -3
  18. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts.map +1 -1
  19. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  20. package/package.json +4 -4
  21. package/shared/modules/dynamic/components/fields/Table.ts +1 -2
  22. package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +7 -4
  23. package/shared/modules/dynamic/factories/types/index.ts +1 -1
  24. package/shared/modules/dynamic/helpers/nodeBuilder.ts +15 -0
  25. package/shared/modules/dynamic/types/index.ts +14 -6
  26. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +11 -9
  27. package/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue +21 -10
  28. package/ui/components/organisms/vc-table/vc-table.vue +26 -17
@@ -1,13 +1,29 @@
1
1
  import { Placement } from "@floating-ui/vue";
2
2
  export interface Props {
3
3
  placement?: Placement;
4
+ offset?: {
5
+ crossAxis?: number;
6
+ mainAxis?: number;
7
+ };
4
8
  }
5
9
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
6
10
  placement: string;
11
+ offset: () => {
12
+ crossAxis: number;
13
+ mainAxis: number;
14
+ };
7
15
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
8
16
  placement: string;
17
+ offset: () => {
18
+ crossAxis: number;
19
+ mainAxis: number;
20
+ };
9
21
  }>>>, {
10
22
  placement: Placement;
23
+ offset: {
24
+ crossAxis?: number | undefined;
25
+ mainAxis?: number | undefined;
26
+ };
11
27
  }, {}>, Readonly<{
12
28
  default: void;
13
29
  tooltip?: void | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"vc-tooltip.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/atoms/vc-tooltip/vc-tooltip.vue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,SAAS,EAAU,MAAM,kBAAkB,CAAC;AAEzE,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;;;;;;;;;;;;;;AAuKD,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"vc-tooltip.vue.d.ts","sourceRoot":"","sources":["../../../../../ui/components/atoms/vc-tooltip/vc-tooltip.vue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,SAAS,EAA4B,MAAM,kBAAkB,CAAC;AAE3F,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;;;;;;;;;;;;;;;;;;;;;;;;;;AAwKD,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -11,8 +11,9 @@ export interface TableItem {
11
11
  declare const _default: <T extends string | TableItem>(__VLS_props: {
12
12
  onClick?: (() => any) | undefined;
13
13
  onSelect?: (() => any) | undefined;
14
- item: T;
14
+ items: T[];
15
15
  actionBuilder?: ((item: T) => IActionBuilderResult[] | undefined) | undefined;
16
+ index: number;
16
17
  onSwipeStart?: ((id: string) => any) | undefined;
17
18
  swipingItem?: string | undefined;
18
19
  isSelected?: boolean | undefined;
@@ -26,8 +27,9 @@ declare const _default: <T extends string | TableItem>(__VLS_props: {
26
27
  props: {
27
28
  onClick?: (() => any) | undefined;
28
29
  onSelect?: (() => any) | undefined;
29
- item: T;
30
+ items: T[];
30
31
  actionBuilder?: ((item: T) => IActionBuilderResult[] | undefined) | undefined;
32
+ index: number;
31
33
  onSwipeStart?: ((id: string) => any) | undefined;
32
34
  swipingItem?: string | undefined;
33
35
  isSelected?: boolean | undefined;
@@ -45,8 +47,9 @@ declare const _default: <T extends string | TableItem>(__VLS_props: {
45
47
  props: {
46
48
  onClick?: (() => any) | undefined;
47
49
  onSelect?: (() => any) | undefined;
48
- item: T;
50
+ items: T[];
49
51
  actionBuilder?: ((item: T) => IActionBuilderResult[] | undefined) | undefined;
52
+ index: number;
50
53
  onSwipeStart?: ((id: string) => any) | undefined;
51
54
  swipingItem?: string | undefined;
52
55
  isSelected?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"vc-table-mobile-item.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKpE,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AACD,MAAM,WAAW,SAAS;IAExB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACjB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;;;;UA2fO,CAAC;4BACgB,CAAC,KAAK,oBAAoB,EAAE,GAAG,SAAS;;;;;WAU1D,GAAG;;yBA1CoB,GAAG;;;yCAyCjB,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAG,IAAI;;;;cAVjD,CAAC;gCACgB,CAAC,KAAK,oBAAoB,EAAE,GAAG,SAAS;;;;;oBASjD,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBA1CoB,GAAG;;;;;;;;;;kBA+BzB,CAAC;oCACgB,CAAC,KAAK,oBAAoB,EAAE,GAAG,SAAS;;;;;wBASjD,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;eAClD,GAAG;;6BA1CoB,GAAG;;;;;AAzdjC,wBAwgB2E"}
1
+ {"version":3,"file":"vc-table-mobile-item.vue.d.ts","sourceRoot":"","sources":["../../../../../../../ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKpE,MAAM,WAAW,KAAK;IACpB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AACD,MAAM,WAAW,SAAS;IAExB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACjB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;;;;WAsgBQ,CAAC,EAAE;4BACa,CAAC,KAAK,oBAAoB,EAAE,GAAG,SAAS;WAGxD,MAAM;;;;;WAQR,GAAG;;yBA3CoB,GAAG;;;yCA0CjB,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAG,IAAI;;;;eAXhD,CAAC,EAAE;gCACa,CAAC,KAAK,oBAAoB,EAAE,GAAG,SAAS;eAGxD,MAAM;;;;;oBAOC,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBA3CoB,GAAG;;;;;;;;;;mBA+BxB,CAAC,EAAE;oCACa,CAAC,KAAK,oBAAoB,EAAE,GAAG,SAAS;mBAGxD,MAAM;;;;;wBAOC,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;eAClD,GAAG;;6BA3CoB,GAAG;;;;;AApejC,wBAohB2E"}
@@ -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.224",
3
+ "version": "1.0.226",
4
4
  "type": "module",
5
5
  "main": "./dist/framework.js",
6
6
  "types": "./dist/index.d.ts",
@@ -60,9 +60,9 @@
60
60
  "devDependencies": {
61
61
  "@types/dompurify": "^3.0.5",
62
62
  "@types/quill": "^2.0.14",
63
- "@vc-shell/api-client-generator": "^1.0.224",
64
- "@vc-shell/config-generator": "^1.0.224",
65
- "@vc-shell/ts-config": "^1.0.224",
63
+ "@vc-shell/api-client-generator": "^1.0.226",
64
+ "@vc-shell/config-generator": "^1.0.226",
65
+ "@vc-shell/ts-config": "^1.0.226",
66
66
  "@vitejs/plugin-vue": "^5.0.3",
67
67
  "sass": "^1.69.6",
68
68
  "shx": "^0.3.4",
@@ -1,13 +1,12 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { useTableTemplates } from "./../../composables";
3
- import { Component, ExtractPropTypes, computed, h, inject, isRef, nextTick, toValue, unref } from "vue";
3
+ import { Component, ExtractPropTypes, computed, h, inject, toValue, unref } from "vue";
4
4
  import { Table } from "../factories";
5
5
  import componentProps from "./props";
6
6
  import { TableSchema } from "../../types";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import { unrefNested } from "../../helpers/unrefNested";
9
9
  import { setModel } from "../../helpers/setters";
10
- import { safeIn } from "../../helpers/safeIn";
11
10
  import { IActionBuilderResult, ITableColumns } from "../../../../../core/types";
12
11
 
13
12
  type TableItemData<T> = {
@@ -52,10 +52,10 @@ export const useDetailsFactory = <Item extends { id?: string }>(factoryParams: U
52
52
 
53
53
  const validationState = computed(
54
54
  (): IValidationState<Item> => ({
55
- dirty: isDirty.value,
55
+ dirty: isDirty.value || isModified.value,
56
56
  valid: isFormValid.value,
57
57
  modified: isModified.value,
58
- disabled: isDisabled.value,
58
+ disabled: isDisabled.value || !isModified.value,
59
59
  validated: !isDisabled.value && isModified.value,
60
60
  cachedValue: itemTemp.value,
61
61
  errorBag: errorBag.value,
@@ -64,7 +64,7 @@ export const useDetailsFactory = <Item extends { id?: string }>(factoryParams: U
64
64
  setFieldValue,
65
65
  setValues,
66
66
  resetModified,
67
- resetDirty,
67
+ resetValidationState,
68
68
  validate,
69
69
  }),
70
70
  );
@@ -80,12 +80,15 @@ export const useDetailsFactory = <Item extends { id?: string }>(factoryParams: U
80
80
  const resetModified = createUnrefFn((data: Item, updateInitial = false) => {
81
81
  if (updateInitial) {
82
82
  item.value = data;
83
+
84
+ resetValidationState();
83
85
  }
84
86
 
85
87
  itemTemp.value = _.cloneDeep(data);
86
88
  }) as (data: MaybeRef<Item | undefined> | ComputedRef<Item | undefined>, updateInitial?: MaybeRef<boolean>) => void;
87
89
 
88
- const resetDirty = () => {
90
+ const resetValidationState = () => {
91
+ isModified.value = false;
89
92
  isDirty = ref(false);
90
93
  };
91
94
 
@@ -32,7 +32,7 @@ export interface IValidationState<Item> {
32
32
  data: MaybeRef<Item | undefined> | ComputedRef<Item | undefined>,
33
33
  updateInitial?: MaybeRef<boolean>,
34
34
  ) => void;
35
- resetDirty: () => void;
35
+ resetValidationState: () => void;
36
36
  validate: FormContext["validate"];
37
37
  errorBag: Partial<Record<string, string[]>>;
38
38
  }
@@ -87,6 +87,20 @@ function nodeBuilder<
87
87
  controlSchema.disabled &&
88
88
  disabledHandler(controlSchema.disabled, bladeContext));
89
89
 
90
+ // TODO add to docs
91
+ const onBlur = (event: Event) => {
92
+ if (safeIn("onBlur", controlSchema) && controlSchema.onBlur) {
93
+ const method = controlSchema.onBlur.method;
94
+ if (method && bladeContext.scope?.[method] && typeof bladeContext.scope[method] === "function") {
95
+ bladeContext.scope[method]({
96
+ event,
97
+ property: controlSchema.property,
98
+ context: unrefNested(internalContext),
99
+ });
100
+ }
101
+ }
102
+ };
103
+
90
104
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
105
  const onUpdateModelValue = async (e: any) => {
92
106
  if (safeIn("property", controlSchema) && controlSchema.property) {
@@ -118,6 +132,7 @@ function nodeBuilder<
118
132
  label: computed(() => (typeof label !== "undefined" ? t(label) : undefined)),
119
133
  hint: computed(() => (typeof hint !== "undefined" ? t(hint) : undefined)),
120
134
  disabled,
135
+ onBlur,
121
136
  name,
122
137
  rules,
123
138
  placeholder: computed(() => (typeof placeholder !== "undefined" ? t(placeholder) : undefined)),
@@ -256,6 +256,14 @@ export interface SchemaBase {
256
256
  visibility?: {
257
257
  method: string;
258
258
  };
259
+ /**
260
+ * Method that is called when component emits `blur` event.
261
+ * @description Method should be defined in the blade `scope`.
262
+ * @type {{ method: string }}
263
+ */
264
+ onBlur?: {
265
+ method: string;
266
+ };
259
267
  /** Flag to indicate if the component supports multilanguage.
260
268
  * @type {boolean}
261
269
  */
@@ -396,7 +404,7 @@ export interface MultivalueSchema extends SchemaBase {
396
404
  hint?: string;
397
405
  }
398
406
 
399
- export interface TextareaSchema extends SchemaBase {
407
+ export interface TextareaSchema extends Omit<SchemaBase, "onBlur"> {
400
408
  /**
401
409
  * Component type for textarea.
402
410
  * @type {"vc-textarea"}
@@ -655,7 +663,7 @@ export interface InputCurrencySchema extends Omit<SchemaBase, "multilanguage"> {
655
663
  * Editor schema interface.
656
664
  * @interface
657
665
  */
658
- export interface EditorSchema extends SchemaBase {
666
+ export interface EditorSchema extends Omit<SchemaBase, "onBlur"> {
659
667
  /**
660
668
  * Component type for editor.
661
669
  * @type {"vc-editor"}
@@ -701,7 +709,7 @@ export interface DynamicPropertiesSchema
701
709
  * @interface
702
710
  */
703
711
  export interface GallerySchema
704
- extends Omit<SchemaBase, "placeholder" | "multilanguage" | "update" | "horizontalSeparator"> {
712
+ extends Omit<SchemaBase, "placeholder" | "multilanguage" | "update" | "horizontalSeparator" | "onBlur"> {
705
713
  /**
706
714
  * Component type for the gallery.
707
715
  * @type {"vc-gallery"}
@@ -781,7 +789,7 @@ export interface WidgetsSchema extends Pick<SchemaBase, "id" | "horizontalSepara
781
789
  children: string[];
782
790
  }
783
791
 
784
- export interface CheckboxSchema extends Omit<SchemaBase, "multilanguage" | "placeholder"> {
792
+ export interface CheckboxSchema extends Omit<SchemaBase, "multilanguage" | "placeholder" | "onBlur"> {
785
793
  /**
786
794
  * Component type for checkbox.
787
795
  * @type {"vc-checkbox"}
@@ -803,7 +811,7 @@ export interface CheckboxSchema extends Omit<SchemaBase, "multilanguage" | "plac
803
811
  falseValue?: boolean;
804
812
  }
805
813
 
806
- export interface RadioButtonSchema extends Omit<SchemaBase, "multilanguage" | "placeholder"> {
814
+ export interface RadioButtonSchema extends Omit<SchemaBase, "multilanguage" | "placeholder" | "onBlur"> {
807
815
  /**
808
816
  * Component type for radio button.
809
817
  * @type {"vc-radio-button-group"}
@@ -869,7 +877,7 @@ export interface FieldsetSchema extends Pick<SchemaBase, "id" | "visibility" | "
869
877
  * Switch schema interface.
870
878
  * @interface
871
879
  */
872
- export interface SwitchSchema extends Omit<SchemaBase, "placeholder" | "multilanguage"> {
880
+ export interface SwitchSchema extends Omit<SchemaBase, "placeholder" | "multilanguage" | "onBlur"> {
873
881
  /**
874
882
  * Component type for switch.
875
883
  * @type {"vc-switch"}
@@ -14,7 +14,7 @@
14
14
  v-if="tooltipVisible"
15
15
  ref="tooltipRef"
16
16
  :style="floatingStyles"
17
- class="tw-absolute tw-z-[101] tw-bg-white tw-border tw-border-solid tw-border-[color:#eef0f2] tw-shadow-[1px_1px_8px_rgba(126,142,157,0.25)] tw-rounded-[3px] tw-text-[color:#8e9daa] tw-font-normal tw-py-1 tw-px-2 tw-ml-4"
17
+ class="tw-absolute tw-z-[101] tw-bg-white tw-border tw-border-solid tw-border-[color:#eef0f2] tw-shadow-[1px_1px_8px_rgba(126,142,157,0.25)] tw-rounded-[3px] tw-text-[color:#8e9daa] tw-font-normal tw-py-1 tw-px-2"
18
18
  >
19
19
  <slot name="tooltip"></slot>
20
20
  </span>
@@ -23,14 +23,22 @@
23
23
  </template>
24
24
 
25
25
  <script lang="ts" setup>
26
- import { useFloating, shift, Placement, offset } from "@floating-ui/vue";
26
+ import { useFloating, shift, Placement, offset as floatingOffset } from "@floating-ui/vue";
27
27
  import { ref } from "vue";
28
28
  export interface Props {
29
29
  placement?: Placement;
30
+ offset?: {
31
+ crossAxis?: number;
32
+ mainAxis?: number;
33
+ };
30
34
  }
31
35
 
32
36
  const props = withDefaults(defineProps<Props>(), {
33
37
  placement: "bottom-end",
38
+ offset: () => ({
39
+ crossAxis: 5,
40
+ mainAxis: 5,
41
+ }),
34
42
  });
35
43
 
36
44
  defineSlots<{
@@ -44,13 +52,7 @@ const tooltipRef = ref<HTMLElement | null>(null);
44
52
 
45
53
  const { floatingStyles } = useFloating(tooltipCompRef, tooltipRef, {
46
54
  placement: props.placement,
47
- middleware: [
48
- offset({
49
- crossAxis: 5,
50
- mainAxis: 5,
51
- }),
52
- shift(),
53
- ],
55
+ middleware: [floatingOffset(props.offset), shift()],
54
56
  });
55
57
  </script>
56
58
 
@@ -28,7 +28,7 @@
28
28
  <div
29
29
  class="tw-flex tw-grow tw-basis-[1] tw-flex-col tw-justify-center tw-items-center tw-text-white"
30
30
  :class="[`vc-table-mobile__item-action_${leftSwipeActions[0].type}`]"
31
- @click.stop="leftSwipeActions?.[0].clickHandler(item as T)"
31
+ @click.stop="leftSwipeActions?.[0].clickHandler(items[index] as T, index)"
32
32
  >
33
33
  <VcIcon :icon="leftSwipeActions[0].icon" />
34
34
  <div class="tw-mt-1 tw-text-lg tw-text-center">
@@ -49,7 +49,7 @@
49
49
  :key="`rightSwipeAction-${index}`"
50
50
  class="tw-flex tw-grow tw-basis-[1] tw-flex-col tw-justify-center tw-items-center tw-text-white"
51
51
  :class="[`vc-table-mobile__item-action_${action.type}`]"
52
- @click.stop="action.clickHandler(item as T)"
52
+ @click.stop="action.clickHandler(items[index] as T, index)"
53
53
  >
54
54
  <VcIcon :icon="action.icon" />
55
55
  <div class="tw-mt-1 tw-text-lg tw-text-center">
@@ -95,7 +95,7 @@
95
95
  v-for="(itemAction, i) in itemActions"
96
96
  :key="i"
97
97
  class="tw-flex tw-grow tw-shrink-0 tw-flex-col tw-items-center tw-text-[#319ed4] tw-my-2 tw-box-border tw-p-1 tw-max-w-[80px]"
98
- @click="itemAction.clickHandler(item as T)"
98
+ @click="itemAction.clickHandler(items[index] as T, index)"
99
99
  >
100
100
  <VcIcon
101
101
  :icon="itemAction.icon"
@@ -116,10 +116,10 @@
116
116
  </template>
117
117
 
118
118
  <script lang="ts" setup generic="T extends TableItem | string">
119
- import { Ref, computed, ref, onMounted, watch, onUpdated } from "vue";
119
+ import { Ref, computed, ref, onMounted, watch, onUpdated, nextTick } from "vue";
120
120
  import { IActionBuilderResult } from "../../../../../../core/types";
121
121
  import { useI18n } from "vue-i18n";
122
- import { useSwipe } from "@vueuse/core";
122
+ import { useSwipe, watchDebounced } from "@vueuse/core";
123
123
  import { vOnClickOutside } from "@vueuse/components";
124
124
 
125
125
  export interface Emits {
@@ -134,10 +134,11 @@ export interface TableItem {
134
134
  }
135
135
 
136
136
  const props = defineProps<{
137
- item: T;
137
+ items: T[];
138
138
  actionBuilder?: (item: T) => IActionBuilderResult[] | undefined;
139
139
  swipingItem?: string;
140
140
  isSelected?: boolean;
141
+ index: number;
141
142
  }>();
142
143
 
143
144
  const emit = defineEmits<Emits>();
@@ -156,8 +157,9 @@ const { isSwiping, lengthX } = useSwipe(target, {
156
157
  threshold: 0,
157
158
  onSwipeStart() {
158
159
  getActions();
159
- if (typeof props.item !== "string") {
160
- emit("swipeStart", props.item.id);
160
+ const item = props.items[props.index];
161
+ if (typeof item !== "string") {
162
+ emit("swipeStart", item.id);
161
163
  }
162
164
  if (containerWidth.value) {
163
165
  reset();
@@ -207,7 +209,8 @@ const leftSwipeActions = computed(
207
209
  watch(
208
210
  () => props.swipingItem,
209
211
  (newVal) => {
210
- if (typeof props.item !== "string" && newVal !== props.item.id) {
212
+ const item = props.items[props.index];
213
+ if (typeof item !== "string" && newVal !== item.id) {
211
214
  left.value = "0";
212
215
  actionsWidth.value = "0";
213
216
  }
@@ -222,6 +225,14 @@ onUpdated(() => {
222
225
  adjustHeight();
223
226
  });
224
227
 
228
+ watchDebounced(
229
+ () => props.items,
230
+ () => {
231
+ adjustHeight();
232
+ },
233
+ { deep: true, debounce: 450 },
234
+ );
235
+
225
236
  function reset() {
226
237
  left.value = "0";
227
238
  actionsWidth.value = "0";
@@ -243,7 +254,7 @@ const direction = computed(() => {
243
254
  function getActions() {
244
255
  if (!(itemActions.value && itemActions.value.length)) {
245
256
  if (props.actionBuilder && typeof props.actionBuilder === "function") {
246
- itemActions.value = props.actionBuilder(props.item);
257
+ itemActions.value = props.actionBuilder(props.items[props.index]);
247
258
  }
248
259
  }
249
260
  }
@@ -70,7 +70,8 @@
70
70
  <VcTableMobileItem
71
71
  v-for="(item, i) in items"
72
72
  :key="i"
73
- :item="item"
73
+ :index="i"
74
+ :items="items"
74
75
  :action-builder="itemActionBuilder"
75
76
  :swiping-item="mobileSwipeItem"
76
77
  :is-selected="isSelected(item)"
@@ -326,7 +327,7 @@
326
327
  v-if="
327
328
  enableItemActions && itemActionBuilder && typeof item === 'object' && selectedRowIndex === itemIndex
328
329
  "
329
- class="tw-absolute tw-flex tw-right-0 actions tw-h-full tw-bg-[#f4f8fb]"
330
+ class="tw-absolute tw-flex tw-right-[10px] actions tw-h-full tw-bg-[#f4f8fb]"
330
331
  :class="{
331
332
  'group-hover:!tw-bg-[#dfeef9]': hasClickListener,
332
333
  }"
@@ -339,11 +340,16 @@
339
340
  v-for="(itemAction, i) in itemActions[itemIndex]"
340
341
  :key="i"
341
342
  :class="[
342
- 'tw-text-[#319ed4] tw-cursor-pointer tw-w-[22px] tw-h-[22px] tw-flex tw-items-center tw-justify-center',
343
+ 'tw-text-[#319ed4] tw-cursor-pointer tw-w-[22px] tw-h-[22px] tw-flex tw-items-center tw-justify-center hover:tw-text-[#257fad]',
343
344
  ]"
344
345
  @click.stop="itemAction.clickHandler(item, itemIndex)"
345
346
  >
346
- <VcTooltip>
347
+ <VcTooltip
348
+ placement="bottom"
349
+ :offset="{
350
+ mainAxis: 5,
351
+ }"
352
+ >
347
353
  <VcIcon
348
354
  :icon="itemAction.icon"
349
355
  size="m"
@@ -603,22 +609,25 @@ const mobileTemplateRenderer = ({ item, index }: { item: TableItem | string; ind
603
609
  "div",
604
610
  { class: "tw-border-b tw-border-solid tw-border-b-[#e3e7ec] tw-p-3 tw-gap-2 tw-flex tw-flex-wrap" },
605
611
  props.columns.map((x) => {
606
- return h("div", { class: "tw-grow tw-w-[33%] tw-ml-3 tw-truncate" }, [
612
+ return h("div", { class: "tw-grow tw-w-[33%] tw-ml-3 tw-truncate", key: `mobile-view-item-${index}` }, [
607
613
  h(VcLabel, { class: "tw-mb-1 tw-truncate", required: x?.rules?.required }, () => toValue(x.title)),
608
614
  slots[`item_${x.id}`]
609
- ? slots[`item_${x.id}`]({ item, cell: x, index })
615
+ ? slots[`item_${x.id}`]?.({ item, cell: x, index })
610
616
  : [
611
- h(VcTableCell, {
612
- cell: { ...x, class: "!tw-justify-start" },
613
- item,
614
- class: "",
615
- editing: props.editing,
616
- index,
617
- onUpdate: (event) => {
618
- emit("onEditComplete", { event: event, index });
619
- },
620
- onBlur: (event) => emit("onCellBlur", event),
621
- }),
617
+ typeof item === "object"
618
+ ? h(VcTableCell, {
619
+ cell: { ...x, class: "!tw-justify-start" },
620
+ item,
621
+ key: `mobile-view-cell-${index}`,
622
+ class: "tw-mb-4",
623
+ editing: props.editing,
624
+ index,
625
+ onUpdate: (event) => {
626
+ emit("onEditComplete", { event: event, index });
627
+ },
628
+ onBlur: (event) => emit("onCellBlur", event),
629
+ })
630
+ : undefined,
622
631
  ],
623
632
  ]);
624
633
  }),