@webitel/ui-sdk 25.4.37 → 25.4.39

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 +391 -238
  2. package/dist/ui-sdk.css +1 -1
  3. package/dist/ui-sdk.js +8737 -8361
  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 +19 -14
  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
package/package.json CHANGED
@@ -1,16 +1,13 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "25.4.37",
3
+ "version": "25.4.39",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "dev": "vite",
7
7
  "build": "vite build",
8
8
  "serve": "vite preview",
9
9
  "test:unit": "vitest",
10
- "lint:js": "eslint",
11
- "lint:prettier": "prettier --check .",
12
- "lint": "npm run lint:js && npm run lint:prettier",
13
- "lint:fix": "prettier --write --list-different . && npm run lint:js --fix",
10
+ "lint:fix": "prettier --write --check . && eslint --fix",
14
11
  "publish-lib": "npm run test:unit && npm run build && npm publish --access public",
15
12
  "publish-lib:testless": "npm run build && npm publish --access public",
16
13
  "docs:dev": "vitepress dev docs --port 8080",
@@ -21,7 +18,8 @@
21
18
  "update-node": "nvm install --lts && nvm alias default node",
22
19
  "i": "npm install",
23
20
  "lint:package": "publint",
24
- "orval": "orval"
21
+ "orval": "orval",
22
+ "prepare": "husky && husky install"
25
23
  },
26
24
  "main": "./dist/ui-sdk.js",
27
25
  "type": "module",
@@ -108,15 +106,15 @@
108
106
  "CHANGELOG.md"
109
107
  ],
110
108
  "dependencies": {
111
- "@floating-ui/vue": "^1.1.5",
109
+ "@floating-ui/vue": "^1.1.6",
112
110
  "@morev/vue-transitions": "^3.0.5",
113
111
  "@vuelidate/core": "^2.0.3",
114
112
  "@vuelidate/validators": "^2.0.4",
115
113
  "@vuepic/vue-datepicker": "^4.5.1",
116
- "@vueuse/components": "^11.2.0",
114
+ "@vueuse/components": "^13.0.0",
117
115
  "@webitel/styleguide": "^24.12.26",
118
116
  "autosize": "^6.0.1",
119
- "axios": "^1.7.7",
117
+ "axios": "^1.8.3",
120
118
  "clipboard-copy": "^4.0.1",
121
119
  "csv-stringify": "^5.5.3",
122
120
  "date-fns": "^4.1.0",
@@ -129,71 +127,78 @@
129
127
  "jszip": "^3.10.1",
130
128
  "jszip-utils": "^0.1.0",
131
129
  "lodash-es": "^4.17.21",
132
- "mitt": "3.0.1",
130
+ "mitt": "^3.0.1",
133
131
  "path-browserify": "^1.0.1",
134
132
  "plyr": "^3.7.8",
135
133
  "query-string": "^9.1.1",
136
134
  "sortablejs": "^1.15.3",
137
- "vue-i18n": "^11.0.1",
135
+ "vue-i18n": "^11.1.2",
138
136
  "vue-multiselect": "^3.1.0",
139
137
  "vue-observe-visibility": "^2.0.0-alpha.1",
140
- "vue-router": "^4.4.5",
141
- "webitel-sdk": "^24.10.29",
142
- "xlsx": "^0.18.5",
138
+ "vue-router": "^4.5.0",
139
+ "webitel-sdk": "^25.2.11",
140
+ "xlsx": "0.18.5",
143
141
  "zod": "^3.24.2"
144
142
  },
145
143
  "devDependencies": {
146
- "@eslint/js": "^9.17.0",
144
+ "@eslint/js": "^9.22.0",
147
145
  "@tsconfig/node22": "^22.0.0",
148
- "@types/node": "^22.12.0",
149
- "@vitejs/plugin-vue": "^5.2.1",
150
- "@vitest/coverage-v8": "^3.0.6",
146
+ "@types/node": "^22.13.10",
147
+ "@vitejs/plugin-vue": "^5.2.3",
151
148
  "@vue/compat": "^3.5.13",
152
149
  "@vue/compiler-sfc": "^3.5.13",
153
150
  "@vue/test-utils": "^2.4.6",
154
151
  "@vue/tsconfig": "^0.7.0",
155
- "eslint": "^9.17.0",
156
- "eslint-config-prettier": "^9.1.0",
152
+ "eslint": "^9.22.0",
153
+ "eslint-config-prettier": "^10.1.1",
157
154
  "eslint-plugin-simple-import-sort": "^12.1.1",
158
- "eslint-plugin-vue": "^9.32.0",
159
- "globals": "^15.14.0",
160
- "globby": "^14.0.2",
161
- "happy-dom": "^15.11.6",
155
+ "eslint-plugin-vue": "^10.0.0",
156
+ "globals": "^16.0.0",
157
+ "globby": "^14.1.0",
158
+ "happy-dom": "^17.4.4",
159
+ "husky": "^9.1.7",
160
+ "lint-staged": "^15.5.0",
162
161
  "markdown-it": "^14.1.0",
163
162
  "markdown-table": "^3.0.4",
164
163
  "orval": "^7.6.0",
165
164
  "path": "^0.12.7",
166
- "pinia": "^2.3.0",
167
- "postcss": "^8.4.49",
165
+ "pinia": "^3.0.1",
166
+ "postcss": "^8.5.3",
168
167
  "postcss-prefix-selector": "^2.1.0",
169
- "prettier": "^3.4.2",
170
- "prismjs": "^1.29.0",
171
- "publint": "^0.3.6",
172
- "sass": "^1.81.0",
173
- "typescript": "5.7.3",
174
- "typescript-eslint": "^8.22.0",
168
+ "prettier": "^3.5.3",
169
+ "prettier-plugin-css-order": "^2.1.2",
170
+ "prismjs": "^1.30.0",
171
+ "publint": "^0.3.9",
172
+ "sass": "^1.85.1",
173
+ "typescript": "5.8.2",
174
+ "typescript-eslint": "^8.26.1",
175
175
  "typescript-plugin-css-modules": "^5.1.0",
176
- "vite": "^6.1.1",
176
+ "unplugin-auto-import": "^19.1.1",
177
+ "vite": "^6.2.2",
177
178
  "vite-plugin-checker": "^0.9.0",
178
179
  "vite-plugin-node-polyfills": "^0.23.0",
179
- "vite-plugin-static-copy": "^2.2.0",
180
+ "vite-plugin-static-copy": "^2.3.0",
180
181
  "vite-plugin-svg-sprite": "=0.5",
181
182
  "vite-plugin-vue-docgen": "^0.3.4",
182
183
  "vitepress": "1.6.3",
183
- "vitest": "^3.0.6",
184
+ "vitest": "^3.0.9",
184
185
  "vue": "^3.5.13",
185
- "vue-tsc": "^2.1.10",
186
+ "vue-tsc": "^2.2.8",
186
187
  "vuex": "^4.1.0"
187
188
  },
188
189
  "optionalDependencies": {
189
190
  "@rollup/rollup-linux-x64-gnu": "4.9.5"
190
191
  },
191
192
  "overrides": {
192
- "vite": "^6.1.1",
193
+ "vite": "^6.2.2",
193
194
  "date-fns": "^4.1.0"
194
195
  },
195
196
  "engines": {
196
197
  "npm": "10",
197
198
  "node": "v22"
199
+ },
200
+ "lint-staged": {
201
+ "*.js": "eslint --cache --fix",
202
+ "*.{js,css,md}": "prettier --write"
198
203
  }
199
204
  }
@@ -12,7 +12,7 @@ import applyTransform, {
12
12
  snakeToCamel,
13
13
  starToSearch,
14
14
  } from '../../transformers/index.js';
15
- import {PrioritiesApiFactory} from 'webitel-sdk';
15
+ import { PrioritiesApiFactory } from 'webitel-sdk';
16
16
 
17
17
  const instance = getDefaultInstance();
18
18
  const configuration = getDefaultOpenAPIConfig();
@@ -22,7 +22,17 @@ const priorityService = new PrioritiesApiFactory(configuration, '', instance);
22
22
  const fieldsToSend = ['name', 'description', 'color'];
23
23
 
24
24
  const getPrioritiesList = async (params) => {
25
- const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id', 'notInSla', 'inSla', 'inSlaCond'];
25
+ const fieldsToSend = [
26
+ 'page',
27
+ 'size',
28
+ 'q',
29
+ 'sort',
30
+ 'fields',
31
+ 'id',
32
+ 'notInSla',
33
+ 'inSla',
34
+ 'inSlaCond',
35
+ ];
26
36
  const {
27
37
  page,
28
38
  size,
@@ -125,6 +135,6 @@ const CasePrioritiesAPI = {
125
135
  getLookup: getConditionsLookup,
126
136
  delete: deletePriority,
127
137
  add: addPriority,
128
- }
138
+ };
129
139
 
130
140
  export default CasePrioritiesAPI;
@@ -32,15 +32,7 @@ const getSourcesList = async (params) => {
32
32
  }));
33
33
  };
34
34
 
35
- const {
36
- page,
37
- size,
38
- fields,
39
- sort,
40
- id,
41
- q,
42
- type,
43
- } = applyTransform(params, [
35
+ const { page, size, fields, sort, id, q, type } = applyTransform(params, [
44
36
  merge(getDefaultGetParams()),
45
37
  starToSearch('search'),
46
38
  (params) => ({ ...params, q: params.search }),
@@ -57,7 +49,7 @@ const getSourcesList = async (params) => {
57
49
  id,
58
50
  q,
59
51
  type,
60
- )
52
+ );
61
53
  const { items, next } = applyTransform(response.data, [
62
54
  merge(getDefaultGetListResponse()),
63
55
  ]);
@@ -75,10 +67,7 @@ const getSource = async ({ itemId: id }) => {
75
67
 
76
68
  try {
77
69
  const response = await sourceService.locateSource(id);
78
- return applyTransform(response.data, [
79
- snakeToCamel(),
80
- itemResponseHandler,
81
- ]);
70
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
82
71
  } catch (err) {
83
72
  throw applyTransform(err, [notify]);
84
73
  }
@@ -91,9 +80,7 @@ const addSource = async ({ itemInstance }) => {
91
80
  ]);
92
81
  try {
93
82
  const response = await sourceService.createSource(item);
94
- return applyTransform(response.data, [
95
- snakeToCamel()
96
- ]);
83
+ return applyTransform(response.data, [snakeToCamel()]);
97
84
  } catch (err) {
98
85
  throw applyTransform(err, [notify]);
99
86
  }
@@ -102,7 +89,8 @@ const addSource = async ({ itemInstance }) => {
102
89
  const updateSource = async ({ itemInstance, itemId: id }) => {
103
90
  const item = applyTransform(itemInstance, [
104
91
  camelToSnake(),
105
- sanitize(fieldsToSend)]);
92
+ sanitize(fieldsToSend),
93
+ ]);
106
94
 
107
95
  try {
108
96
  const response = await sourceService.updateSource(id, item);
@@ -121,10 +109,11 @@ const deleteSource = async ({ id }) => {
121
109
  }
122
110
  };
123
111
 
124
- const getLookup = (params) => getSourcesList({
125
- ...params,
126
- fields: params.fields || ['id', 'name', 'type'],
127
- });
112
+ const getLookup = (params) =>
113
+ getSourcesList({
114
+ ...params,
115
+ fields: params.fields || ['id', 'name', 'type'],
116
+ });
128
117
 
129
118
  const CaseSourcesAPI = {
130
119
  getList: getSourcesList,
@@ -132,7 +121,7 @@ const CaseSourcesAPI = {
132
121
  add: addSource,
133
122
  update: updateSource,
134
123
  delete: deleteSource,
135
- getLookup
136
- }
124
+ getLookup,
125
+ };
137
126
 
138
127
  export default CaseSourcesAPI;
@@ -19,19 +19,20 @@ const configuration = getDefaultOpenAPIConfig();
19
19
 
20
20
  const slaService = new SLAsApiFactory(configuration, '', instance);
21
21
 
22
- const fieldsToSend = ['name', 'description', 'valid_from', 'valid_to', 'calendar', 'reaction_time', 'resolution_time'];
22
+ const fieldsToSend = [
23
+ 'name',
24
+ 'description',
25
+ 'valid_from',
26
+ 'valid_to',
27
+ 'calendar',
28
+ 'reaction_time',
29
+ 'resolution_time',
30
+ ];
23
31
 
24
32
  const getSlasList = async (params) => {
25
33
  const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
26
34
 
27
- const {
28
- page,
29
- size,
30
- fields,
31
- sort,
32
- id,
33
- q,
34
- } = applyTransform(params, [
35
+ const { page, size, fields, sort, id, q } = applyTransform(params, [
35
36
  merge(getDefaultGetParams()),
36
37
  starToSearch('search'),
37
38
  (params) => ({ ...params, q: params.search }),
@@ -39,14 +40,7 @@ const getSlasList = async (params) => {
39
40
  camelToSnake(),
40
41
  ]);
41
42
  try {
42
- const response = await slaService.listSLAs(
43
- page,
44
- size,
45
- fields,
46
- sort,
47
- id,
48
- q,
49
- );
43
+ const response = await slaService.listSLAs(page, size, fields, sort, id, q);
50
44
  const { items, next } = applyTransform(response.data, [
51
45
  merge(getDefaultGetListResponse()),
52
46
  ]);
@@ -66,10 +60,7 @@ const getSla = async ({ itemId: id }) => {
66
60
 
67
61
  try {
68
62
  const response = await slaService.locateSLA(id, fieldsToSend);
69
- return applyTransform(response.data, [
70
- snakeToCamel(),
71
- itemResponseHandler,
72
- ]);
63
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
73
64
  } catch (err) {
74
65
  throw applyTransform(err, [notify]);
75
66
  }
@@ -82,9 +73,7 @@ const addSla = async ({ itemInstance }) => {
82
73
  ]);
83
74
  try {
84
75
  const response = await slaService.createSLA(item);
85
- return applyTransform(response.data, [
86
- snakeToCamel()
87
- ]);
76
+ return applyTransform(response.data, [snakeToCamel()]);
88
77
  } catch (err) {
89
78
  throw applyTransform(err, [notify]);
90
79
  }
@@ -93,7 +82,8 @@ const addSla = async ({ itemInstance }) => {
93
82
  const updateSla = async ({ itemInstance, itemId: id }) => {
94
83
  const item = applyTransform(itemInstance, [
95
84
  camelToSnake(),
96
- sanitize(fieldsToSend)]);
85
+ sanitize(fieldsToSend),
86
+ ]);
97
87
  try {
98
88
  const response = await slaService.updateSLA(id, item);
99
89
  return applyTransform(response.data, [snakeToCamel()]);
@@ -124,6 +114,6 @@ const SlasAPI = {
124
114
  add: addSla,
125
115
  update: updateSla,
126
116
  delete: deleteSla,
127
- }
117
+ };
128
118
 
129
119
  export default SlasAPI;
@@ -164,6 +164,7 @@ const get = async ({ itemId: id }) => {
164
164
  'phones',
165
165
  'emails',
166
166
  'imclients',
167
+ 'user',
167
168
  ];
168
169
 
169
170
  const defaultObject = {};
@@ -1,6 +1,11 @@
1
- export const skipIf = (transformer: (...payload: unknown[]) => unknown, ifFn: boolean | ((...payload: unknown[]) => boolean)) => (payload: unknown) => {
1
+ export const skipIf =
2
+ (
3
+ transformer: (...payload: unknown[]) => unknown,
4
+ ifFn: boolean | ((...payload: unknown[]) => boolean),
5
+ ) =>
6
+ (payload: unknown) => {
2
7
  if (typeof ifFn === 'function' ? ifFn(payload) : ifFn) {
3
- return payload;
8
+ return payload;
4
9
  }
5
10
  return transformer(payload);
6
- };
11
+ };
@@ -34,7 +34,8 @@ class WebSocketClientController {
34
34
  }
35
35
 
36
36
  addEventListener(event, callback) {
37
- if (Array.isArray(callback)) this._on[event] = this._on[event].concat(callback);
37
+ if (Array.isArray(callback))
38
+ this._on[event] = this._on[event].concat(callback);
38
39
  else this._on[event].push(callback);
39
40
  }
40
41
 
@@ -62,12 +63,16 @@ class WebSocketClientController {
62
63
  cli.callStore = reactive(cli.callStore);
63
64
 
64
65
  this._on[WebSocketClientEvent.AFTER_AUTH].forEach((callback) => callback());
65
- this._on[WebSocketClientEvent.ERROR].forEach((callback) => cli.on('error', callback));
66
- cli.on(`show_message`, e => eventBus.$emit('notification', {
67
- type: e.type,
68
- text: e.message,
69
- timeout: e.timeout,
70
- }));
66
+ this._on[WebSocketClientEvent.ERROR].forEach((callback) =>
67
+ cli.on('error', callback),
68
+ );
69
+ cli.on(`show_message`, (e) =>
70
+ eventBus.$emit('notification', {
71
+ type: e.type,
72
+ text: e.message,
73
+ timeout: e.timeout,
74
+ }),
75
+ );
71
76
 
72
77
  await cli.connect();
73
78
 
@@ -84,23 +89,25 @@ class WebSocketClientController {
84
89
  resolve();
85
90
  }, 5000);
86
91
 
87
- const markUa = () => cli.phone?.ua && (cli.phone.ua = markRaw(cli.phone.ua));
92
+ const markUa = () =>
93
+ cli.phone?.ua && (cli.phone.ua = markRaw(cli.phone.ua));
88
94
 
89
95
  if (cli.phone?.ua) {
90
96
  markUa();
91
97
  clearTimeout(timeout);
92
98
  resolve();
93
- } else cli.on('phone_connected', () => {
94
- markUa();
95
- clearTimeout(timeout);
96
- resolve();
97
- });
99
+ } else
100
+ cli.on('phone_connected', () => {
101
+ markUa();
102
+ clearTimeout(timeout);
103
+ resolve();
104
+ });
98
105
  });
99
106
 
100
107
  window.cli = cli;
101
108
  return cli;
102
109
  };
103
- };
110
+ }
104
111
 
105
112
  const webSocketClientController = new WebSocketClientController();
106
113
 
@@ -8,8 +8,9 @@ export const getConfig = () => {
8
8
  };
9
9
 
10
10
  const { hostname, protocol } = window.location;
11
- const origin = (`${protocol}//${hostname}`).replace(/^http/, 'ws');
11
+ const origin = `${protocol}//${hostname}`.replace(/^http/, 'ws');
12
12
 
13
- export const endpoint = import.meta.env.MODE === 'production'
14
- ? `${origin}/ws`
15
- : 'wss://dev.webitel.com/ws';
13
+ export const endpoint =
14
+ import.meta.env.MODE === 'production'
15
+ ? `${origin}/ws`
16
+ : 'wss://dev.webitel.com/ws';
@@ -63,12 +63,12 @@ function select(category) {
63
63
  }
64
64
 
65
65
  &--selected {
66
- color: var(--primary-on-color);
67
66
  background: var(--primary-color);
67
+ color: var(--primary-on-color);
68
68
 
69
69
  &:hover {
70
- color: var(--primary-on-color);
71
70
  background: var(--primary-color);
71
+ color: var(--primary-on-color);
72
72
  }
73
73
  }
74
74
  }
@@ -36,8 +36,8 @@ const props = defineProps({
36
36
  overflow-y: auto;
37
37
 
38
38
  .nav-menu-lvl-2__indicator {
39
- position: relative;
40
39
  display: block;
40
+ position: relative;
41
41
  width: var(--spacing-md);
42
42
  height: var(--spacing-md);
43
43
 
@@ -45,12 +45,12 @@ const props = defineProps({
45
45
  position: absolute;
46
46
  top: 50%;
47
47
  left: 50%;
48
- width: var(--spacing-2xs);
49
- height: var(--spacing-2xs);
50
- content: '';
51
48
  transform: translate(-50%, -50%);
52
49
  border-radius: 50%;
53
50
  background: var(--text-main-color);
51
+ width: var(--spacing-2xs);
52
+ height: var(--spacing-2xs);
53
+ content: '';
54
54
  }
55
55
  }
56
56
 
@@ -87,9 +87,9 @@ function select(category) {
87
87
 
88
88
  .wt-navigation-menu {
89
89
  display: flex;
90
- align-items: center;
91
90
  flex-grow: 1;
92
91
  justify-content: center;
92
+ align-items: center;
93
93
  height: 100%;
94
94
 
95
95
  --button-min-height: 60px;
@@ -111,14 +111,14 @@ function select(category) {
111
111
  &__wrapper {
112
112
  @extend %wt-scrollbar;
113
113
  display: grid;
114
+ grid-template-columns: repeat(2, 1fr);
114
115
  box-sizing: border-box;
115
- width: var(--wrapper-width);
116
- height: var(--wrapper-height);
117
116
  margin: auto;
118
- padding: var(--spacing-sm);
119
117
  border-radius: var(--spacing-xs);
120
118
  background: var(--content-wrapper-color);
121
- grid-template-columns: repeat(2, 1fr);
119
+ padding: var(--spacing-sm);
120
+ width: var(--wrapper-width);
121
+ height: var(--wrapper-height);
122
122
  grid-gap: var(--spacing-sm);
123
123
 
124
124
  @media only screen and (max-width: $viewport-xs) {
@@ -2,8 +2,8 @@
2
2
 
3
3
  .nav-menu {
4
4
  &__category {
5
- height: 100%;
6
5
  border-radius: var(--border-radius);
6
+ height: 100%;
7
7
  }
8
8
 
9
9
  &__option {
@@ -16,14 +16,14 @@
16
16
  @extend %typo-body-1;
17
17
  display: flex;
18
18
  align-items: center;
19
+ transition: var(--transition);
19
20
  box-sizing: border-box;
21
+ border-radius: var(--border-radius);
22
+ padding: 18px 20px;
20
23
  width: 100%;
21
24
  min-height: var(--button-min-height);
22
- padding: 18px 20px;
23
- transition: var(--transition);
24
- text-align: left;
25
25
  color: var(--text-main-color);
26
- border-radius: var(--border-radius);
26
+ text-align: left;
27
27
 
28
28
  .wt-icon {
29
29
  margin-right: var(--spacing-xs);
@@ -57,8 +57,8 @@ export default {
57
57
  <style lang="scss" scoped>
58
58
  .flow-save-filed-popup__wrapper {
59
59
  display: flex;
60
- align-items: center;
61
60
  flex-direction: column;
61
+ align-items: center;
62
62
  text-align: center;
63
63
 
64
64
  .wt-icon {
@@ -128,14 +128,14 @@ function selectOption(option) {
128
128
  }
129
129
 
130
130
  &__item-wrapper {
131
- position: relative;
132
131
  display: flex;
132
+ position: relative;
133
133
  align-items: center;
134
- padding: var(--spacing-xs);
135
- cursor: pointer;
136
134
  transition: var(--transition);
135
+ cursor: pointer;
137
136
  border: 1px solid var(--text-main-color);
138
137
  border-radius: var(--border-radius);
138
+ padding: var(--spacing-xs);
139
139
 
140
140
  &:hover,
141
141
  &.active {
@@ -52,25 +52,25 @@ const open = () => {
52
52
  .start-page-card {
53
53
  display: flex;
54
54
  flex-direction: column;
55
- width: 264px;
56
- padding: var(--spacing-xs);
57
- color: var(--text-main-color);
55
+ gap: var(--spacing-xs);
58
56
  border-radius: var(--border-radius);
59
57
  background-color: var(--content-wrapper-color);
60
- gap: var(--spacing-xs);
58
+ padding: var(--spacing-xs);
59
+ width: 264px;
60
+ color: var(--text-main-color);
61
61
 
62
62
  &__header {
63
63
  @extend %typo-heading-4;
64
64
  display: flex;
65
- align-items: center;
66
65
  justify-content: center;
66
+ align-items: center;
67
67
  }
68
68
 
69
69
  &__description {
70
70
  @extend %typo-body-1;
71
71
  display: -webkit-box;
72
- overflow: hidden;
73
72
  height: 78px; //in order to cut text after 3rd line:
73
+ overflow: hidden;
74
74
  text-align: center;
75
75
  text-overflow: ellipsis;
76
76
  -webkit-line-clamp: 3;
@@ -16,8 +16,8 @@ const props = defineProps({
16
16
  <style lang="scss" scoped>
17
17
  .start-page-logo {
18
18
  display: flex;
19
- align-items: center;
20
19
  justify-content: center;
20
+ align-items: center;
21
21
  min-height: 200px;
22
22
  }
23
23
  </style>
@@ -52,11 +52,11 @@ const navCards = computed(() => {
52
52
  <style scoped>
53
53
  .wt-start-page__wrapper {
54
54
  display: grid;
55
+ grid-template-columns: repeat(auto-fit, 264px);
55
56
  justify-content: center;
56
57
  box-sizing: border-box;
57
- min-width: 264px;
58
58
  padding: var(--spacing-sm);
59
- grid-template-columns: repeat(auto-fit, 264px);
59
+ min-width: 264px;
60
60
  grid-gap: var(--spacing-sm);
61
61
  }
62
62
  </style>
@@ -52,8 +52,8 @@ export default {
52
52
  <style lang="scss">
53
53
  .expand-enter-active,
54
54
  .expand-leave-active {
55
- overflow: hidden;
56
55
  transition: height var(--transition);
56
+ overflow: hidden;
57
57
  }
58
58
 
59
59
  .expand-enter,
@@ -120,8 +120,8 @@ const handleActionClick = (action) => {
120
120
  <style lang="scss" scoped>
121
121
  .wt-action-bar {
122
122
  display: flex;
123
- align-items: center;
124
123
  justify-content: center;
124
+ align-items: center;
125
125
  gap: var(--spacing-xs);
126
126
  }
127
127
  </style>