@vc-shell/framework 1.0.131 → 1.0.133

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 (144) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/core/composables/useAssets/index.ts +0 -1
  3. package/core/composables/useAsync/index.ts +1 -1
  4. package/core/composables/useMenuService/index.ts +9 -10
  5. package/core/composables/useNotifications/index.ts +0 -1
  6. package/core/composables/useUser/index.ts +2 -2
  7. package/core/plugins/modularity/index.ts +3 -9
  8. package/core/plugins/moment/humanize.ts +8 -7
  9. package/core/plugins/validation/rules.ts +1 -1
  10. package/core/types/index.ts +30 -7
  11. package/dist/core/composables/useAssets/index.d.ts.map +1 -1
  12. package/dist/core/composables/useMenuService/index.d.ts +2 -7
  13. package/dist/core/composables/useMenuService/index.d.ts.map +1 -1
  14. package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
  15. package/dist/core/plugins/modularity/index.d.ts.map +1 -1
  16. package/dist/core/plugins/moment/humanize.d.ts.map +1 -1
  17. package/dist/core/types/index.d.ts +28 -7
  18. package/dist/core/types/index.d.ts.map +1 -1
  19. package/dist/framework.js +2465 -2444
  20. package/dist/index.css +1 -1
  21. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +2 -2
  22. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
  23. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
  24. package/dist/shared/components/blade-navigation/types/index.d.ts +1 -21
  25. package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
  26. package/dist/shared/components/popup-handler/types/index.d.ts +3 -3
  27. package/dist/shared/components/popup-handler/types/index.d.ts.map +1 -1
  28. package/dist/shared/components/user-dropdown-button/index.d.ts +8 -8
  29. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
  30. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -1
  31. package/dist/shared/modules/dynamic/components/SchemaRender.d.ts +3 -3
  32. package/dist/shared/modules/dynamic/components/fields/Button.d.ts +1 -1
  33. package/dist/shared/modules/dynamic/components/fields/Card.d.ts +1 -1
  34. package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts +1 -1
  35. package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts +1 -1
  36. package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts +1 -1
  37. package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts.map +1 -1
  38. package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts +1 -1
  39. package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts +1 -1
  40. package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts.map +1 -1
  41. package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts +1 -1
  42. package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts +1 -1
  43. package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts +1 -1
  44. package/dist/shared/modules/dynamic/components/fields/InputField.d.ts +1 -1
  45. package/dist/shared/modules/dynamic/components/fields/InputField.d.ts.map +1 -1
  46. package/dist/shared/modules/dynamic/components/fields/MultivalueField.d.ts +1 -1
  47. package/dist/shared/modules/dynamic/components/fields/MultivalueField.d.ts.map +1 -1
  48. package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts +1 -1
  49. package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts.map +1 -1
  50. package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts +1 -1
  51. package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts +1 -1
  52. package/dist/shared/modules/dynamic/components/fields/ValidationField.d.ts.map +1 -1
  53. package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts +1 -1
  54. package/dist/shared/modules/dynamic/components/fields/props.d.ts +1 -1
  55. package/dist/shared/modules/dynamic/components/fields/props.d.ts.map +1 -1
  56. package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts +1 -1
  57. package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts.map +1 -1
  58. package/dist/shared/modules/dynamic/factories/types/index.d.ts +2 -2
  59. package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
  60. package/dist/shared/modules/dynamic/helpers/nodeBuilder.d.ts.map +1 -1
  61. package/dist/shared/modules/dynamic/index.d.ts +1 -1
  62. package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
  63. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +1 -1
  64. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  65. package/dist/shared/modules/dynamic/types/index.d.ts +1 -2
  66. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  67. package/dist/shared/modules/dynamic/types/models.d.ts.map +1 -1
  68. package/dist/tsconfig.tsbuildinfo +1 -1
  69. package/dist/ui/components/atoms/vc-label/index.d.ts +4 -4
  70. package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +4 -4
  71. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
  72. package/dist/ui/components/molecules/vc-file-upload/index.d.ts +12 -12
  73. package/dist/ui/components/molecules/vc-input-currency/index.d.ts +12 -12
  74. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.stories.d.ts.map +1 -1
  75. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +9 -9
  76. package/dist/ui/components/molecules/vc-pagination/index.d.ts +6 -6
  77. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +37 -37
  78. package/dist/ui/components/molecules/vc-slider/index.d.ts +12 -12
  79. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +1 -1
  80. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
  81. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
  82. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
  83. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +67 -3
  84. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  85. package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts +3 -3
  86. package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
  87. package/dist/ui/components/organisms/vc-gallery/index.d.ts +6 -6
  88. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +18 -18
  89. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  90. package/package.json +4 -4
  91. package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +1 -1
  92. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +1 -1
  93. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +5 -15
  94. package/shared/components/blade-navigation/types/index.ts +1 -22
  95. package/shared/components/popup-handler/types/index.ts +4 -7
  96. package/shared/components/user-dropdown-button/user-dropdown-button.vue +0 -2
  97. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +1 -1
  98. package/shared/modules/dynamic/components/SchemaRender.ts +5 -5
  99. package/shared/modules/dynamic/components/fields/Checkbox.ts +1 -1
  100. package/shared/modules/dynamic/components/fields/DynamicProperty.ts +12 -11
  101. package/shared/modules/dynamic/components/fields/EditorField.ts +1 -1
  102. package/shared/modules/dynamic/components/fields/Fieldset.ts +4 -4
  103. package/shared/modules/dynamic/components/fields/InputField.ts +18 -15
  104. package/shared/modules/dynamic/components/fields/MultivalueField.ts +12 -9
  105. package/shared/modules/dynamic/components/fields/SelectField.ts +12 -9
  106. package/shared/modules/dynamic/components/fields/TextareaField.ts +1 -1
  107. package/shared/modules/dynamic/components/fields/ValidationField.ts +6 -5
  108. package/shared/modules/dynamic/components/fields/props.ts +7 -7
  109. package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +4 -4
  110. package/shared/modules/dynamic/factories/base/useListFactory.ts +1 -1
  111. package/shared/modules/dynamic/factories/types/index.ts +5 -2
  112. package/shared/modules/dynamic/helpers/getters.ts +1 -1
  113. package/shared/modules/dynamic/helpers/nodeBuilder.ts +7 -8
  114. package/shared/modules/dynamic/helpers/override.ts +1 -1
  115. package/shared/modules/dynamic/helpers/toolbarReducer.ts +1 -1
  116. package/shared/modules/dynamic/index.ts +33 -37
  117. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +1 -1
  118. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +0 -1
  119. package/shared/modules/dynamic/types/index.ts +1 -2
  120. package/shared/modules/dynamic/types/models.ts +1 -1
  121. package/shared/pages/LoginPage/components/login/Login.vue +1 -1
  122. package/ui/components/atoms/vc-label/vc-label.vue +2 -2
  123. package/ui/components/atoms/vc-progress/vc-progress.vue +8 -4
  124. package/ui/components/molecules/vc-editor/vc-editor.vue +0 -1
  125. package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +1 -1
  126. package/ui/components/molecules/vc-input/vc-input.vue +5 -3
  127. package/ui/components/molecules/vc-input-currency/vc-input-currency.stories.ts +0 -1
  128. package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +2 -2
  129. package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +1 -1
  130. package/ui/components/molecules/vc-select/vc-select.vue +15 -15
  131. package/ui/components/molecules/vc-textarea/vc-textarea.vue +1 -1
  132. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +1 -1
  133. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +3 -2
  134. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +2 -0
  135. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +1 -1
  136. package/ui/components/organisms/vc-app/vc-app.vue +7 -4
  137. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +1 -1
  138. package/ui/components/organisms/vc-blade/vc-blade.vue +1 -1
  139. package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +3 -3
  140. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +1 -1
  141. package/ui/components/organisms/vc-gallery/vc-gallery.vue +2 -2
  142. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +2 -2
  143. package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +1 -1
  144. package/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue +3 -3
@@ -257,7 +257,7 @@
257
257
  </template>
258
258
 
259
259
  <!-- eslint-disable @typescript-eslint/no-explicit-any -->
260
- <script lang="ts" setup generic="T, P extends { results?: T[] | any; totalCount?: number }">
260
+ <script lang="ts" setup generic="T, P extends { results?: T[]; totalCount?: number }">
261
261
  import { ref, computed, watch, nextTick, Ref, toRefs } from "vue";
262
262
  import { vOnClickOutside } from "@vueuse/components";
263
263
  import * as _ from "lodash-es";
@@ -278,8 +278,8 @@ type FloatingInstanceType = UseFloatingReturn & {
278
278
  };
279
279
  };
280
280
  };
281
-
282
- type Option = T & P["results"][number];
281
+ type ArrayElementType<T> = T extends Array<infer U> ? U : never;
282
+ type Option = T & ArrayElementType<Required<P>["results"]>;
283
283
 
284
284
  defineSlots<{
285
285
  /**
@@ -484,11 +484,7 @@ const emit = defineEmits<{
484
484
  * Emitted when the component needs to change the model; Is also used by v-model
485
485
  */
486
486
 
487
- "update:modelValue": [
488
- inputValue: MaybeArray<
489
- string | Option | (T & P["results"][number] & object)[keyof T | keyof P["results"][number]]
490
- > | null,
491
- ];
487
+ "update:modelValue": [inputValue: MaybeArray<string | Option> | null];
492
488
  /**
493
489
  * Emitted when user wants to filter a value
494
490
  */
@@ -572,12 +568,16 @@ watch(
572
568
  );
573
569
 
574
570
  if (typeof data === "object" && !Array.isArray(data) && "results" in data) {
575
- defaultValue.value = data.results?.filter((x: any) => x[props.optionValue as keyof T] === props.modelValue);
571
+ defaultValue.value = data.results?.filter(
572
+ (x) => x[props.optionValue as keyof T] === props.modelValue,
573
+ ) as Option[];
576
574
  } else if (Array.isArray(data)) {
577
575
  defaultValue.value = data?.filter((x) => x[props.optionValue as keyof T] === props.modelValue);
578
576
  }
579
577
  } else if (props.options && Array.isArray(props.options)) {
580
- defaultValue.value = props.options.filter((x) => x[props.optionValue as keyof T] === props.modelValue);
578
+ defaultValue.value = props.options.filter(
579
+ (x) => x[props.optionValue as keyof T] === props.modelValue,
580
+ ) as Option[];
581
581
  }
582
582
  }
583
583
  }
@@ -592,13 +592,13 @@ watch(
592
592
  try {
593
593
  listLoading.value = true;
594
594
  const data = await props.options();
595
- optionsList.value = data.results;
595
+ optionsList.value = data.results as Option[];
596
596
  totalItems.value = data.totalCount;
597
597
  } finally {
598
598
  listLoading.value = false;
599
599
  }
600
600
  } else if (props.options && Array.isArray(props.options)) {
601
- optionsList.value = props.options;
601
+ optionsList.value = props.options as Option[];
602
602
  }
603
603
  },
604
604
  { immediate: true },
@@ -626,7 +626,7 @@ async function onLoadMore() {
626
626
  try {
627
627
  listLoading.value = true;
628
628
  const data = await props.options(filterString.value, optionsList.value.length);
629
- optionsList.value.push(...data.results);
629
+ optionsList.value.push(...(data.results as Option[]));
630
630
  } finally {
631
631
  listLoading.value = false;
632
632
  }
@@ -820,7 +820,7 @@ function toggleOption(opt: Option) {
820
820
  return;
821
821
  }
822
822
 
823
- const optValue = getOptionValue.value(opt);
823
+ const optValue = getOptionValue.value(opt) as Option[];
824
824
 
825
825
  if (props.multiple !== true) {
826
826
  if (innerValue.value.length === 0 || _.isEqual(getOptionValue.value(innerValue.value[0]), optValue) !== true) {
@@ -832,7 +832,7 @@ function toggleOption(opt: Option) {
832
832
 
833
833
  if (innerValue.value.length === 0) {
834
834
  const val = props.emitValue === true ? optValue : opt;
835
- emit("update:modelValue", props.multiple === true ? [val] : val);
835
+ emit("update:modelValue", props.multiple === true ? ([val] as Option[]) : (val as Option));
836
836
  return;
837
837
  }
838
838
 
@@ -84,7 +84,7 @@ watch(
84
84
  () => props.modelValue,
85
85
  (value) => {
86
86
  emit("update:modelValue", value);
87
- }
87
+ },
88
88
  );
89
89
 
90
90
  // Handle input event to propertly validate value and emit changes
@@ -73,7 +73,7 @@ import { useBladeNavigation } from "./../../../../../../shared";
73
73
  import { ref, watch, nextTick } from "vue";
74
74
 
75
75
  export interface Props {
76
- logo: string;
76
+ logo?: string;
77
77
  title?: string;
78
78
  }
79
79
 
@@ -48,14 +48,15 @@
48
48
  :key="i"
49
49
  >
50
50
  <router-link
51
- :to="nested.url"
51
+ v-if="$hasAccess(nested.permissions!)"
52
+ :to="nested.url!"
52
53
  custom
53
54
  >
54
55
  <div
55
56
  :key="i"
56
57
  :class="[
57
58
  {
58
- 'vc-app-menu-item__child-item_active': isActive(nested.url),
59
+ 'vc-app-menu-item__child-item_active': isActive(nested.url!),
59
60
  },
60
61
  'vc-app-menu-item__child-item',
61
62
  ]"
@@ -6,6 +6,7 @@
6
6
  custom
7
7
  >
8
8
  <vc-app-menu-link
9
+ v-if="isVisible"
9
10
  :sticky="sticky"
10
11
  :icon="icon ?? ''"
11
12
  :title="title ?? ''"
@@ -16,6 +17,7 @@
16
17
  </template>
17
18
  <template v-else>
18
19
  <vc-app-menu-link
20
+ v-if="isVisible"
19
21
  :children="children"
20
22
  :sticky="sticky"
21
23
  :icon="icon ?? ''"
@@ -41,7 +41,7 @@
41
41
  <VcAppMenuItem
42
42
  v-for="item in menuItems"
43
43
  :key="item?.id"
44
- :is-visible="true"
44
+ :is-visible="$hasAccess(item.permissions!)"
45
45
  :url="item.url"
46
46
  :icon="item.icon"
47
47
  :title="item.title as string"
@@ -53,7 +53,10 @@
53
53
  <NotificationDropdown />
54
54
  </slot>
55
55
  <template v-if="$isDesktop.value">
56
- <slot name="toolbar:user-dropdown">
56
+ <slot
57
+ name="toolbar:user-dropdown"
58
+ :user-dropdown="UserDropdownButton"
59
+ >
57
60
  <UserDropdownButton />
58
61
  </slot>
59
62
  </template>
@@ -109,7 +112,7 @@ import { MenuItem } from "../../../../core/types";
109
112
 
110
113
  export interface Props {
111
114
  isReady: boolean;
112
- logo: string;
115
+ logo?: string;
113
116
  version?: string;
114
117
  theme?: "light" | "dark";
115
118
  title?: string;
@@ -125,7 +128,7 @@ defineSlots<{
125
128
  "toolbar:prepend": void;
126
129
  "toolbar:language-selector": void;
127
130
  "toolbar:notifications-dropdown": void;
128
- "toolbar:user-dropdown": void;
131
+ "toolbar:user-dropdown": (props: { userDropdown: typeof UserDropdownButton }) => void;
129
132
  "blade-navigation": void;
130
133
  }>();
131
134
 
@@ -153,7 +156,7 @@ const onMenuItemClick = function (item: MenuItem) {
153
156
  },
154
157
  true,
155
158
  );
156
- } else {
159
+ } else if (!item.routeId && item.url) {
157
160
  router.push(item.url);
158
161
  }
159
162
  };
@@ -57,7 +57,7 @@ function toggleToolbar() {
57
57
 
58
58
  function isToolbarVisible() {
59
59
  const visibleItems = (props.items as { isVisible: boolean }[]).filter(
60
- (item) => item.isVisible === undefined || item.isVisible
60
+ (item) => item.isVisible === undefined || item.isVisible,
61
61
  );
62
62
  return !!visibleItems.length;
63
63
  }
@@ -89,7 +89,7 @@ defineOptions({
89
89
  inheritAttrs: false,
90
90
  });
91
91
 
92
- const props = withDefaults(defineProps<Props>(), {
92
+ withDefaults(defineProps<Props>(), {
93
93
  width: "30%",
94
94
  closable: true,
95
95
  expandable: true,
@@ -190,7 +190,7 @@
190
190
  </template>
191
191
 
192
192
  <!-- eslint-disable @typescript-eslint/no-explicit-any -->
193
- <script lang="ts" setup generic="T extends {[x:string]: any; id?: string}">
193
+ <script lang="ts" setup generic="T extends { [x: string]: any; id?: string }">
194
194
  import { ref, onMounted, computed, Ref } from "vue";
195
195
  import { Field } from "vee-validate";
196
196
  import { useI18n } from "vue-i18n";
@@ -233,12 +233,12 @@ const props = withDefaults(
233
233
  optionsValue: "id",
234
234
  optionsLabel: "value",
235
235
  disabled: false,
236
- }
236
+ },
237
237
  );
238
238
 
239
239
  const emit = defineEmits<{
240
240
  "update:model-value": [
241
- data: { readonly property: T; readonly value: any; readonly dictionary?: any[]; readonly locale?: string }
241
+ data: { readonly property: T; readonly value: any; readonly dictionary?: any[]; readonly locale?: string },
242
242
  ];
243
243
  }>();
244
244
 
@@ -86,7 +86,7 @@ export interface Props {
86
86
  }
87
87
 
88
88
  withDefaults(defineProps<Props>(), {
89
- image: () => ({} as ICommonAsset),
89
+ image: () => ({}) as ICommonAsset,
90
90
  readonly: false,
91
91
  actions: () => ({
92
92
  name: undefined,
@@ -131,7 +131,7 @@ const { open } = usePopup(
131
131
  images: props.images,
132
132
  index: currentIndex.value,
133
133
  },
134
- }))
134
+ })),
135
135
  );
136
136
 
137
137
  watch(
@@ -143,7 +143,7 @@ watch(
143
143
  uploadHidden.value = !!defaultImages.value.length;
144
144
  }
145
145
  },
146
- { deep: true, immediate: true }
146
+ { deep: true, immediate: true },
147
147
  );
148
148
 
149
149
  const onUpload = (files: FileList) => {
@@ -47,7 +47,7 @@
47
47
  :bordered="true"
48
48
  size="s"
49
49
  aspect="1x1"
50
- :src="(value as string)"
50
+ :src="value as string"
51
51
  background="contain"
52
52
  />
53
53
  </template>
@@ -62,7 +62,7 @@
62
62
  v-else-if="cell.type === 'status-icon'"
63
63
  class="tw-flex tw-justify-center"
64
64
  >
65
- <VcStatusIcon :status="(value as boolean)"></VcStatusIcon>
65
+ <VcStatusIcon :status="value as boolean"></VcStatusIcon>
66
66
  </div>
67
67
 
68
68
  <!-- Number cell -->
@@ -86,7 +86,7 @@ watch(
86
86
  () => props.parentExpanded,
87
87
  () => {
88
88
  closePanel();
89
- }
89
+ },
90
90
  );
91
91
 
92
92
  const filterStyle = computed(() => ({
@@ -157,20 +157,20 @@ watch(
157
157
  if (typeof props.item !== "string" && newVal !== props.item.id) {
158
158
  handleOffset();
159
159
  }
160
- }
160
+ },
161
161
  );
162
162
 
163
163
  const rightSwipeActions = computed(
164
164
  () =>
165
165
  itemActions.value &&
166
166
  itemActions.value.length &&
167
- itemActions.value.filter((actions: IActionBuilderResult) => !actions.leftActions)
167
+ itemActions.value.filter((actions: IActionBuilderResult) => !actions.leftActions),
168
168
  );
169
169
  const leftSwipeActions = computed(
170
170
  () =>
171
171
  itemActions.value &&
172
172
  itemActions.value.length &&
173
- itemActions.value.filter((actions: IActionBuilderResult) => actions.leftActions)
173
+ itemActions.value.filter((actions: IActionBuilderResult) => actions.leftActions),
174
174
  );
175
175
 
176
176
  function handleOffset() {