@webitel/ui-datalist 1.1.5 → 1.1.6

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 (219) hide show
  1. package/package.json +3 -10
  2. package/src/modules/_shared/createDatalistStore.ts +44 -44
  3. package/src/modules/card/composables/useCardAnyFieldEditedWatcher.ts +15 -15
  4. package/src/modules/card/composables/useCardComponent.ts +69 -67
  5. package/src/modules/card/composables/useCardIsNew.ts +5 -5
  6. package/src/modules/card/composables/useCardRouting.ts +22 -24
  7. package/src/modules/card/composables/useCardSaveAction.ts +15 -15
  8. package/src/modules/card/composables/useCardValidation.ts +22 -24
  9. package/src/modules/card/composables/useItemCardSaveText.ts +14 -14
  10. package/src/modules/card/stores/createCardStore.ts +174 -173
  11. package/src/modules/filter-presets/api/PresetQuery.ts +115 -92
  12. package/src/modules/filter-presets/components/_shared/input-fields/preset-description-field.vue +1 -1
  13. package/src/modules/filter-presets/components/_shared/preset-filters-preview.vue +8 -10
  14. package/src/modules/filter-presets/components/apply-preset/apply-preset-action.vue +119 -97
  15. package/src/modules/filter-presets/components/apply-preset/preset-preview.vue +66 -60
  16. package/src/modules/filter-presets/components/save-preset/overwrite-preset-popup.vue +8 -6
  17. package/src/modules/filter-presets/components/save-preset/save-preset-action.vue +93 -87
  18. package/src/modules/filter-presets/components/save-preset/save-preset-popup.vue +43 -38
  19. package/src/modules/filter-presets/stores/createFilterPresetsStore.ts +50 -45
  20. package/src/modules/filter-presets/stores/headers/headers.ts +20 -20
  21. package/src/modules/filters/classes/Filter.ts +42 -42
  22. package/src/modules/filters/classes/FiltersManager.ts +287 -246
  23. package/src/modules/filters/classes/__tests__/FiltersManager.spec.ts +64 -0
  24. package/src/modules/filters/components/config/dynamic-view/dynamic-filter-config-form-value-input.vue +6 -4
  25. package/src/modules/filters/components/config/dynamic-view/dynamic-filter-config-form.vue +57 -51
  26. package/src/modules/filters/components/config/dynamic-view/dynamic-filter-config-view.vue +2 -2
  27. package/src/modules/filters/components/config/static-view/static-filter-field.vue +16 -18
  28. package/src/modules/filters/components/dynamic-filter-add-action.vue +9 -7
  29. package/src/modules/filters/components/dynamic-filter-panel-wrapper.vue +6 -6
  30. package/src/modules/filters/components/preview/dynamic-filter-preview.vue +50 -48
  31. package/src/modules/filters/components/search-bar/dynamic-filter-search.vue +92 -80
  32. package/src/modules/filters/components/search-bar/types/DynamicFilterSearch.d.ts +1 -1
  33. package/src/modules/filters/components/table-filters-panel.vue +96 -82
  34. package/src/modules/filters/components/types/Filter.types.ts +14 -10
  35. package/src/modules/filters/composables/useFilterConfigsToolkit.ts +143 -136
  36. package/src/modules/filters/createTableFiltersStore.ts +109 -93
  37. package/src/modules/filters/index.ts +24 -23
  38. package/src/modules/filters/modules/filterConfig/classes/FilterConfig.ts +55 -55
  39. package/src/modules/filters/modules/filterConfig/classes/createFilterConfig.ts +19 -19
  40. package/src/modules/filters/modules/filterConfig/components/_custom/filterConfig.ts +84 -67
  41. package/src/modules/filters/modules/filterConfig/components/_custom/index.ts +3 -3
  42. package/src/modules/filters/modules/filterConfig/components/_custom/type-extension-filter-value-field.vue +24 -16
  43. package/src/modules/filters/modules/filterConfig/components/_custom/type-extension-filter-value-preview.vue +7 -7
  44. package/src/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-filter-value-field.vue +12 -9
  45. package/src/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-filter-value-preview.vue +3 -3
  46. package/src/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-options/date-time-options-filter-value-field.vue +38 -31
  47. package/src/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-options/date-time-options-filter-value-preview.vue +14 -9
  48. package/src/modules/filters/modules/filterConfig/components/_shared/has-options/has-option-filter-value-field.vue +10 -8
  49. package/src/modules/filters/modules/filterConfig/components/_shared/has-options/has-option-filter-value-preview.vue +1 -1
  50. package/src/modules/filters/modules/filterConfig/components/_shared/lookup-filter-preview/lookup-filter-value-preview.vue +4 -4
  51. package/src/modules/filters/modules/filterConfig/components/agent/agent-filter-value-field.vue +22 -14
  52. package/src/modules/filters/modules/filterConfig/components/agent/agent-filter-value-preview.vue +1 -1
  53. package/src/modules/filters/modules/filterConfig/components/agent-status/agent-status-filter-value-field.vue +33 -20
  54. package/src/modules/filters/modules/filterConfig/components/agent-status/agent-status-filter-value-preview.vue +7 -8
  55. package/src/modules/filters/modules/filterConfig/components/amd-result/amd-result-filter-value-field.vue +21 -13
  56. package/src/modules/filters/modules/filterConfig/components/amd-result/amd-result-filter-value-preview.vue +1 -1
  57. package/src/modules/filters/modules/filterConfig/components/auditor/auditor-filter-value-field.vue +33 -19
  58. package/src/modules/filters/modules/filterConfig/components/auditor/auditor-filter-value-preview.vue +1 -1
  59. package/src/modules/filters/modules/filterConfig/components/auditor/index.ts +10 -9
  60. package/src/modules/filters/modules/filterConfig/components/call-direction/call-direction-filter-value-field.vue +21 -13
  61. package/src/modules/filters/modules/filterConfig/components/call-direction/call-direction-filter-value-preview.vue +1 -1
  62. package/src/modules/filters/modules/filterConfig/components/case-actual-reaction-time/case-actual-reaction-time-filter-value-field.vue +2 -2
  63. package/src/modules/filters/modules/filterConfig/components/case-actual-reaction-time/case-actual-reaction-time-filter-value-preview.vue +2 -2
  64. package/src/modules/filters/modules/filterConfig/components/case-actual-resolution-time/case-actual-resolution-time-filter-value-field.vue +2 -2
  65. package/src/modules/filters/modules/filterConfig/components/case-actual-resolution-time/case-actual-resolution-time-filter-value-preview.vue +2 -2
  66. package/src/modules/filters/modules/filterConfig/components/case-assignee/case-assignee-filter-value-field.vue +36 -25
  67. package/src/modules/filters/modules/filterConfig/components/case-assignee/case-assignee-filter-value-preview.vue +15 -13
  68. package/src/modules/filters/modules/filterConfig/components/case-assignee/filterConfig.ts +24 -18
  69. package/src/modules/filters/modules/filterConfig/components/case-assignee/index.ts +3 -3
  70. package/src/modules/filters/modules/filterConfig/components/case-author/case-author-filter-value-field.vue +22 -14
  71. package/src/modules/filters/modules/filterConfig/components/case-author/case-author-filter-value-preview.vue +4 -4
  72. package/src/modules/filters/modules/filterConfig/components/case-close-reason-groups/case-close-reason-groups-filter-value-field.vue +42 -34
  73. package/src/modules/filters/modules/filterConfig/components/case-close-reason-groups/case-close-reason-groups-filter-value-preview.vue +1 -1
  74. package/src/modules/filters/modules/filterConfig/components/case-close-reason-groups/config.js +1 -1
  75. package/src/modules/filters/modules/filterConfig/components/case-impacted/case-impacted-filter-value-field.vue +22 -14
  76. package/src/modules/filters/modules/filterConfig/components/case-impacted/case-impacted-filter-value-preview.vue +1 -1
  77. package/src/modules/filters/modules/filterConfig/components/case-priority/case-priority-filter-value-field.vue +22 -14
  78. package/src/modules/filters/modules/filterConfig/components/case-priority/case-priority-filter-value-preview.vue +1 -1
  79. package/src/modules/filters/modules/filterConfig/components/case-reaction-time/case-reaction-time-filter-value-field.vue +2 -2
  80. package/src/modules/filters/modules/filterConfig/components/case-reaction-time/case-reaction-time-filter-value-preview.vue +2 -2
  81. package/src/modules/filters/modules/filterConfig/components/case-reporter/case-reporter-filter-value-field.vue +22 -14
  82. package/src/modules/filters/modules/filterConfig/components/case-reporter/case-reporter-filter-value-preview.vue +1 -1
  83. package/src/modules/filters/modules/filterConfig/components/case-resolution-time/case-resolution-time-filter-value-field.vue +2 -2
  84. package/src/modules/filters/modules/filterConfig/components/case-resolution-time/case-resolution-time-filter-value-preview.vue +2 -2
  85. package/src/modules/filters/modules/filterConfig/components/case-service/case-service-filter-value-preview.vue +4 -4
  86. package/src/modules/filters/modules/filterConfig/components/case-sla/case-sla-filter-value-field.vue +22 -14
  87. package/src/modules/filters/modules/filterConfig/components/case-sla/case-sla-filter-value-preview.vue +1 -1
  88. package/src/modules/filters/modules/filterConfig/components/case-sla-condition/case-sla-condition-filter-value-field.vue +40 -32
  89. package/src/modules/filters/modules/filterConfig/components/case-sla-condition/case-sla-condition-filter-value-preview.vue +1 -1
  90. package/src/modules/filters/modules/filterConfig/components/case-source/case-source-filter-value-field.vue +22 -14
  91. package/src/modules/filters/modules/filterConfig/components/case-source/case-source-filter-value-preview.vue +1 -1
  92. package/src/modules/filters/modules/filterConfig/components/case-status/case-status-filter-value-field.vue +42 -34
  93. package/src/modules/filters/modules/filterConfig/components/case-status/case-status-filter-value-preview.vue +1 -1
  94. package/src/modules/filters/modules/filterConfig/components/case-status/config.js +1 -1
  95. package/src/modules/filters/modules/filterConfig/components/contact/contact-filter-value-field.vue +22 -14
  96. package/src/modules/filters/modules/filterConfig/components/contact/contact-filter-value-preview.vue +1 -1
  97. package/src/modules/filters/modules/filterConfig/components/contact-group/contact-group-filter-value-field.vue +57 -46
  98. package/src/modules/filters/modules/filterConfig/components/contact-group/contact-group-filter-value-preview.vue +15 -13
  99. package/src/modules/filters/modules/filterConfig/components/contact-group/index.ts +39 -27
  100. package/src/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-field.vue +33 -22
  101. package/src/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-preview.vue +4 -5
  102. package/src/modules/filters/modules/filterConfig/components/contact-label/index.ts +20 -15
  103. package/src/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-field.vue +24 -16
  104. package/src/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-preview.vue +4 -4
  105. package/src/modules/filters/modules/filterConfig/components/contact-owner/index.ts +10 -9
  106. package/src/modules/filters/modules/filterConfig/components/created-at-from/created-at-from-filter-value-field.vue +1 -1
  107. package/src/modules/filters/modules/filterConfig/components/created-at-from/created-at-from-filter-value-preview.vue +3 -3
  108. package/src/modules/filters/modules/filterConfig/components/created-at-to/created-at-to-filter-value-field.vue +1 -1
  109. package/src/modules/filters/modules/filterConfig/components/created-at-to/created-at-to-filter-value-preview.vue +3 -3
  110. package/src/modules/filters/modules/filterConfig/components/gateway/gateway-filter-value-field.vue +27 -15
  111. package/src/modules/filters/modules/filterConfig/components/gateway/gateway-filter-value-preview.vue +4 -4
  112. package/src/modules/filters/modules/filterConfig/components/grantee/grantee-filter-value-field.vue +22 -14
  113. package/src/modules/filters/modules/filterConfig/components/grantee/grantee-filter-value-preview.vue +4 -4
  114. package/src/modules/filters/modules/filterConfig/components/hangup-cause/hangup-cause-filter-value-field.vue +21 -13
  115. package/src/modules/filters/modules/filterConfig/components/hangup-cause/hangup-cause-filter-value-preview.vue +1 -1
  116. package/src/modules/filters/modules/filterConfig/components/has-attachment/has-attachment-filter-value-field.vue +21 -13
  117. package/src/modules/filters/modules/filterConfig/components/has-attachment/has-attachment-filter-value-preview.vue +1 -1
  118. package/src/modules/filters/modules/filterConfig/components/has-file/has-file-filter-value-field.vue +11 -7
  119. package/src/modules/filters/modules/filterConfig/components/has-file/has-file-filter-value-preview.vue +1 -1
  120. package/src/modules/filters/modules/filterConfig/components/has-rating/has-rating-filter-value-field.vue +11 -7
  121. package/src/modules/filters/modules/filterConfig/components/has-rating/has-rating-filter-value-preview.vue +1 -1
  122. package/src/modules/filters/modules/filterConfig/components/has-transcription/has-transcription-filter-value-field.vue +11 -7
  123. package/src/modules/filters/modules/filterConfig/components/has-transcription/has-transcription-filter-value-preview.vue +1 -1
  124. package/src/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-field.vue +19 -14
  125. package/src/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-preview.vue +1 -1
  126. package/src/modules/filters/modules/filterConfig/components/index.ts +261 -259
  127. package/src/modules/filters/modules/filterConfig/components/queue/index.ts +10 -9
  128. package/src/modules/filters/modules/filterConfig/components/queue/queue-filter-value-field.vue +33 -19
  129. package/src/modules/filters/modules/filterConfig/components/queue/queue-filter-value-preview.vue +1 -1
  130. package/src/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-field.vue +33 -20
  131. package/src/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-preview.vue +7 -8
  132. package/src/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-field.vue +33 -20
  133. package/src/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-preview.vue +7 -7
  134. package/src/modules/filters/modules/filterConfig/components/rated-by/rated-by-filter-value-field.vue +22 -14
  135. package/src/modules/filters/modules/filterConfig/components/rated-by/rated-by-filter-value-preview.vue +4 -4
  136. package/src/modules/filters/modules/filterConfig/components/rating/rating-from-to-filter-value-preview.vue +1 -1
  137. package/src/modules/filters/modules/filterConfig/components/region/index.ts +10 -9
  138. package/src/modules/filters/modules/filterConfig/components/region/region-filter-value-field.vue +33 -19
  139. package/src/modules/filters/modules/filterConfig/components/region/region-filter-value-preview.vue +1 -1
  140. package/src/modules/filters/modules/filterConfig/components/score/score-from-to-filter-value-preview.vue +1 -1
  141. package/src/modules/filters/modules/filterConfig/components/skill/index.ts +10 -9
  142. package/src/modules/filters/modules/filterConfig/components/skill/skill-filter-value-field.vue +33 -19
  143. package/src/modules/filters/modules/filterConfig/components/skill/skill-filter-value-preview.vue +1 -1
  144. package/src/modules/filters/modules/filterConfig/components/supervisor/index.ts +10 -9
  145. package/src/modules/filters/modules/filterConfig/components/supervisor/supervisor-filter-value-field.vue +33 -19
  146. package/src/modules/filters/modules/filterConfig/components/supervisor/supervisor-filter-value-preview.vue +1 -1
  147. package/src/modules/filters/modules/filterConfig/components/tag/tag-filter-value-field.vue +21 -13
  148. package/src/modules/filters/modules/filterConfig/components/tag/tag-filter-value-preview.vue +10 -10
  149. package/src/modules/filters/modules/filterConfig/components/talk-duration/TalkDurationFilter.d.ts +2 -2
  150. package/src/modules/filters/modules/filterConfig/components/talk-duration/talk-duration-filter-value-field.vue +3 -1
  151. package/src/modules/filters/modules/filterConfig/components/talk-duration/talk-duration-filter-value-preview.vue +1 -1
  152. package/src/modules/filters/modules/filterConfig/components/team/index.ts +10 -10
  153. package/src/modules/filters/modules/filterConfig/components/team/team-filter-value-field.vue +33 -19
  154. package/src/modules/filters/modules/filterConfig/components/team/team-filter-value-preview.vue +1 -1
  155. package/src/modules/filters/modules/filterConfig/components/total-duration/TotalDurationFilter.d.ts +2 -2
  156. package/src/modules/filters/modules/filterConfig/components/total-duration/total-duration-filter-value-field.vue +3 -1
  157. package/src/modules/filters/modules/filterConfig/components/total-duration/total-duration-filter-value-preview.vue +1 -1
  158. package/src/modules/filters/modules/filterConfig/components/user/user-filter-value-field.vue +22 -14
  159. package/src/modules/filters/modules/filterConfig/components/user/user-filter-value-preview.vue +4 -4
  160. package/src/modules/filters/modules/filterConfig/components/utilization-progress/utilization-progress-filter-value-field.vue +33 -20
  161. package/src/modules/filters/modules/filterConfig/components/utilization-progress/utilization-progress-filter-value-preview.vue +1 -2
  162. package/src/modules/filters/modules/filterConfig/components/variable/variable-filter-value-preview.vue +1 -1
  163. package/src/modules/filters/modules/filterConfig/composables/booleanFilterToolkit.ts +31 -23
  164. package/src/modules/filters/modules/filterConfig/composables/useAgentStatusOptions.ts +16 -15
  165. package/src/modules/filters/modules/filterConfig/composables/useFromToSecToPreviewTime.ts +26 -26
  166. package/src/modules/filters/modules/filterConfig/composables/useQueuePeriodOptions.ts +66 -36
  167. package/src/modules/filters/modules/filterConfig/composables/useQueueTypeOptions.ts +12 -13
  168. package/src/modules/filters/modules/filterConfig/enums/FilterOption.ts +51 -51
  169. package/src/modules/filters/modules/filterConfig/enums/options/AMDResultOptions.ts +29 -29
  170. package/src/modules/filters/modules/filterConfig/enums/options/BooleanFilterOptions.ts +8 -8
  171. package/src/modules/filters/modules/filterConfig/enums/options/CallDirectionFilterOptions.ts +20 -11
  172. package/src/modules/filters/modules/filterConfig/enums/options/CallHistoryTagFilterOptions.ts +5 -5
  173. package/src/modules/filters/modules/filterConfig/enums/options/HangupCauseFilterOptions.ts +257 -257
  174. package/src/modules/filters/modules/filterConfig/enums/options/UtilizationProgressOptions.ts +16 -16
  175. package/src/modules/filters/modules/filterConfig/types/DynamicFilterPreviewComponent.ts +3 -3
  176. package/src/modules/filters/scripts/utils.ts +13 -13
  177. package/src/modules/headers/createTableHeadersStore.ts +278 -251
  178. package/src/modules/pagination/createTablePaginationStore.ts +55 -52
  179. package/src/modules/persist/PersistedStorage.types.ts +33 -31
  180. package/src/modules/persist/useLocalStoragePersistedStorage.ts +24 -24
  181. package/src/modules/persist/usePersistedStorage.ts +117 -105
  182. package/src/modules/persist/useRoutePersistedStorage.ts +33 -31
  183. package/src/modules/scripts/utils.ts +13 -13
  184. package/src/modules/table/createTableStore.store.ts +352 -316
  185. package/src/modules/types/StoreProvider.ts +3 -3
  186. package/src/modules/types/createDatalistStore.types.ts +12 -9
  187. package/src/modules/types/tableStore.types.ts +44 -44
  188. package/types/modules/card/composables/useCardRouting.d.ts +1 -1
  189. package/types/modules/card/composables/useCardSaveAction.d.ts +1 -1
  190. package/types/modules/filter-presets/components/_shared/preset-filters-preview.vue.d.ts +1 -1
  191. package/types/modules/filter-presets/components/apply-preset/apply-preset-action.vue.d.ts +1 -1
  192. package/types/modules/filter-presets/components/apply-preset/preset-preview.vue.d.ts +1 -1
  193. package/types/modules/filter-presets/components/save-preset/save-preset-action.vue.d.ts +1 -1
  194. package/types/modules/filter-presets/components/save-preset/save-preset-popup.vue.d.ts +1 -1
  195. package/types/modules/filter-presets/stores/createFilterPresetsStore.d.ts +16 -4
  196. package/types/modules/filters/classes/FiltersManager.d.ts +4 -1
  197. package/types/modules/filters/components/config/dynamic-view/dynamic-filter-config-form-value-input.vue.d.ts +1 -1
  198. package/types/modules/filters/components/config/dynamic-view/dynamic-filter-config-form.vue.d.ts +2 -2
  199. package/types/modules/filters/components/dynamic-filter-add-action.vue.d.ts +2 -2
  200. package/types/modules/filters/components/table-filters-panel.vue.d.ts +4 -4
  201. package/types/modules/filters/components/types/Filter.types.d.ts +9 -3
  202. package/types/modules/filters/createTableFiltersStore.d.ts +8 -2
  203. package/types/modules/filters/modules/filterConfig/components/_custom/filterConfig.d.ts +2 -2
  204. package/types/modules/filters/modules/filterConfig/components/case-assignee/case-assignee-filter-value-field.vue.d.ts +1 -1
  205. package/types/modules/filters/modules/filterConfig/components/case-assignee/case-assignee-filter-value-preview.vue.d.ts +1 -1
  206. package/types/modules/filters/modules/filterConfig/components/contact-group/contact-group-filter-value-preview.vue.d.ts +1 -1
  207. package/types/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-field.vue.d.ts +1 -1
  208. package/types/modules/filters/modules/filterConfig/components/has-file/has-file-filter-value-field.vue.d.ts +1 -1
  209. package/types/modules/filters/modules/filterConfig/components/has-rating/has-rating-filter-value-field.vue.d.ts +1 -1
  210. package/types/modules/filters/modules/filterConfig/components/has-transcription/has-transcription-filter-value-field.vue.d.ts +1 -1
  211. package/types/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-field.vue.d.ts +2 -2
  212. package/types/modules/filters/modules/filterConfig/components/index.d.ts +14 -14
  213. package/types/modules/filters/modules/filterConfig/composables/booleanFilterToolkit.d.ts +1 -1
  214. package/types/modules/filters/modules/filterConfig/enums/options/AMDResultOptions.d.ts +1 -1
  215. package/types/modules/filters/modules/filterConfig/enums/options/CallDirectionFilterOptions.d.ts +4 -1
  216. package/types/modules/filters/modules/filterConfig/enums/options/CallHistoryTagFilterOptions.d.ts +1 -1
  217. package/types/modules/filters/modules/filterConfig/enums/options/HangupCauseFilterOptions.d.ts +1 -1
  218. package/types/modules/filters/scripts/utils.d.ts +1 -1
  219. package/types/modules/table/createTableStore.store.d.ts +16 -4
@@ -9,182 +9,183 @@ import { z } from 'zod/v4';
9
9
  import { CardItemId, CardParentId } from '../types/CardStore.types';
10
10
 
11
11
  const defaultRegleValidationOptions: RegleSchemaBehaviourOptions &
12
- RegleBehaviourOptions = {
13
- autoDirty: true, // compute errors only on $validate() fn (btn click)
14
- syncState: {
15
- onValidate: true, // make zod defaults fill state
16
- },
12
+ RegleBehaviourOptions = {
13
+ autoDirty: true, // compute errors only on $validate() fn (btn click)
14
+ syncState: {
15
+ onValidate: true, // make zod defaults fill state
16
+ },
17
17
  };
18
18
 
19
19
  export const createCardStore = <Entity = object>({
20
- namespace,
21
- apiModule,
22
- standardValidationSchema,
23
- validationSchemaOptions,
20
+ namespace,
21
+ apiModule,
22
+ standardValidationSchema,
23
+ validationSchemaOptions,
24
24
  }: {
25
- namespace: string;
26
- standardValidationSchema: z.ZodType;
27
- apiModule: ApiModule<Entity>;
28
- validationSchemaOptions?: RegleSchemaBehaviourOptions;
25
+ namespace: string;
26
+ standardValidationSchema: z.ZodType;
27
+ apiModule: ApiModule<Entity>;
28
+ validationSchemaOptions?: RegleSchemaBehaviourOptions;
29
29
  }) => {
30
- return defineStore(namespace, () => {
31
- // card data vars
32
- const parentId = ref<CardItemId>();
33
- const itemId = ref<CardParentId>();
34
-
35
- // readonly, state on backend
36
- const originalItemInstance = ref<Readonly<Entity>>({} as Entity);
37
-
38
- // draft, changeable using ui controls, but not saved yet
39
- const draftItemInstance = ref<Entity>({} as Entity);
40
-
41
- /**
42
- * sync draft to original, after original changes
43
- * NOTE! it's only 1 way binding
44
- */
45
- watch(originalItemInstance, (value) => {
46
- draftItemInstance.value = structuredClone(toRaw(value));
47
- });
48
-
49
- // card state vars
50
- const validationSchema = ref();
51
-
52
- // processing progress vars
53
- const isLoading = ref(false);
54
- const isSaving = ref(false);
55
- const error = ref(null); // if needed
56
-
57
-
58
- validationSchema.value = useRegleSchema(
59
- draftItemInstance,
60
- standardValidationSchema,
61
- { ...defaultRegleValidationOptions, ...validationSchemaOptions },
62
- );
63
-
64
-
65
- const loadItem = async () => {
66
- isLoading.value = true;
67
- try {
68
- originalItemInstance.value = await apiModule.get({
69
- id: itemId.value,
70
- itemId: itemId.value, // compat, use "id" instead
71
- parentId: parentId.value,
72
- });
73
- } catch (err) {
74
- error.value = err;
75
- throw err;
76
- } finally {
77
- isLoading.value = false;
78
- }
79
- };
80
-
81
- const createItem = ({
82
- data,
83
- parentId,
84
- }: {
85
- data: Entity;
86
- parentId?: string | number | null;
87
- }) => {
88
- return apiModule.add({
89
- itemInstance: data,
90
- parentId,
91
- });
92
- };
93
- const updateItem = ({
94
- data,
95
- itemId,
96
- parentId,
97
- }: {
98
- data: Entity;
99
- itemId: string | number | null;
100
- parentId?: string | number | null;
101
- }) => {
102
- return apiModule.update({
103
- itemInstance: data,
104
- itemId,
105
- parentId,
106
- });
107
- };
108
-
109
- const saveItem = async (draft: Entity) => {
110
- let responseItem: Entity; // use response after add/update instead of sending "get" request
111
-
112
- if (itemId.value) {
113
- responseItem = await updateItem({
114
- data: draft,
115
- itemId: itemId.value,
116
- parentId: parentId.value,
117
- });
118
- } else {
119
- responseItem = await createItem({
120
- data: draft,
121
- parentId: parentId.value,
122
- });
123
- }
124
-
125
- originalItemInstance.value = responseItem;
126
- itemId.value = responseItem.id;
127
- };
128
-
129
- const initializeItemInstance = async () => {
130
- if (itemId.value) {
131
- await loadItem();
132
- } else if (standardValidationSchema) {
133
- draftItemInstance.value = await getDefaultsFromZodSchema(
134
- standardValidationSchema,
135
- draftItemInstance.value,
136
- );
137
- } else {
138
- draftItemInstance.value = {} as Entity;
139
- }
140
- };
141
-
142
- const initialize = ({
143
- itemId: initialItemId,
144
- parentId: initialParentId,
145
- }: {
146
- itemId?: string | number;
147
- parentId?: string | number;
148
- } = {}) => {
149
- if (initialParentId) {
150
- parentId.value = initialParentId;
151
- }
152
-
153
- if (initialItemId && initialItemId !== 'new') {
154
- itemId.value = initialItemId;
155
- }
156
-
157
- return initializeItemInstance();
158
- };
159
-
160
- const $reset = () => {
161
- itemId.value = null;
162
- parentId.value = null;
163
-
164
- originalItemInstance.value = {} as Entity;
165
-
166
- validationSchema.value.r$.$reset();
167
-
168
- isLoading.value = false;
169
- isSaving.value = false;
170
- error.value = null;
171
- };
172
-
173
- return {
174
- parentId,
175
- itemId,
176
- originalItemInstance,
177
- draftItemInstance,
178
-
179
- validationSchema,
180
-
181
- isLoading,
182
- isSaving,
183
- error,
184
-
185
- initialize,
186
- saveItem,
187
- $reset,
188
- };
189
- });
30
+ return defineStore(namespace, () => {
31
+ // card data vars
32
+ const parentId = ref<CardItemId>();
33
+ const itemId = ref<CardParentId>();
34
+
35
+ // readonly, state on backend
36
+ const originalItemInstance = ref<Readonly<Entity>>({} as Entity);
37
+
38
+ // draft, changeable using ui controls, but not saved yet
39
+ const draftItemInstance = ref<Entity>({} as Entity);
40
+
41
+ /**
42
+ * sync draft to original, after original changes
43
+ * NOTE! it's only 1 way binding
44
+ */
45
+ watch(originalItemInstance, (value) => {
46
+ draftItemInstance.value = structuredClone(toRaw(value));
47
+ });
48
+
49
+ // card state vars
50
+ const validationSchema = ref();
51
+
52
+ // processing progress vars
53
+ const isLoading = ref(false);
54
+ const isSaving = ref(false);
55
+ const error = ref(null); // if needed
56
+
57
+ validationSchema.value = useRegleSchema(
58
+ draftItemInstance,
59
+ standardValidationSchema,
60
+ {
61
+ ...defaultRegleValidationOptions,
62
+ ...validationSchemaOptions,
63
+ },
64
+ );
65
+
66
+ const loadItem = async () => {
67
+ isLoading.value = true;
68
+ try {
69
+ originalItemInstance.value = await apiModule.get({
70
+ id: itemId.value,
71
+ itemId: itemId.value, // compat, use "id" instead
72
+ parentId: parentId.value,
73
+ });
74
+ } catch (err) {
75
+ error.value = err;
76
+ throw err;
77
+ } finally {
78
+ isLoading.value = false;
79
+ }
80
+ };
81
+
82
+ const createItem = ({
83
+ data,
84
+ parentId,
85
+ }: {
86
+ data: Entity;
87
+ parentId?: string | number | null;
88
+ }) => {
89
+ return apiModule.add({
90
+ itemInstance: data,
91
+ parentId,
92
+ });
93
+ };
94
+ const updateItem = ({
95
+ data,
96
+ itemId,
97
+ parentId,
98
+ }: {
99
+ data: Entity;
100
+ itemId: string | number | null;
101
+ parentId?: string | number | null;
102
+ }) => {
103
+ return apiModule.update({
104
+ itemInstance: data,
105
+ itemId,
106
+ parentId,
107
+ });
108
+ };
109
+
110
+ const saveItem = async (draft: Entity) => {
111
+ let responseItem: Entity; // use response after add/update instead of sending "get" request
112
+
113
+ if (itemId.value) {
114
+ responseItem = await updateItem({
115
+ data: draft,
116
+ itemId: itemId.value,
117
+ parentId: parentId.value,
118
+ });
119
+ } else {
120
+ responseItem = await createItem({
121
+ data: draft,
122
+ parentId: parentId.value,
123
+ });
124
+ }
125
+
126
+ originalItemInstance.value = responseItem;
127
+ itemId.value = responseItem.id;
128
+ };
129
+
130
+ const initializeItemInstance = async () => {
131
+ if (itemId.value) {
132
+ await loadItem();
133
+ } else if (standardValidationSchema) {
134
+ draftItemInstance.value = await getDefaultsFromZodSchema(
135
+ standardValidationSchema,
136
+ draftItemInstance.value,
137
+ );
138
+ } else {
139
+ draftItemInstance.value = {} as Entity;
140
+ }
141
+ };
142
+
143
+ const initialize = ({
144
+ itemId: initialItemId,
145
+ parentId: initialParentId,
146
+ }: {
147
+ itemId?: string | number;
148
+ parentId?: string | number;
149
+ } = {}) => {
150
+ if (initialParentId) {
151
+ parentId.value = initialParentId;
152
+ }
153
+
154
+ if (initialItemId && initialItemId !== 'new') {
155
+ itemId.value = initialItemId;
156
+ }
157
+
158
+ return initializeItemInstance();
159
+ };
160
+
161
+ const $reset = () => {
162
+ itemId.value = null;
163
+ parentId.value = null;
164
+
165
+ originalItemInstance.value = {} as Entity;
166
+
167
+ validationSchema.value.r$.$reset();
168
+
169
+ isLoading.value = false;
170
+ isSaving.value = false;
171
+ error.value = null;
172
+ };
173
+
174
+ return {
175
+ parentId,
176
+ itemId,
177
+ originalItemInstance,
178
+ draftItemInstance,
179
+
180
+ validationSchema,
181
+
182
+ isLoading,
183
+ isSaving,
184
+ error,
185
+
186
+ initialize,
187
+ saveItem,
188
+ $reset,
189
+ };
190
+ });
190
191
  };
@@ -1,21 +1,21 @@
1
1
  import {
2
- getDefaultGetListResponse,
3
- getDefaultGetParams,
4
- getDefaultInstance,
5
- getDefaultOpenAPIConfig,
2
+ getDefaultGetListResponse,
3
+ getDefaultGetParams,
4
+ getDefaultInstance,
5
+ getDefaultOpenAPIConfig,
6
6
  } from '@webitel/ui-sdk/api/defaults/index';
7
7
  import applyTransform, {
8
- camelToSnake,
9
- merge,
10
- notify,
11
- skipIf,
12
- snakeToCamel,
13
- starToSearch,
8
+ camelToSnake,
9
+ merge,
10
+ notify,
11
+ skipIf,
12
+ snakeToCamel,
13
+ starToSearch,
14
14
  } from '@webitel/ui-sdk/api/transformers/index';
15
15
  import {
16
- EngineCreatePresetQueryRequest,
17
- EnginePresetQuery,
18
- PresetQueryServiceApiFactory,
16
+ EngineCreatePresetQueryRequest,
17
+ EnginePresetQuery,
18
+ PresetQueryServiceApiFactory,
19
19
  } from 'webitel-sdk';
20
20
 
21
21
  const instance = getDefaultInstance();
@@ -24,106 +24,129 @@ const configuration = getDefaultOpenAPIConfig();
24
24
  const service = PresetQueryServiceApiFactory(configuration, '', instance);
25
25
 
26
26
  type GetPresetListRequestConfig = {
27
- transformers: {
28
- useStarToSearch?: boolean;
29
- };
27
+ transformers: {
28
+ useStarToSearch?: boolean;
29
+ };
30
30
  };
31
31
 
32
32
  const getPresetList = async (params, config: GetPresetListRequestConfig) => {
33
- const useStarToSearch = config?.transformers?.useStarToSearch ?? true;
33
+ const useStarToSearch = config?.transformers?.useStarToSearch ?? true;
34
34
 
35
- const { page, size, search, sort, fields, presetNamespace, id } =
36
- applyTransform(params, [
37
- merge(getDefaultGetParams()),
38
- (params) => (useStarToSearch ? starToSearch('search')(params) : params),
39
- ]);
40
- try {
41
- const response = await service.searchPresetQuery(
42
- page,
43
- size,
44
- search,
45
- sort || '-created_at',
46
- fields || ['id', 'name', 'preset', 'description'],
47
- id,
48
- [presetNamespace],
49
- );
50
- const { items, next } = applyTransform(response.data, [
51
- snakeToCamel(),
52
- merge(getDefaultGetListResponse()),
53
- ]);
54
- return {
55
- items,
56
- next,
57
- };
58
- } catch (err) {
59
- throw applyTransform(err, [notify]);
60
- }
35
+ const { page, size, search, sort, fields, presetNamespace, id } =
36
+ applyTransform(params, [
37
+ merge(getDefaultGetParams()),
38
+ (params) => (useStarToSearch ? starToSearch('search')(params) : params),
39
+ ]);
40
+ try {
41
+ const response = await service.searchPresetQuery(
42
+ page,
43
+ size,
44
+ search,
45
+ sort || '-created_at',
46
+ fields || [
47
+ 'id',
48
+ 'name',
49
+ 'preset',
50
+ 'description',
51
+ ],
52
+ id,
53
+ [
54
+ presetNamespace,
55
+ ],
56
+ );
57
+ const { items, next } = applyTransform(response.data, [
58
+ snakeToCamel(),
59
+ merge(getDefaultGetListResponse()),
60
+ ]);
61
+ return {
62
+ items,
63
+ next,
64
+ };
65
+ } catch (err) {
66
+ throw applyTransform(err, [
67
+ notify,
68
+ ]);
69
+ }
61
70
  };
62
71
 
63
72
  const getPreset = async ({ id }) => {
64
- try {
65
- const response = await service.readPresetQuery(id);
66
- return applyTransform(response.data, [snakeToCamel()]);
67
- } catch (err) {
68
- throw applyTransform(err, [notify]);
69
- }
73
+ try {
74
+ const response = await service.readPresetQuery(id);
75
+ return applyTransform(response.data, [
76
+ snakeToCamel(),
77
+ ]);
78
+ } catch (err) {
79
+ throw applyTransform(err, [
80
+ notify,
81
+ ]);
82
+ }
70
83
  };
71
84
 
72
85
  const addPreset = async ({
73
- preset,
74
- namespace,
86
+ preset,
87
+ namespace,
75
88
  }: {
76
- preset: EngineCreatePresetQueryRequest;
77
- namespace: string;
89
+ preset: EngineCreatePresetQueryRequest;
90
+ namespace: string;
78
91
  }): Promise<EnginePresetQuery> => {
79
- const item = applyTransform(preset, [
80
- camelToSnake(),
81
- (item) => {
82
- item.preset.namespace = namespace;
83
- item.section = namespace;
84
- return item;
85
- },
86
- ]);
87
- try {
88
- const response = await service.createPresetQuery(item);
89
- return applyTransform(response.data, [snakeToCamel()]);
90
- } catch (err) {
91
- throw applyTransform(err, [skipIf(notify, (err) => err.status === 409)]);
92
- }
92
+ const item = applyTransform(preset, [
93
+ camelToSnake(),
94
+ (item) => {
95
+ item.preset.namespace = namespace;
96
+ item.section = namespace;
97
+ return item;
98
+ },
99
+ ]);
100
+ try {
101
+ const response = await service.createPresetQuery(item);
102
+ return applyTransform(response.data, [
103
+ snakeToCamel(),
104
+ ]);
105
+ } catch (err) {
106
+ throw applyTransform(err, [
107
+ skipIf(notify, (err) => err.status === 409),
108
+ ]);
109
+ }
93
110
  };
94
111
 
95
112
  const updatePreset = async ({ item: itemInstance, id, namespace }) => {
96
- const item = applyTransform(itemInstance, [
97
- camelToSnake(),
98
- (item) => {
99
- item.preset.namespace = namespace;
100
- item.section = namespace;
101
- return item;
102
- },
103
- ]);
104
- try {
105
- const response = await service.updatePresetQuery(id, item);
106
- return applyTransform(response.data, [snakeToCamel()]);
107
- } catch (err) {
108
- throw applyTransform(err, [skipIf(notify, (err) => err.status === 409)]);
109
- }
113
+ const item = applyTransform(itemInstance, [
114
+ camelToSnake(),
115
+ (item) => {
116
+ item.preset.namespace = namespace;
117
+ item.section = namespace;
118
+ return item;
119
+ },
120
+ ]);
121
+ try {
122
+ const response = await service.updatePresetQuery(id, item);
123
+ return applyTransform(response.data, [
124
+ snakeToCamel(),
125
+ ]);
126
+ } catch (err) {
127
+ throw applyTransform(err, [
128
+ skipIf(notify, (err) => err.status === 409),
129
+ ]);
130
+ }
110
131
  };
111
132
 
112
133
  const deletePreset = async ({ id }) => {
113
- try {
114
- const response = await service.deletePresetQuery(id);
115
- return applyTransform(response.data, []);
116
- } catch (err) {
117
- throw applyTransform(err, [notify]);
118
- }
134
+ try {
135
+ const response = await service.deletePresetQuery(id);
136
+ return applyTransform(response.data, []);
137
+ } catch (err) {
138
+ throw applyTransform(err, [
139
+ notify,
140
+ ]);
141
+ }
119
142
  };
120
143
 
121
144
  const PresetQueryAPI = {
122
- getList: getPresetList,
123
- get: getPreset,
124
- add: addPreset,
125
- update: updatePreset,
126
- delete: deletePreset,
145
+ getList: getPresetList,
146
+ get: getPreset,
147
+ add: addPreset,
148
+ update: updatePreset,
149
+ delete: deletePreset,
127
150
  };
128
151
 
129
152
  export { addPreset, deletePreset, getPresetList, updatePreset };
@@ -22,7 +22,7 @@ import { useI18n } from 'vue-i18n';
22
22
  const model = defineModel<string>();
23
23
 
24
24
  const props = defineProps<{
25
- previewMode?: boolean;
25
+ previewMode?: boolean;
26
26
  }>();
27
27
 
28
28
  const { t } = useI18n();
@@ -21,24 +21,22 @@
21
21
  import { WtLabel } from '@webitel/ui-sdk/components';
22
22
  import { useI18n } from 'vue-i18n';
23
23
 
24
- import type {IFiltersManager} from '../../../filters';
24
+ import type { IFiltersManager } from '../../../filters';
25
25
  import DynamicFilterPanelWrapper from '../../../filters/components/dynamic-filter-panel-wrapper.vue';
26
26
  import DynamicFilterPreview from '../../../filters/components/preview/dynamic-filter-preview.vue';
27
- import { useFilterConfigsToolkit } from "../../../filters/composables/useFilterConfigsToolkit";
28
- import {AnyFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
27
+ import { useFilterConfigsToolkit } from '../../../filters/composables/useFilterConfigsToolkit';
28
+ import { AnyFilterConfig } from '../../../filters/modules/filterConfig/classes/FilterConfig';
29
29
 
30
30
  const props = defineProps<{
31
- filtersManager: IFiltersManager;
32
- filterConfigs: AnyFilterConfig[];
31
+ filtersManager: IFiltersManager;
32
+ filterConfigs: AnyFilterConfig[];
33
33
  }>();
34
34
 
35
35
  const { t } = useI18n();
36
36
 
37
- const {
38
- appliedFilterToFilterConfigMappings,
39
- } = useFilterConfigsToolkit({
40
- filterOptions: props.filterConfigs,
41
- filtersManager: props.filtersManager,
37
+ const { appliedFilterToFilterConfigMappings } = useFilterConfigsToolkit({
38
+ filterOptions: props.filterConfigs,
39
+ filtersManager: props.filtersManager,
42
40
  });
43
41
  </script>
44
42