@webitel/ui-sdk 25.4.36 → 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 +381 -237
  2. package/dist/ui-sdk.css +1 -1
  3. package/dist/ui-sdk.js +8800 -8425
  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 +3 -3
  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
@@ -61,9 +61,7 @@
61
61
  @update:model-value="nameAlreadyExistsError = false"
62
62
  />
63
63
 
64
- <preset-filters-preview
65
- :filters="presetFilters"
66
- />
64
+ <preset-filters-preview :filters="presetFilters" />
67
65
 
68
66
  <preset-description-field
69
67
  v-model:model-value="editDraft.description"
@@ -76,28 +74,38 @@
76
74
  </template>
77
75
 
78
76
  <script lang="ts" setup>
79
- import {EnginePresetQuery} from "webitel-sdk";
80
- import {computed, ref} from "vue";
81
- import {useVuelidate} from "@vuelidate/core";
82
- import {required} from "@vuelidate/validators";
83
- import {AxiosError} from "axios";
84
- import {WtExpansionPanel, WtIconAction, WtRadio} from "../../../../../../components/index";
85
- import {createFiltersManager} from "../../../filters/index";
86
- import PresetFiltersPreview from "../_shared/preset-filters-preview.vue";
87
- import PresetNameField from "../_shared/input-fields/preset-name-field.vue";
88
- import PresetDescriptionField from "../_shared/input-fields/preset-description-field.vue";
77
+ import { EnginePresetQuery } from 'webitel-sdk';
78
+ import { computed, ref } from 'vue';
79
+ import { useVuelidate } from '@vuelidate/core';
80
+ import { required } from '@vuelidate/validators';
81
+ import { AxiosError } from 'axios';
82
+ import {
83
+ WtExpansionPanel,
84
+ WtIconAction,
85
+ WtRadio,
86
+ } from '../../../../../../components/index';
87
+ import { createFiltersManager } from '../../../filters/index';
88
+ import PresetFiltersPreview from '../_shared/preset-filters-preview.vue';
89
+ import PresetNameField from '../_shared/input-fields/preset-name-field.vue';
90
+ import PresetDescriptionField from '../_shared/input-fields/preset-description-field.vue';
89
91
 
90
92
  type Props = {
91
93
  preset: EnginePresetQuery;
92
94
  isSelected: boolean;
93
95
  collapsed: boolean;
94
- }
96
+ };
95
97
 
96
98
  const props = defineProps<Props>();
97
99
 
98
100
  const emit = defineEmits<{
99
101
  'preset:select': [EnginePresetQuery];
100
- 'preset:update': [{ preset: EnginePresetQuery, onSuccess: () => void, onFailure: (err: AxiosError) => void }];
102
+ 'preset:update': [
103
+ {
104
+ preset: EnginePresetQuery;
105
+ onSuccess: () => void;
106
+ onFailure: (err: AxiosError) => void;
107
+ },
108
+ ];
101
109
  'preset:delete': [EnginePresetQuery];
102
110
  }>();
103
111
 
@@ -134,17 +142,21 @@ const fillDraft = () => {
134
142
 
135
143
  fillDraft();
136
144
 
137
- const v$ = useVuelidate(computed(() => {
138
- return {
139
- name: {
140
- required,
141
- nameAlreadyInUse: () => !nameAlreadyExistsError.value,
142
- },
143
- };
144
- }), editDraft, {$autoDirty: true});
145
+ const v$ = useVuelidate(
146
+ computed(() => {
147
+ return {
148
+ name: {
149
+ required,
150
+ nameAlreadyInUse: () => !nameAlreadyExistsError.value,
151
+ },
152
+ };
153
+ }),
154
+ editDraft,
155
+ { $autoDirty: true },
156
+ );
145
157
  v$.value.$touch();
146
158
 
147
- const startEdit = ({open: openExpansion}) => {
159
+ const startEdit = ({ open: openExpansion }) => {
148
160
  openExpansion();
149
161
  editMode.value = true;
150
162
  };
@@ -177,15 +189,15 @@ const submitEdit = () => {
177
189
  <style lang="scss" scoped>
178
190
  .preset-preview-title-wrapper {
179
191
  display: flex;
180
- min-width: 0;
181
192
  gap: var(--spacing-xs);
193
+ min-width: 0;
182
194
  }
183
195
 
184
196
  .preset-preview-name {
185
- overflow: hidden;
186
197
  flex: 1 1 0;
187
- white-space: nowrap;
198
+ overflow: hidden;
188
199
  text-overflow: ellipsis;
200
+ white-space: nowrap;
189
201
  }
190
202
 
191
203
  .preset-preview-content {
@@ -4,7 +4,9 @@
4
4
  @close="emit('close')"
5
5
  >
6
6
  <template #title>
7
- {{ `${t('reusable.save')} ${t('webitelUI.filters.presets.preset').toLowerCase()}` }}
7
+ {{
8
+ `${t('reusable.save')} ${t('webitelUI.filters.presets.preset').toLowerCase()}`
9
+ }}
8
10
  </template>
9
11
  <template #main>
10
12
  <p class="overwrite-preset-popup-text">
@@ -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>