@webitel/ui-sdk 25.4.37 → 25.4.38

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 (182) hide show
  1. package/CHANGELOG.md +376 -238
  2. package/dist/ui-sdk.css +1 -1
  3. package/dist/ui-sdk.js +8735 -8360
  4. package/dist/ui-sdk.umd.cjs +20 -17
  5. package/package.json +42 -37
  6. package/src/api/clients/casePriorities/casePriorities.js +13 -3
  7. package/src/api/clients/caseSources/caseSources.js +13 -24
  8. package/src/api/clients/slas/slas.js +16 -26
  9. package/src/api/clients//321/201ontacts/contacts.js +1 -0
  10. package/src/api/transformers/skipIf/skipIf.ts +8 -3
  11. package/src/api/websocket/WebSocketClientController.js +21 -14
  12. package/src/api/websocket/config.js +5 -4
  13. package/src/components/on-demand/wt-navigation-menu/components/_internals/nav-menu-lvl-1.vue +2 -2
  14. package/src/components/on-demand/wt-navigation-menu/components/_internals/nav-menu-lvl-2.vue +4 -4
  15. package/src/components/on-demand/wt-navigation-menu/components/wt-navigation-menu.vue +5 -5
  16. package/src/components/on-demand/wt-navigation-menu/css/_nav-menu.scss +5 -5
  17. package/src/components/on-demand/wt-save-failed-popup/wt-save-failed-popup.vue +1 -1
  18. package/src/components/on-demand/wt-selection-popup/wt-selection-popup.vue +3 -3
  19. package/src/components/on-demand/wt-start-page/components/start-page-card.vue +6 -6
  20. package/src/components/on-demand/wt-start-page/components/start-page-logo.vue +1 -1
  21. package/src/components/on-demand/wt-start-page/components/wt-start-page.vue +2 -2
  22. package/src/components/transitions/wt-expand-transition.vue +1 -1
  23. package/src/components/wt-action-bar/wt-action-bar.vue +1 -1
  24. package/src/components/wt-app-header/wt-app-header.vue +4 -4
  25. package/src/components/wt-app-header/wt-app-navigator.vue +14 -14
  26. package/src/components/wt-app-header/wt-header-actions.vue +13 -13
  27. package/src/components/wt-avatar/wt-avatar.vue +4 -4
  28. package/src/components/wt-badge/wt-badge.vue +1 -1
  29. package/src/components/wt-button/wt-button.vue +18 -18
  30. package/src/components/wt-button-select/wt-button-select.vue +4 -4
  31. package/src/components/wt-checkbox/wt-checkbox.vue +4 -4
  32. package/src/components/wt-chip/wt-chip.scss +9 -9
  33. package/src/components/wt-confirm-dialog/wt-confirm-dialog.vue +2 -2
  34. package/src/components/wt-context-menu/wt-context-menu.vue +4 -4
  35. package/src/components/wt-datepicker/wt-datepicker.vue +4 -4
  36. package/src/components/wt-divider/wt-divider.vue +11 -11
  37. package/src/components/wt-dual-panel/wt-dual-panel.vue +11 -11
  38. package/src/components/wt-dummy/wt-dummy.vue +2 -2
  39. package/src/components/wt-empty/wt-empty.vue +9 -9
  40. package/src/components/wt-error-page/wt-error-page.vue +4 -4
  41. package/src/components/wt-expansion-panel/wt-expansion-panel.vue +4 -4
  42. package/src/components/wt-headline/wt-headline.vue +4 -4
  43. package/src/components/wt-headline-nav/wt-headline-nav.vue +4 -4
  44. package/src/components/wt-icon/wt-icon.vue +2 -2
  45. package/src/components/wt-icon-action/wt-icon-action.vue +1 -1
  46. package/src/components/wt-icon-btn/wt-icon-btn.vue +1 -1
  47. package/src/components/wt-image/wt-image.vue +1 -1
  48. package/src/components/wt-indicator/wt-indicator.vue +2 -2
  49. package/src/components/wt-input/wt-input.vue +10 -10
  50. package/src/components/wt-input-info/wt-input-info.vue +1 -1
  51. package/src/components/wt-item-link/wt-item-link.vue +1 -1
  52. package/src/components/wt-label/wt-label.vue +1 -1
  53. package/src/components/wt-load-bar/wt-load-bar.vue +5 -5
  54. package/src/components/wt-loader/_internals/wt-loader--md.vue +5 -5
  55. package/src/components/wt-loader/_internals/wt-loader--sm.vue +1 -1
  56. package/src/components/wt-logo/wt-logo.vue +13 -4
  57. package/src/components/wt-navigation-bar/types/WtNavigationBar.d.ts +8 -9
  58. package/src/components/wt-navigation-bar/wt-navigation-bar.vue +17 -17
  59. package/src/components/wt-notification/wt-notification.vue +7 -7
  60. package/src/components/wt-notifications-bar/wt-notifications-bar.vue +2 -2
  61. package/src/components/wt-page-wrapper/wt-page-wrapper.vue +4 -4
  62. package/src/components/wt-player/wt-player.vue +6 -6
  63. package/src/components/wt-popup/wt-popup.vue +18 -18
  64. package/src/components/wt-progress-bar/wt-progress-bar.vue +6 -6
  65. package/src/components/wt-radio/wt-radio.vue +3 -3
  66. package/src/components/wt-rounded-action/wt-rounded-action.vue +3 -3
  67. package/src/components/wt-search-bar/wt-search-bar.vue +9 -9
  68. package/src/components/wt-select/_multiselect.scss +18 -18
  69. package/src/components/wt-select/wt-select.vue +3 -3
  70. package/src/components/wt-slider/wt-slider.vue +12 -12
  71. package/src/components/wt-status-select/wt-status-select.vue +4 -4
  72. package/src/components/wt-stepper/wt-stepper.vue +2 -2
  73. package/src/components/wt-switcher/wt-switcher.vue +8 -8
  74. package/src/components/wt-table/wt-table.vue +5 -5
  75. package/src/components/wt-table-actions/wt-table-actions.vue +1 -1
  76. package/src/components/wt-table-column-select/wt-table-column-select.vue +4 -4
  77. package/src/components/wt-tabs/wt-tabs.vue +9 -9
  78. package/src/components/wt-tags-input/wt-tags-input.vue +8 -8
  79. package/src/components/wt-textarea/wt-textarea.vue +11 -11
  80. package/src/components/wt-time-input/wt-time-input.vue +6 -6
  81. package/src/components/wt-timepicker/wt-timepicker.vue +1 -1
  82. package/src/components/wt-tooltip/wt-tooltip.vue +4 -4
  83. package/src/components/wt-tree/types/WtTreeMode.js +2 -2
  84. package/src/components/wt-tree/wt-tree.vue +9 -9
  85. package/src/components/wt-tree-line/_variables.scss +0 -1
  86. package/src/components/wt-tree-line/types/wt-tree-nested-icons.ts +3 -3
  87. package/src/components/wt-tree-line/wt-tree-line.vue +2 -2
  88. package/src/components/wt-tree-table/wt-tree-table.vue +3 -3
  89. package/src/components/wt-tree-table-row/wt-tree-table-row.vue +1 -1
  90. package/src/composables/useAccessControl/v2/createUserAccessControl.ts +7 -4
  91. package/src/composables/useAccessControl/v2/types/CreateUserAccessControl.d.ts +6 -4
  92. package/src/composables/useWtTable/useWtTable.js +20 -19
  93. package/src/css/main.scss +6 -6
  94. package/src/css/pages/card-page.scss +6 -6
  95. package/src/css/pages/table-page.scss +5 -5
  96. package/src/enums/ComponentSize/ComponentSize.js +9 -9
  97. package/src/enums/CrudAction/CrudAction.js +4 -4
  98. package/src/enums/WebitelApplications/AdminSections.js +37 -37
  99. package/src/enums/WebitelApplications/AuditorSections.js +1 -1
  100. package/src/enums/WebitelApplications/CrmSections.enum.js +2 -1
  101. package/src/enums/WebitelApplications/CrmSections.js +12 -12
  102. package/src/enums/WebitelApplications/CrmSections.ts +13 -13
  103. package/src/enums/WebitelApplications/SupervisorSections.js +3 -3
  104. package/src/enums/WebitelApplications/WtApplication.js +7 -7
  105. package/src/enums/index.js +17 -1
  106. package/src/locale/ru/ru.js +2 -1
  107. package/src/locale/ua/ua.js +2 -1
  108. package/src/mixins/validationMixin/useValidation.js +3 -1
  109. package/src/modules/AgentStatusSelect/components/_internals/wt-cc-pause-cause-popup.vue +1 -1
  110. package/src/modules/AgentStatusSelect/components/_internals/wt-cc-status-select-error-popup.vue +1 -1
  111. package/src/modules/AuditForm/components/audit-form-question-read-wrapper.vue +3 -3
  112. package/src/modules/AuditForm/components/audit-form-question-write-wrapper.vue +4 -4
  113. package/src/modules/AuditForm/components/audit-form-question.vue +2 -2
  114. package/src/modules/AuditForm/components/questions/score/audit-form-question-score.vue +1 -1
  115. package/src/modules/DeleteConfirmationPopup/components/delete-confirmation-popup.vue +1 -1
  116. package/src/modules/Filters/v2/filter-presets/components/_shared/input-fields/preset-description-field.vue +3 -7
  117. package/src/modules/Filters/v2/filter-presets/components/_shared/input-fields/preset-name-field.vue +3 -6
  118. package/src/modules/Filters/v2/filter-presets/components/_shared/preset-filters-preview.vue +8 -15
  119. package/src/modules/Filters/v2/filter-presets/components/apply-preset/apply-preset-action.vue +55 -49
  120. package/src/modules/Filters/v2/filter-presets/components/apply-preset/preset-preview.vue +39 -27
  121. package/src/modules/Filters/v2/filter-presets/components/save-preset/overwrite-preset-popup.vue +3 -1
  122. package/src/modules/Filters/v2/filter-presets/components/save-preset/save-preset-action.vue +40 -24
  123. package/src/modules/Filters/v2/filter-presets/components/save-preset/save-preset-popup.vue +2 -2
  124. package/src/modules/Filters/v2/filter-presets/index.ts +3 -8
  125. package/src/modules/Filters/v2/filter-presets/stores/createFilterPresetsStore.ts +11 -9
  126. package/src/modules/Filters/v2/filter-presets/stores/headers/headers.ts +21 -21
  127. package/src/modules/Filters/v2/filters/components/config/dynamic-filter-config-form.vue +2 -2
  128. package/src/modules/Filters/v2/filters/components/dynamic-filter-add-action.vue +3 -3
  129. package/src/modules/Filters/v2/filters/components/dynamic-filter-panel-wrapper.vue +10 -7
  130. package/src/modules/Filters/v2/filters/components/filter-options/_shared/composables/booleanFilterToolkit.ts +30 -24
  131. package/src/modules/Filters/v2/filters/components/filter-options/_shared/composables/useFromToSecToPreviewTime.ts +28 -28
  132. package/src/modules/Filters/v2/filters/components/filter-options/_shared/date-time-filter/date-time-filter-value-field.vue +9 -6
  133. package/src/modules/Filters/v2/filters/components/filter-options/_shared/has-options/has-option-filter-value-field.vue +2 -2
  134. package/src/modules/Filters/v2/filters/components/filter-options/agent/agent-filter-value-preview.vue +4 -6
  135. package/src/modules/Filters/v2/filters/components/filter-options/amd-result/amd-result-filter-value-preview.vue +0 -2
  136. package/src/modules/Filters/v2/filters/components/filter-options/assignee/assignee-filter-value-preview.vue +8 -13
  137. package/src/modules/Filters/v2/filters/components/filter-options/author/author-filter-value-preview.vue +4 -6
  138. package/src/modules/Filters/v2/filters/components/filter-options/cause/cause-filter-value-preview.vue +0 -1
  139. package/src/modules/Filters/v2/filters/components/filter-options/close-reason-groups-case/close-reason-groups-case-filter-value-field.vue +7 -4
  140. package/src/modules/Filters/v2/filters/components/filter-options/close-reason-groups-case/close-reason-groups-case-filter-value-preview.vue +6 -7
  141. package/src/modules/Filters/v2/filters/components/filter-options/close-reason-groups-case/config.js +2 -1
  142. package/src/modules/Filters/v2/filters/components/filter-options/contact/contact-filter-value-preview.vue +4 -6
  143. package/src/modules/Filters/v2/filters/components/filter-options/contact-group/contact-group-filter-value-preview.vue +5 -10
  144. package/src/modules/Filters/v2/filters/components/filter-options/created-at-from/created-at-from-filter-value-preview.vue +1 -1
  145. package/src/modules/Filters/v2/filters/components/filter-options/created-at-to/created-at-to-filter-value-preview.vue +1 -1
  146. package/src/modules/Filters/v2/filters/components/filter-options/direction/direction-filter-value-preview.vue +1 -1
  147. package/src/modules/Filters/v2/filters/components/filter-options/gateway/gateway-filter-value-preview.vue +4 -6
  148. package/src/modules/Filters/v2/filters/components/filter-options/grantee/grantee-filter-value-preview.vue +4 -6
  149. package/src/modules/Filters/v2/filters/components/filter-options/has-attachment/has-attachment-filter-value-preview.vue +3 -1
  150. package/src/modules/Filters/v2/filters/components/filter-options/has-file/has-file-filter-value-field.vue +1 -1
  151. package/src/modules/Filters/v2/filters/components/filter-options/has-file/has-file-filter-value-preview.vue +2 -4
  152. package/src/modules/Filters/v2/filters/components/filter-options/has-rating/has-rating-filter-value-field.vue +2 -2
  153. package/src/modules/Filters/v2/filters/components/filter-options/has-rating/has-rating-filter-value-preview.vue +2 -4
  154. package/src/modules/Filters/v2/filters/components/filter-options/has-transcription/has-transcription-filter-value-field.vue +2 -3
  155. package/src/modules/Filters/v2/filters/components/filter-options/has-transcription/has-transcription-filter-value-preview.vue +2 -4
  156. package/src/modules/Filters/v2/filters/components/filter-options/impacted/impacted-filter-value-preview.vue +4 -6
  157. package/src/modules/Filters/v2/filters/components/filter-options/index.ts +48 -44
  158. package/src/modules/Filters/v2/filters/components/filter-options/priority-case/config.js +1 -2
  159. package/src/modules/Filters/v2/filters/components/filter-options/priority-case/priority-case-filter-value-preview.vue +4 -6
  160. package/src/modules/Filters/v2/filters/components/filter-options/queue/queue-filter-value-preview.vue +4 -6
  161. package/src/modules/Filters/v2/filters/components/filter-options/rated-by/rated-by-filter-value-preview.vue +4 -6
  162. package/src/modules/Filters/v2/filters/components/filter-options/reporter/reporter-filter-value-preview.vue +4 -6
  163. package/src/modules/Filters/v2/filters/components/filter-options/score/score-from-to-filter-value-field.vue +1 -1
  164. package/src/modules/Filters/v2/filters/components/filter-options/service-case/service-case-filter-value-field.vue +5 -5
  165. package/src/modules/Filters/v2/filters/components/filter-options/sla/sla-filter-value-preview.vue +4 -6
  166. package/src/modules/Filters/v2/filters/components/filter-options/source-case/config.js +1 -2
  167. package/src/modules/Filters/v2/filters/components/filter-options/source-case/source-case-filter-value-preview.vue +4 -6
  168. package/src/modules/Filters/v2/filters/components/filter-options/status-case/config.js +2 -1
  169. package/src/modules/Filters/v2/filters/components/filter-options/status-case/status-case-filter-value-field.vue +7 -4
  170. package/src/modules/Filters/v2/filters/components/filter-options/talk-duration/TalkDurationFilter.d.ts +2 -2
  171. package/src/modules/Filters/v2/filters/components/filter-options/team/team-filter-value-preview.vue +4 -6
  172. package/src/modules/Filters/v2/filters/components/filter-options/total-duration/TotalDurationFilter.d.ts +2 -2
  173. package/src/modules/Filters/v2/filters/components/filter-options/user/user-filter-value-preview.vue +4 -6
  174. package/src/modules/Filters/v2/filters/components/filter-options/variable/variable-filter-value-field.vue +1 -2
  175. package/src/modules/Filters/v2/filters/components/preview/dynamic-filter-preview.vue +4 -6
  176. package/src/modules/Filters/v2/filters/enums/FilterOption.ts +40 -40
  177. package/src/modules/ObjectPermissions/_internals/components/permissions-role-row.vue +1 -1
  178. package/src/modules/ObjectPermissions/components/permissions-tab.vue +56 -57
  179. package/src/modules/TableComponentModule/composables/useTableEmpty.js +1 -1
  180. package/src/modules/Userinfo/v2/stores/__tests__/accessStore.spec.ts +16 -16
  181. package/src/scripts/compareSize.js +9 -9
  182. package/src/scripts/prettifyFileSize.js +0 -1
@@ -7,8 +7,12 @@
7
7
  />
8
8
 
9
9
  <save-preset-popup
10
- v-if="showSaveForm /* v-if is used to re-mount component on each open/close so that each time component data re-inits*/"
11
- v-show="!presetToOverwriteWith /* on 'overwrite preset' popup hide this popup, but don't reset it*/"
10
+ v-if="
11
+ showSaveForm /* v-if is used to re-mount component on each open/close so that each time component data re-inits*/
12
+ "
13
+ v-show="
14
+ !presetToOverwriteWith /* on 'overwrite preset' popup hide this popup, but don't reset it*/
15
+ "
12
16
  :shown="true /* coz visibility is controlled by v-if*/"
13
17
  :filters-manager="props.filtersManager"
14
18
  :namespace="namespace"
@@ -26,16 +30,20 @@
26
30
  </template>
27
31
 
28
32
  <script lang="ts" setup>
29
- import {computed, inject, type Ref,ref} from 'vue';
30
- import {useI18n} from "vue-i18n";
31
- import {EnginePresetQuery} from "webitel-sdk";
33
+ import { computed, inject, type Ref, ref } from 'vue';
34
+ import { useI18n } from 'vue-i18n';
35
+ import { EnginePresetQuery } from 'webitel-sdk';
32
36
 
33
37
  import { WtIconAction } from '../../../../../../components/index';
34
- import {IFiltersManager} from "../../../filters/index";
35
- import {addPreset, getPresetList, updatePreset} from '../../api/PresetQuery.api.ts';
36
- import OverwritePresetPopup from "./overwrite-preset-popup.vue";
37
- import { IconAction } from "../../../../../../enums";
38
- import SavePresetPopup, {SubmitConfig} from "./save-preset-popup.vue";
38
+ import { IFiltersManager } from '../../../filters/index';
39
+ import {
40
+ addPreset,
41
+ getPresetList,
42
+ updatePreset,
43
+ } from '../../api/PresetQuery.api.ts';
44
+ import OverwritePresetPopup from './overwrite-preset-popup.vue';
45
+ import { IconAction } from '../../../../../../enums';
46
+ import SavePresetPopup, { SubmitConfig } from './save-preset-popup.vue';
39
47
 
40
48
  const props = defineProps<{
41
49
  /**
@@ -66,12 +74,16 @@ const showSaveForm = ref(false);
66
74
  */
67
75
  const presetToOverwriteWith: Ref<EnginePresetQuery | null> = ref(null);
68
76
 
69
- const handlePresetSubmit = async (preset: EnginePresetQuery, { onCompleted }: SubmitConfig) => {
77
+ const handlePresetSubmit = async (
78
+ preset: EnginePresetQuery,
79
+ { onCompleted }: SubmitConfig,
80
+ ) => {
70
81
  try {
71
82
  await addPreset({ preset, namespace: props.namespace });
72
83
 
73
84
  eventBus.$emit('notification', {
74
- type: 'success', text: t('systemNotifications.success.create', {
85
+ type: 'success',
86
+ text: t('systemNotifications.success.create', {
75
87
  entity: t('webitelUI.filters.presets.preset'),
76
88
  }),
77
89
  });
@@ -87,15 +99,20 @@ const handlePresetSubmit = async (preset: EnginePresetQuery, { onCompleted }: Su
87
99
  }
88
100
  };
89
101
 
90
- const handlePresetOverwriteConfirmation = async ({ onCompleted }: SubmitConfig) => {
102
+ const handlePresetOverwriteConfirmation = async ({
103
+ onCompleted,
104
+ }: SubmitConfig) => {
91
105
  try {
92
- const {items} = await getPresetList({
93
- search: presetToOverwriteWith.value.name,
94
- presetNamespace: props.namespace,
95
- }, {
96
- transformers: {useStarToSearch: false},
97
- });
98
- const {id: existingPresetId} = items[0];
106
+ const { items } = await getPresetList(
107
+ {
108
+ search: presetToOverwriteWith.value.name,
109
+ presetNamespace: props.namespace,
110
+ },
111
+ {
112
+ transformers: { useStarToSearch: false },
113
+ },
114
+ );
115
+ const { id: existingPresetId } = items[0];
99
116
  await updatePreset({
100
117
  id: existingPresetId,
101
118
  item: {
@@ -105,7 +122,8 @@ const handlePresetOverwriteConfirmation = async ({ onCompleted }: SubmitConfig)
105
122
  });
106
123
 
107
124
  eventBus.$emit('notification', {
108
- type: 'success', text: t('systemNotifications.success.update', {
125
+ type: 'success',
126
+ text: t('systemNotifications.success.update', {
109
127
  entity: t('webitelUI.filters.presets.preset'),
110
128
  }),
111
129
  });
@@ -118,6 +136,4 @@ const handlePresetOverwriteConfirmation = async ({ onCompleted }: SubmitConfig)
118
136
  };
119
137
  </script>
120
138
 
121
- <style lang="scss" scoped>
122
-
123
- </style>
139
+ <style lang="scss" scoped></style>
@@ -129,8 +129,8 @@ const save = () => {
129
129
 
130
130
  .save-preset-filters-preview-wrapper {
131
131
  @extend %wt-scrollbar;
132
- overflow-y: auto;
133
- max-height: 140px;
134
132
  margin-top: var(--spacing-sm);
133
+ max-height: 140px;
134
+ overflow-y: auto;
135
135
  }
136
136
  </style>
@@ -1,10 +1,5 @@
1
- import { createFilterPresetsStore } from "./stores/createFilterPresetsStore.ts";
1
+ import { createFilterPresetsStore } from './stores/createFilterPresetsStore.ts';
2
2
  import SavePresetAction from './components/save-preset/save-preset-action.vue';
3
- import ApplyPresetAction from "./components/apply-preset/apply-preset-action.vue";
3
+ import ApplyPresetAction from './components/apply-preset/apply-preset-action.vue';
4
4
 
5
- export {
6
- SavePresetAction,
7
- ApplyPresetAction,
8
-
9
- createFilterPresetsStore
10
- };
5
+ export { SavePresetAction, ApplyPresetAction, createFilterPresetsStore };
@@ -1,14 +1,16 @@
1
1
  import { EnginePresetQuery } from 'webitel-sdk';
2
2
  import { createTableStore } from '../../table/createTableStore.store.ts';
3
- import PresetQueryAPI from "../api/PresetQuery.api.ts";
4
- import { headers } from "./headers/headers.ts";
3
+ import PresetQueryAPI from '../api/PresetQuery.api.ts';
4
+ import { headers } from './headers/headers.ts';
5
5
 
6
6
  export const createFilterPresetsStore = (namespace = 'presets') => {
7
- const presetsNamespace = namespace.endsWith('presets') ? namespace : `${namespace}/presets`;
7
+ const presetsNamespace = namespace.endsWith('presets')
8
+ ? namespace
9
+ : `${namespace}/presets`;
8
10
 
9
- return createTableStore<EnginePresetQuery>(presetsNamespace, {
10
- apiModule: PresetQueryAPI,
11
- headers,
12
- disablePersistence: true,
13
- });
14
- }
11
+ return createTableStore<EnginePresetQuery>(presetsNamespace, {
12
+ apiModule: PresetQueryAPI,
13
+ headers,
14
+ disablePersistence: true,
15
+ });
16
+ };
@@ -1,24 +1,24 @@
1
- import {WtTableHeader} from "src/components/wt-table/types/WtTable.d.ts";
1
+ import { WtTableHeader } from 'src/components/wt-table/types/WtTable.d.ts';
2
2
 
3
3
  export const headers: WtTableHeader[] = [
4
- {
5
- value: 'id',
6
- field: 'id',
7
- show: true,
8
- },
9
- {
10
- value: 'name',
11
- field: 'name',
12
- show: true,
13
- },
14
- {
15
- value: 'preset',
16
- field: 'preset',
17
- show: true,
18
- },
19
- {
20
- value: 'description',
21
- field: 'description',
22
- show: true,
23
- },
4
+ {
5
+ value: 'id',
6
+ field: 'id',
7
+ show: true,
8
+ },
9
+ {
10
+ value: 'name',
11
+ field: 'name',
12
+ show: true,
13
+ },
14
+ {
15
+ value: 'preset',
16
+ field: 'preset',
17
+ show: true,
18
+ },
19
+ {
20
+ value: 'description',
21
+ field: 'description',
22
+ show: true,
23
+ },
24
24
  ];
@@ -127,10 +127,10 @@ $form-width: 380px;
127
127
  .dynamic-filter-config-form {
128
128
  display: flex;
129
129
  flex-direction: column;
130
+ gap: var(--spacing-xs);
130
131
  box-sizing: border-box;
131
- width: $form-width;
132
132
  padding: var(--spacing-xs) 0;
133
- gap: var(--spacing-xs);
133
+ width: $form-width;
134
134
  }
135
135
 
136
136
  .dynamic-filter-config-form-footer {
@@ -44,11 +44,11 @@ const { t } = useI18n();
44
44
 
45
45
  &-wrapper {
46
46
  display: flex;
47
- align-items: center;
48
47
  justify-content: center;
49
- width: fit-content;
50
- cursor: pointer;
48
+ align-items: center;
51
49
  gap: var(--spacing-2xs);
50
+ cursor: pointer;
51
+ width: fit-content;
52
52
  }
53
53
  }
54
54
  </style>
@@ -16,19 +16,22 @@
16
16
  <script setup lang="ts">
17
17
  import { ComponentSize } from '../../../../../enums';
18
18
 
19
- const props = withDefaults(defineProps<{
20
- size?: ComponentSize;
21
- }>(), {
22
- size: ComponentSize.MD,
23
- });
19
+ const props = withDefaults(
20
+ defineProps<{
21
+ size?: ComponentSize;
22
+ }>(),
23
+ {
24
+ size: ComponentSize.MD,
25
+ },
26
+ );
24
27
  </script>
25
28
 
26
29
  <style lang="scss" scoped>
27
30
  .dynamic-filter-panel-wrapper {
28
31
  display: grid;
29
32
  grid-gap: var(--spacing-sm);
30
- align-items: center;
31
33
  grid-template-columns: 1fr auto;
34
+ align-items: center;
32
35
  }
33
36
 
34
37
  .dynamic-filter-panel-wrapper__filters {
@@ -46,7 +49,7 @@ const props = withDefaults(defineProps<{
46
49
  .dynamic-filter-panel-wrapper {
47
50
  &--sm {
48
51
  .dynamic-filter-panel-wrapper__filters,
49
- .dynamic-filter-panel-wrapper__actions, {
52
+ .dynamic-filter-panel-wrapper__actions {
50
53
  grid-gap: var(--spacing-xs);
51
54
  }
52
55
  }
@@ -1,33 +1,39 @@
1
- import {useVuelidate} from "@vuelidate/core";
2
- import {computed, ModelRef, type Reactive, type Ref} from "vue";
3
- import {useI18n} from "vue-i18n";
1
+ import { useVuelidate } from '@vuelidate/core';
2
+ import { computed, ModelRef, type Reactive, type Ref } from 'vue';
3
+ import { useI18n } from 'vue-i18n';
4
4
 
5
- import {BooleanFilterModelValue} from "../types/BooleanFilter";
5
+ import { BooleanFilterModelValue } from '../types/BooleanFilter';
6
6
 
7
- export const usePrettifyBooleanValuePreview = (value: Reactive<boolean>): { localeValue: Ref<string> } => {
8
- const { t } = useI18n();
7
+ export const usePrettifyBooleanValuePreview = (
8
+ value: Reactive<boolean>,
9
+ ): { localeValue: Ref<string> } => {
10
+ const { t } = useI18n();
9
11
 
10
- const localeValue = computed(() => {
11
- return value ? t('vocabulary.yes') : t('vocabulary.no');
12
- });
12
+ const localeValue = computed(() => {
13
+ return value ? t('vocabulary.yes') : t('vocabulary.no');
14
+ });
13
15
 
14
- return { localeValue };
16
+ return { localeValue };
15
17
  };
16
18
 
17
- export const useBooleanFilterValueValidation = <T extends BooleanFilterModelValue>(model: ModelRef<T>) => {
18
- const v$ = useVuelidate(
19
- computed(() => ({
20
- model: {
21
- required: (v: T) => !(!v && v !== false),
22
- },
23
- })),
24
- { model },
25
- { $autoDirty: true },
26
- );
19
+ export const useBooleanFilterValueValidation = <
20
+ T extends BooleanFilterModelValue,
21
+ >(
22
+ model: ModelRef<T>,
23
+ ) => {
24
+ const v$ = useVuelidate(
25
+ computed(() => ({
26
+ model: {
27
+ required: (v: T) => !(!v && v !== false),
28
+ },
29
+ })),
30
+ { model },
31
+ { $autoDirty: true },
32
+ );
27
33
 
28
- v$.value.$touch();
34
+ v$.value.$touch();
29
35
 
30
- return {
31
- v$,
32
- };
36
+ return {
37
+ v$,
38
+ };
33
39
  };
@@ -1,41 +1,41 @@
1
- import {computed} from "vue";
2
- import {useI18n} from "vue-i18n";
1
+ import { computed } from 'vue';
2
+ import { useI18n } from 'vue-i18n';
3
3
 
4
4
  export const useFromToSecToPreviewTime = (value: {
5
- from?: number | string | null,
6
- to?: number | string | null,
5
+ from?: number | string | null;
6
+ to?: number | string | null;
7
7
  }) => {
8
- const { t } = useI18n();
8
+ const { t } = useI18n();
9
9
 
10
- const format = (secsVal: number) => {
11
- const minutes = Math.floor(secsVal / 60);
12
- const seconds = secsVal % 60;
10
+ const format = (secsVal: number) => {
11
+ const minutes = Math.floor(secsVal / 60);
12
+ const seconds = secsVal % 60;
13
13
 
14
- return `${t('webitelUI.timepicker.min')} ${minutes} ${t('webitelUI.timepicker.sec')} ${seconds}`;
15
- };
14
+ return `${t('webitelUI.timepicker.min')} ${minutes} ${t('webitelUI.timepicker.sec')} ${seconds}`;
15
+ };
16
16
 
17
- const from = computed(() => {
18
- const numValue = Number(value.from);
17
+ const from = computed(() => {
18
+ const numValue = Number(value.from);
19
19
 
20
- if (!numValue && numValue !== 0) {
21
- return '';
22
- }
20
+ if (!numValue && numValue !== 0) {
21
+ return '';
22
+ }
23
23
 
24
- return format(numValue);
25
- });
24
+ return format(numValue);
25
+ });
26
26
 
27
- const to = computed(() => {
28
- const numValue = Number(value.to);
27
+ const to = computed(() => {
28
+ const numValue = Number(value.to);
29
29
 
30
- if (!numValue && numValue !== 0) {
31
- return '';
32
- }
30
+ if (!numValue && numValue !== 0) {
31
+ return '';
32
+ }
33
33
 
34
- return format(numValue);
35
- });
34
+ return format(numValue);
35
+ });
36
36
 
37
- return {
38
- from,
39
- to
40
- };
37
+ return {
38
+ from,
39
+ to,
40
+ };
41
41
  };
@@ -19,9 +19,9 @@
19
19
  </template>
20
20
 
21
21
  <script lang="ts" setup>
22
- import {endOfToday, startOfToday} from 'date-fns';
23
- import {useI18n} from 'vue-i18n';
24
- import {onMounted} from 'vue';
22
+ import { endOfToday, startOfToday } from 'date-fns';
23
+ import { useI18n } from 'vue-i18n';
24
+ import { onMounted } from 'vue';
25
25
 
26
26
  type ModelValue = {
27
27
  from: number;
@@ -29,15 +29,18 @@ type ModelValue = {
29
29
  };
30
30
 
31
31
  const model = defineModel<ModelValue>();
32
- const {t} = useI18n();
32
+ const { t } = useI18n();
33
33
 
34
34
  const handleInput = (key: keyof ModelValue, value: number) => {
35
- model.value = { ...model.value, [key]: value};
35
+ model.value = { ...model.value, [key]: value };
36
36
  };
37
37
 
38
38
  const initModel = () => {
39
39
  if (!model.value) {
40
- model.value = {from: startOfToday().getTime(), to: endOfToday().getTime()};
40
+ model.value = {
41
+ from: startOfToday().getTime(),
42
+ to: endOfToday().getTime(),
43
+ };
41
44
  }
42
45
  };
43
46
 
@@ -13,7 +13,7 @@
13
13
  </template>
14
14
 
15
15
  <script lang="ts" setup>
16
- import {computed, useAttrs} from 'vue';
16
+ import { computed, useAttrs } from 'vue';
17
17
  import { useI18n } from 'vue-i18n';
18
18
 
19
19
  import WtSelect from '../../../../../../../../components/wt-select/wt-select.vue';
@@ -27,7 +27,7 @@ const { t } = useI18n();
27
27
 
28
28
  const strModel = computed({
29
29
  get: () => {
30
- return typeof model.value === "boolean" ? String(model.value) : model.value;
30
+ return typeof model.value === 'boolean' ? String(model.value) : model.value;
31
31
  },
32
32
  set: (value: string) => {
33
33
  model.value = value === 'true';
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <ul
3
- v-if="localValue">
2
+ <ul v-if="localValue">
4
3
  <li
5
4
  v-for="({ name }, index) of localValue"
6
5
  :key="index"
@@ -12,7 +11,7 @@
12
11
 
13
12
  <script lang="ts" setup>
14
13
  import { searchMethod } from './config.js';
15
- import {ref} from 'vue';
14
+ import { ref } from 'vue';
16
15
 
17
16
  const props = defineProps<{
18
17
  value: number[];
@@ -21,12 +20,11 @@ const props = defineProps<{
21
20
  const localValue = ref([]);
22
21
 
23
22
  const getLocalValue = async () => {
24
- const { items } = await searchMethod({id: props.value});
23
+ const { items } = await searchMethod({ id: props.value });
25
24
  localValue.value = items;
26
25
  };
27
26
 
28
27
  getLocalValue();
29
28
  </script>
30
29
 
31
- <style lang="scss" scoped>
32
- </style>
30
+ <style lang="scss" scoped></style>
@@ -13,8 +13,6 @@
13
13
  const props = defineProps<{
14
14
  value: number[];
15
15
  }>();
16
-
17
-
18
16
  </script>
19
17
 
20
18
  <style lang="scss" scoped></style>
@@ -1,11 +1,7 @@
1
1
  <template>
2
2
  <div>
3
- <p
4
- v-if="props.value.unassigned"
5
- >{{ t('reusable.unassigned') }}</p>
6
- <ul
7
- v-if="localValue"
8
- >
3
+ <p v-if="props.value.unassigned">{{ t('reusable.unassigned') }}</p>
4
+ <ul v-if="localValue">
9
5
  <li
10
6
  v-for="({ name }, index) of localValue"
11
7
  :key="index"
@@ -17,24 +13,23 @@
17
13
  </template>
18
14
 
19
15
  <script lang="ts" setup>
20
- import {searchMethod} from './config.js';
21
- import {ref} from 'vue';
22
- import {useI18n} from "vue-i18n";
16
+ import { searchMethod } from './config.js';
17
+ import { ref } from 'vue';
18
+ import { useI18n } from 'vue-i18n';
23
19
 
24
20
  const props = defineProps<{
25
21
  value: number[];
26
22
  }>();
27
23
 
28
24
  const localValue = ref([]);
29
- const {t} = useI18n();
25
+ const { t } = useI18n();
30
26
 
31
27
  const getLocalValue = async () => {
32
- const {items} = await searchMethod({id: props.value.list});
28
+ const { items } = await searchMethod({ id: props.value.list });
33
29
  localValue.value = items;
34
30
  };
35
31
 
36
32
  getLocalValue();
37
33
  </script>
38
34
 
39
- <style lang="scss" scoped>
40
- </style>
35
+ <style lang="scss" scoped></style>
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <ul
3
- v-if="localValue">
2
+ <ul v-if="localValue">
4
3
  <li
5
4
  v-for="({ name }, index) of localValue"
6
5
  :key="index"
@@ -12,7 +11,7 @@
12
11
 
13
12
  <script lang="ts" setup>
14
13
  import { searchMethod } from './config.js';
15
- import {ref} from 'vue';
14
+ import { ref } from 'vue';
16
15
 
17
16
  const props = defineProps<{
18
17
  value: number[];
@@ -21,12 +20,11 @@ const props = defineProps<{
21
20
  const localValue = ref([]);
22
21
 
23
22
  const getLocalValue = async () => {
24
- const { items } = await searchMethod({id: props.value});
23
+ const { items } = await searchMethod({ id: props.value });
25
24
  localValue.value = items;
26
25
  };
27
26
 
28
27
  getLocalValue();
29
28
  </script>
30
29
 
31
- <style lang="scss" scoped>
32
- </style>
30
+ <style lang="scss" scoped></style>
@@ -13,7 +13,6 @@
13
13
  const props = defineProps<{
14
14
  value: number[];
15
15
  }>();
16
-
17
16
  </script>
18
17
 
19
18
  <style lang="scss" scoped></style>
@@ -31,11 +31,14 @@
31
31
  <script lang="ts" setup>
32
32
  import { useVuelidate } from '@vuelidate/core';
33
33
  import { required } from '@vuelidate/validators';
34
- import {computed, onMounted, ref, watch} from 'vue';
34
+ import { computed, onMounted, ref, watch } from 'vue';
35
35
  import { useI18n } from 'vue-i18n';
36
36
 
37
37
  import WtSelect from '../../../../../../../components/wt-select/wt-select.vue';
38
- import { caseCloseReasonsSearchMethod, caseCloseReasonsGroupsSearchMethod } from './config.js';
38
+ import {
39
+ caseCloseReasonsSearchMethod,
40
+ caseCloseReasonsGroupsSearchMethod,
41
+ } from './config.js';
39
42
 
40
43
  type ModelValue = {
41
44
  selection: string;
@@ -57,13 +60,13 @@ const getConditionList = (params) => {
57
60
  };
58
61
 
59
62
  const initModel = () => {
60
- if(!model.value) {
63
+ if (!model.value) {
61
64
  model.value = {
62
65
  selection: '',
63
66
  conditions: '',
64
67
  };
65
68
  }
66
- }
69
+ };
67
70
  onMounted(() => initModel());
68
71
 
69
72
  const v$ = useVuelidate(
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <ul
3
- v-if="localValue">
2
+ <ul v-if="localValue">
4
3
  <li
5
4
  v-for="({ name }, index) of localValue"
6
5
  :key="index"
@@ -11,8 +10,8 @@
11
10
  </template>
12
11
 
13
12
  <script lang="ts" setup>
14
- import { caseCloseReasonsSearchMethod } from './config'
15
- import {ref} from 'vue';
13
+ import { caseCloseReasonsSearchMethod } from './config';
14
+ import { ref } from 'vue';
16
15
 
17
16
  const props = defineProps<{
18
17
  value: number[];
@@ -23,12 +22,12 @@ const localValue = ref([]);
23
22
  const getLocalValue = async () => {
24
23
  const { items } = await caseCloseReasonsSearchMethod({
25
24
  parentId: props.value?.selection,
26
- id: props.value?.conditions });
25
+ id: props.value?.conditions,
26
+ });
27
27
  localValue.value = items;
28
28
  };
29
29
 
30
30
  getLocalValue();
31
31
  </script>
32
32
 
33
- <style lang="scss" scoped>
34
- </style>
33
+ <style lang="scss" scoped></style>