@webitel/ui-sdk 26.4.17 → 26.4.19

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 (185) hide show
  1. package/dist/displayText-Cbh4IOfM.js +5 -0
  2. package/dist/{index-eEFER0lI.js → index-CeADjYK9.js} +1 -1
  3. package/dist/{index-B_bOPX3o.js → index-DZ_bvNVs.js} +1 -1
  4. package/dist/{install-C_4PcYy4.js → install-Dofcp90y.js} +1749 -1752
  5. package/dist/{isObject-Bc_zejYi.js → isObject-B2zd2O3f.js} +1 -1
  6. package/dist/ui-sdk.css +1 -1
  7. package/dist/ui-sdk.js +1 -1
  8. package/dist/ui-sdk.umd.cjs +232 -232
  9. package/dist/{useVidstackSrc-BjBi-Z6a.js → useVidstackSrc-D9uo15mF.js} +3 -4
  10. package/dist/{vidstack-Bq6c3Bam-Do_GZqV0.js → vidstack-Bq6c3Bam-Bs73fRdp.js} +3 -3
  11. package/dist/{vidstack-D2pY00kU-DtEQuJNJ.js → vidstack-D2pY00kU-BVC5bxHL.js} +3 -3
  12. package/dist/{vidstack-DDXt6fpN-BjUme5OE.js → vidstack-DDXt6fpN-DA-lnlhX.js} +2 -2
  13. package/dist/{vidstack-D_-9AA6_-BUgV5EDC.js → vidstack-D_-9AA6_-C0QZLaX5.js} +2 -2
  14. package/dist/{vidstack-DqAw8m9J-D5-emHfz.js → vidstack-DqAw8m9J-DAs7LwX_.js} +1 -1
  15. package/dist/{vidstack-audio-DmysFuAQ.js → vidstack-audio-BrbZotHa.js} +2 -2
  16. package/dist/{vidstack-dash-CF4d8BuX.js → vidstack-dash-KNjyvq2R.js} +4 -4
  17. package/dist/{vidstack-google-cast-CNPyXY9S.js → vidstack-google-cast-DMZQ1jRD.js} +4 -4
  18. package/dist/{vidstack-hls-BLaXkLiF.js → vidstack-hls-BfOysul0.js} +4 -4
  19. package/dist/{vidstack-video-v_RKZWR5.js → vidstack-video-PWMSQ3Gk.js} +3 -3
  20. package/dist/{vidstack-vimeo-BCNYIpmz.js → vidstack-vimeo-C5Khtd48.js} +4 -4
  21. package/dist/{vidstack-youtube-C1DaWOJU.js → vidstack-youtube-CPcpsir2.js} +3 -3
  22. package/dist/{wt-action-bar-Ckg4xWY1.js → wt-action-bar-By55sdZf.js} +1 -1
  23. package/dist/{wt-button-select-DHqtUP4R.js → wt-button-select-C34W0lYV.js} +1 -1
  24. package/dist/{wt-chat-emoji-BVMxNx8W.js → wt-chat-emoji-DjgWXA_2.js} +2 -2
  25. package/dist/{wt-confirm-dialog-BNjF-amp.js → wt-confirm-dialog-GNka4gxY.js} +1 -1
  26. package/dist/{wt-context-menu-DkK9-qLI.js → wt-context-menu-Bjl5aGzG.js} +1 -1
  27. package/dist/{wt-copy-action-7hL0mEvW.js → wt-copy-action-Xo2DsqJZ.js} +1 -1
  28. package/dist/{wt-datepicker-Bvde1_4k.js → wt-datepicker-CL3jLy5h.js} +1 -1
  29. package/dist/wt-display-chip-items-CCNWd5Nt.js +47 -0
  30. package/dist/{wt-dual-panel-C6E7X3c8.js → wt-dual-panel-CMUeBmf-.js} +1 -1
  31. package/dist/{wt-dummy-oCvw9ZAO.js → wt-dummy-BOgeleXm.js} +1 -1
  32. package/dist/{wt-error-page-BWRGUdsV.js → wt-error-page-Ctl0-_Yp.js} +1 -1
  33. package/dist/{wt-expansion-card-DqdyzBFB.js → wt-expansion-card-BCOBdTuS.js} +1 -1
  34. package/dist/{wt-expansion-panel-CGYB7-8V.js → wt-expansion-panel-C7W_5dxd.js} +1 -1
  35. package/dist/{wt-filters-panel-wrapper-BdWYuFBU.js → wt-filters-panel-wrapper-CkLHeV4o.js} +1 -1
  36. package/dist/{wt-galleria-BBSNSwsR.js → wt-galleria-Bls8Xxh4.js} +2 -2
  37. package/dist/{wt-navigation-menu-CubDPnaE.js → wt-navigation-menu-CFPMD9o1.js} +1 -1
  38. package/dist/{wt-notifications-bar-B9gUZbnG.js → wt-notifications-bar-BTDN7hSn.js} +2 -2
  39. package/dist/{wt-pagination-Dafsnmhz.js → wt-pagination-DtjeKcpO.js} +1 -1
  40. package/dist/{wt-player-DxvKDEYJ.js → wt-player-Co3Ib7qU.js} +13 -13
  41. package/dist/wt-screen-recordings-action-CmY7R2B-.js +55 -0
  42. package/dist/{wt-search-bar-BSTKSDBo.js → wt-search-bar-CmN8Nq-n.js} +1 -1
  43. package/dist/{wt-selection-popup-D_mDRYjd.js → wt-selection-popup-BNKNa5jy.js} +1 -1
  44. package/dist/{wt-start-page-BYGMWDsS.js → wt-start-page-BC4r_EPK.js} +1 -1
  45. package/dist/{wt-status-select-BDFd1JE-.js → wt-status-select-CBq_ihcS.js} +11 -14
  46. package/dist/{wt-stepper-Db5aEz47.js → wt-stepper-DvmRISSE.js} +1 -1
  47. package/dist/{wt-table-92BKexHp.js → wt-table-BDnXcyai.js} +14 -14
  48. package/dist/{wt-table-actions-BTmBjf1Q.js → wt-table-actions-52X557c8.js} +1 -1
  49. package/dist/{wt-table-column-select-abILUxUr.js → wt-table-column-select-vKGXHla2.js} +2 -2
  50. package/dist/{wt-tabs-B21sWbPs.js → wt-tabs-zXlsvaeU.js} +16 -17
  51. package/dist/{wt-tags-input-DNA22dSR.js → wt-tags-input-B8w0KXPv.js} +2 -2
  52. package/dist/{wt-timepicker-CgowHF74.js → wt-timepicker-Cm4aLsPK.js} +1 -1
  53. package/dist/{wt-tree-CvHw827i.js → wt-tree-IVOTwA3x.js} +4 -4
  54. package/dist/{wt-tree-table-DWgEjAUG.js → wt-tree-table-zA7HHvru.js} +3 -3
  55. package/dist/{wt-type-extension-value-input-BvHowj58.js → wt-type-extension-value-input-DTmneCoP.js} +4 -7
  56. package/dist/{wt-vidstack-player-BnK8NLH3.js → wt-vidstack-player-DHmGgiDL.js} +13 -13
  57. package/package.json +7 -3
  58. package/src/api/clients/agents/agentChats.js +0 -1
  59. package/src/api/clients/agents/agents.js +1 -1
  60. package/src/api/clients/caseSources/caseSources.ts +1 -1
  61. package/src/api/clients/chatGateways/defaults/webChatGateway.js +5 -5
  62. package/src/api/clients/contactGroups/contactGroups.js +0 -1
  63. package/src/api/clients/queues/queues.js +16 -22
  64. package/src/api/clients/users/__tests__/users.spec.js +1 -1
  65. package/src/api/clients/users/users.js +10 -2
  66. package/src/api/clients//321/201ontacts/contacts.js +0 -1
  67. package/src/api/clients//321/201ontacts/index.js +1 -1
  68. package/src/api/defaults/getDefaultGetListResponse/getDefaultGetListResponse.js +1 -1
  69. package/src/api/transformers/addQueryParamsToUrl/addQueryParamsToUrl.transformer.js +2 -2
  70. package/src/api/transformers/sanitize/sanitize.transformer.js +2 -4
  71. package/src/api/websocket/WebSocketClientController.ts +6 -4
  72. package/src/components/index.js +10 -2
  73. package/src/components/on-demand/wt-screen-recordings-action/wt-screen-recordings-action.vue +72 -0
  74. package/src/components/wt-app-header/wt-app-navigator.vue +8 -11
  75. package/src/components/wt-button/__tests__/WtButton.spec.js +10 -5
  76. package/src/components/wt-button-select/__tests__/WtButtonSelect.spec.js +13 -16
  77. package/src/components/wt-checkbox/__tests__/WtCheckbox.spec.js +6 -2
  78. package/src/components/wt-chip/__tests__/WtChip.spec.js +3 -3
  79. package/src/components/wt-filters-panel-wrapper/__tests__/WtFiltersPanelWrapper.spec.js +4 -17
  80. package/src/components/wt-galleria/wt-galleria.vue +1 -1
  81. package/src/components/wt-icon/__tests__/WtIcon.spec.js +19 -2
  82. package/src/components/wt-intersection-observer/wt-intersection-observer.vue +1 -1
  83. package/src/components/wt-pagination/__tests__/WtPagination.spec.js +80 -16
  84. package/src/components/wt-player/src/components/buttons/mute-button.vue +0 -1
  85. package/src/components/wt-radio/__tests__/WtRadio.spec.js +8 -2
  86. package/src/components/wt-rounded-action/__tests__/WtRoundedAction.spec.js +98 -0
  87. package/src/components/wt-rounded-action/_variables.css +0 -3
  88. package/src/components/wt-select/mixins/multiselectMixin.js +0 -1
  89. package/src/components/wt-select/multiselect.css +2 -0
  90. package/src/components/wt-select/wt-select-v2.vue +3 -2
  91. package/src/components/wt-status-select/wt-status-select.vue +2 -4
  92. package/src/components/wt-switcher/__tests__/WtSwitcher.spec.js +9 -11
  93. package/src/components/wt-switcher/wt-switcher.vue +1 -1
  94. package/src/components/wt-table/wt-table.vue +1 -1
  95. package/src/components/wt-tabs/wt-tabs.vue +1 -2
  96. package/src/components/wt-textarea/__tests__/WtTextarea.spec.js +2 -2
  97. package/src/components/wt-textarea/wt-textarea.vue +3 -4
  98. package/src/components/wt-time-input/__tests__/WtTimeInput.spec.js +18 -1
  99. package/src/components/wt-timepicker/__tests__/WtTimepicker.spec.js +9 -15
  100. package/src/components/wt-tree/__tests__/WtTree.spec.js +1 -1
  101. package/src/components/wt-tree/wt-tree.vue +92 -60
  102. package/src/components/wt-tree-line/wt-tree-line.vue +2 -2
  103. package/src/components/wt-tree-table/wt-tree-table.vue +90 -84
  104. package/src/components/wt-tree-table-row/wt-tree-table-row.vue +2 -2
  105. package/src/components/wt-vidstack-player/components/panels/video-display-panel/video-display-panel.vue +2 -2
  106. package/src/components/wt-vidstack-player/composables/useVidstackSrc.ts +1 -1
  107. package/src/composables/useCachedInterval/__tests__/useCachedInterval.spec.js +1 -1
  108. package/src/composables/useCard/useCardComponent.js +1 -1
  109. package/src/composables/useInputControl/useInputControl.ts +1 -1
  110. package/src/composables/useRepresentableAgentPauseCause/__tests__/useRepresentableAgentPauseCause.spec.js +60 -80
  111. package/src/composables/useRepresentableAgentPauseCause/useRepresentableAgentPauseCause.js +1 -1
  112. package/src/composables/useTableColumnDrag/useTableColumnDrag.ts +1 -1
  113. package/src/enums/index.ts +0 -1
  114. package/src/install.ts +1 -1
  115. package/src/locale/kz/kz.js +2 -4
  116. package/src/locale/pl/pl.js +2 -4
  117. package/src/mixins/dataFilterMixins/__tests__/sortFilterMixin.spec.js +1 -1
  118. package/src/modules/AgentPdfs/components/agent-pdfs-tab.vue +104 -96
  119. package/src/modules/AgentStatusSelect/api/agent-status.js +9 -13
  120. package/src/modules/AgentStatusSelect/components/__tests__/wt-cc-agent-status-select.spec.js +6 -47
  121. package/src/modules/AgentStatusSelect/components/__tests__/wt-cc-pause-cause-popup.spec.js +31 -3
  122. package/src/modules/Appearance/components/__tests__/wt-dark-mode-switcher.spec.js +16 -10
  123. package/src/modules/AuditForm/components/audit-form.vue +1 -1
  124. package/src/modules/AuditForm/components/form-answers/answer-editing-info/audit-form-answer-editing-info.vue +1 -1
  125. package/src/modules/AuditForm/components/form-questions/options/__tests__/audit-form-question-options.spec.js +4 -6
  126. package/src/modules/AuditForm/components/form-questions/score/__tests__/audit-form-question-score.spec.js +2 -2
  127. package/src/modules/CSVExport/XLSExport.js +5 -7
  128. package/src/modules/CSVExport/composables/useCSVExport.ts +3 -3
  129. package/src/modules/CSVExport/mixins/exportCSVMixin.js +1 -5
  130. package/src/modules/CSVExport/mixins/exportXLSMixin.js +1 -5
  131. package/src/modules/DeleteConfirmationPopup/__tests__/delete-confirmation-popup.spec.js +7 -51
  132. package/src/modules/FilesExport/composables/useFilesExport.ts +1 -1
  133. package/src/modules/FilesExport/types/types.ts +1 -1
  134. package/src/modules/Filters/store/FiltersStoreModule.js +27 -27
  135. package/src/modules/Notifications/store/NotificationsStoreModule.js +1 -1
  136. package/src/modules/ObjectPermissions/_internals/store/helpers/createObjectPermissionsStoreModule.js +0 -4
  137. package/src/modules/ObjectPermissions/components/permissions-tab.vue +5 -7
  138. package/src/modules/QueryFilters/mixins/__tests__/apiFilterMixin.spec.js +2 -2
  139. package/src/modules/QueryFilters/mixins/__tests__/sortFilterMixin.spec.js +1 -1
  140. package/src/modules/QueryFilters/store/QueryFiltersStoreModule.js +5 -6
  141. package/src/modules/QueryFilters/store/__tests__/QueryFiltersStoreModule.spec.js +12 -8
  142. package/src/modules/TableStoreModule/store/TableStoreModule.js +10 -18
  143. package/src/modules/UploadCsvPopup/scripts/normalizeCSVData.ts +9 -9
  144. package/src/modules/UploadCsvPopup/scripts/parseCSV.ts +1 -1
  145. package/src/modules/Userinfo/composables/createUserAccessControl.ts +2 -2
  146. package/src/modules/Userinfo/composables/types/CreateUserAccessControl.d.ts +2 -4
  147. package/src/modules/Userinfo/scripts/utils.ts +4 -2
  148. package/src/scripts/compareSize.ts +7 -6
  149. package/src/store/new/modules/tableStoreModule/tableStoreModule.js +17 -29
  150. package/src/validations/vuelidate/validators/decimalValidator.js +2 -1
  151. package/src/validations/vuelidate/validators/websocketValidator/websocketValidator.js +1 -1
  152. package/types/api/clients//321/201ontacts/index.d.ts +2 -2
  153. package/types/api/defaults/getDefaultGetListResponse/getDefaultGetListResponse.d.ts +1 -1
  154. package/types/components/on-demand/wt-screen-recordings-action/wt-screen-recordings-action.vue.d.ts +10 -0
  155. package/types/components/wt-switcher/wt-switcher.vue.d.ts +1 -1
  156. package/types/components/wt-table/wt-table.vue.d.ts +1 -1
  157. package/types/components/wt-textarea/wt-textarea.vue.d.ts +3 -4
  158. package/types/components/wt-tree/wt-tree.vue.d.ts +6 -6
  159. package/types/components/wt-tree-line/wt-tree-line.vue.d.ts +2 -2
  160. package/types/components/wt-tree-table/wt-tree-table.vue.d.ts +2 -2
  161. package/types/components/wt-tree-table-row/wt-tree-table-row.vue.d.ts +1 -1
  162. package/types/install.d.ts +1 -2
  163. package/types/modules/AgentPdfs/components/agent-pdfs-tab.vue.d.ts +1 -1
  164. package/types/modules/CSVExport/composables/useCSVExport.d.ts +3 -3
  165. package/types/modules/FilesExport/composables/useFilesExport.d.ts +1 -1
  166. package/types/modules/FilesExport/types/types.d.ts +1 -1
  167. package/types/modules/Filters/store/FiltersStoreModule.d.ts +2 -2
  168. package/types/modules/Notifications/store/NotificationsStoreModule.d.ts +1 -1
  169. package/types/modules/TableStoreModule/store/TableStoreModule.d.ts +2 -2
  170. package/types/modules/Userinfo/composables/createUserAccessControl.d.ts +2 -2
  171. package/types/modules/Userinfo/scripts/utils.d.ts +1 -1
  172. package/types/store/new/modules/tableStoreModule/tableStoreModule.d.ts +2 -2
  173. package/dist/wt-display-chip-items-DPoEtUZ-.js +0 -46
  174. package/src/components/wt-copy-action/__tests__/WtCopyAction.spec.js +0 -15
  175. package/src/components/wt-divider/__tests__/WtDivider.spec.js +0 -10
  176. package/src/components/wt-slider/__tests__/WtSlider.spec.js +0 -10
  177. package/src/components/wt-table/__tests__/WtTable.spec.js +0 -140
  178. package/src/modules/Filters/components/__tests__/filter-pagination.spec.js +0 -109
  179. package/src/modules/Filters/components/__tests__/filter-table-fields.spec.js +0 -112
  180. package/types/components/wt-copy-action/__tests__/WtCopyAction.spec.d.ts +0 -1
  181. package/types/components/wt-divider/__tests__/WtDivider.spec.d.ts +0 -1
  182. package/types/components/wt-slider/__tests__/WtSlider.spec.d.ts +0 -1
  183. package/types/components/wt-table/__tests__/WtTable.spec.d.ts +0 -1
  184. package/types/modules/Filters/components/__tests__/filter-pagination.spec.d.ts +0 -1
  185. package/types/modules/Filters/components/__tests__/filter-table-fields.spec.d.ts +0 -1
@@ -1,5 +1,5 @@
1
- import { createElementBlock as n, openBlock as r, normalizeClass as o, createElementVNode as a, Fragment as c, renderList as d, renderSlot as f, normalizeProps as h, guardReactiveProps as u, toDisplayString as v, normalizeStyle as m } from "vue";
2
- import { _ as p } from "./install-C_4PcYy4.js";
1
+ import { createElementBlock as s, openBlock as a, normalizeClass as o, createElementVNode as r, Fragment as c, renderList as d, renderSlot as u, normalizeProps as f, guardReactiveProps as h, toDisplayString as v, normalizeStyle as m } from "vue";
2
+ import { _ as p } from "./install-Dofcp90y.js";
3
3
  const _ = {
4
4
  name: "WtTabs",
5
5
  model: {
@@ -32,34 +32,33 @@ const _ = {
32
32
  this.$emit("change", e), this.moveActiveLine(e);
33
33
  },
34
34
  moveActiveLine(e) {
35
- if (!this.current || !this.$refs || !this.$refs[e] || !this.$refs[e][0])
36
- return;
37
- const s = this.$refs[e][0];
38
- this.activeLineWidth = s.clientWidth, this.activeLineOffset = s.offsetLeft;
35
+ if (!this.current || !this.$refs?.[e]?.[0]) return;
36
+ const i = this.$refs[e][0];
37
+ this.activeLineWidth = i.clientWidth, this.activeLineOffset = i.offsetLeft;
39
38
  }
40
39
  }
41
40
  }, y = ["value", "onClick"], b = { style: { display: "block" } }, g = { class: "wt-tabs__underline" };
42
- function L(e, s, i, w, $, l) {
43
- return r(), n("nav", {
41
+ function w(e, i, n, L, k, l) {
42
+ return a(), s("nav", {
44
43
  class: o([{
45
- "wt-tabs--wide": i.wide
44
+ "wt-tabs--wide": n.wide
46
45
  }, "wt-tabs"])
47
46
  }, [
48
- (r(!0), n(c, null, d(i.tabs, (t) => (r(), n("button", {
47
+ (a(!0), s(c, null, d(n.tabs, (t) => (a(), s("button", {
49
48
  key: t.value,
50
49
  class: o([{
51
- "wt-tab--highlight": t.value === i.current.value
50
+ "wt-tab--highlight": t.value === n.current.value
52
51
  }, "wt-tab typo-body-1-bold"]),
53
52
  value: t.text,
54
53
  type: "button",
55
- onClick: (k) => l.open(t)
54
+ onClick: ($) => l.open(t)
56
55
  }, [
57
- f(e.$slots, t.value, h(u({ tab: t, current: i.current })), () => [
58
- a("span", b, v(t.text), 1)
56
+ u(e.$slots, t.value, f(h({ tab: t, current: n.current })), () => [
57
+ r("span", b, v(t.text), 1)
59
58
  ], !0)
60
59
  ], 10, y))), 128)),
61
- a("div", g, [
62
- a("div", {
60
+ r("div", g, [
61
+ r("div", {
63
62
  style: m({
64
63
  width: `${e.activeLineWidth}px`,
65
64
  transform: `translateX(${e.activeLineOffset}px)`
@@ -69,7 +68,7 @@ function L(e, s, i, w, $, l) {
69
68
  ])
70
69
  ], 2);
71
70
  }
72
- const O = /* @__PURE__ */ p(_, [["render", L], ["__scopeId", "data-v-7f4be02f"]]);
71
+ const O = /* @__PURE__ */ p(_, [["render", w], ["__scopeId", "data-v-a6f6f0f3"]]);
73
72
  export {
74
73
  O as default
75
74
  };
@@ -1,5 +1,5 @@
1
- import { d as O } from "./index-B_bOPX3o.js";
2
- import { G as h, _ as E, C as S, M as z, H as A, J as B } from "./install-C_4PcYy4.js";
1
+ import { d as O } from "./index-DZ_bvNVs.js";
2
+ import { G as h, _ as E, C as S, M as z, H as A, J as B } from "./install-Dofcp90y.js";
3
3
  import { resolveComponent as n, resolveDirective as R, createElementBlock as I, openBlock as v, normalizeClass as P, createBlock as p, createCommentVNode as c, createVNode as o, mergeProps as g, withCtx as a, renderSlot as b, normalizeProps as f, guardReactiveProps as $, createTextVNode as d, toDisplayString as r, toHandlers as j, createSlots as q, withDirectives as V, createElementVNode as w, vShow as H, withModifiers as N } from "vue";
4
4
  const D = {
5
5
  props: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as q, toRefs as R, computed as o, resolveComponent as w, createElementBlock as O, openBlock as d, normalizeClass as j, unref as t, createBlock as r, createCommentVNode as m, createElementVNode as A, mergeProps as F, withCtx as x, renderSlot as G, normalizeProps as J, guardReactiveProps as K, createTextVNode as S, toDisplayString as y, nextTick as Q } from "vue";
2
- import { B as W, z as X, C as Y, M as Z, _ as ee } from "./install-C_4PcYy4.js";
2
+ import { B as W, z as X, C as Y, M as Z, _ as ee } from "./install-Dofcp90y.js";
3
3
  const le = { class: "wt-timepicker__wrapper" }, c = 3600, M = 60, ae = /* @__PURE__ */ q({
4
4
  __name: "wt-timepicker",
5
5
  props: {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as z, computed as L, ref as J, onMounted as K, watch as Q, resolveComponent as I, createElementBlock as v, openBlock as i, Fragment as x, createElementVNode as D, withDirectives as X, renderSlot as T, createBlock as w, createCommentVNode as b, renderList as A, normalizeClass as M, toDisplayString as O, createVNode as Y, withCtx as W, createSlots as U, normalizeProps as q, guardReactiveProps as F, vShow as Z, unref as N } from "vue";
2
- import { d as P } from "./index-B_bOPX3o.js";
3
- import { W as _, _ as R } from "./install-C_4PcYy4.js";
2
+ import { d as P } from "./index-DZ_bvNVs.js";
3
+ import { W as _, _ as R } from "./install-Dofcp90y.js";
4
4
  const ee = { class: "wt-tree-line" }, te = { class: "wt-tree-line__icon-wrapper" }, ae = { class: "wt-tree-line__label typo-body-1" }, le = /* @__PURE__ */ z({
5
5
  __name: "wt-tree-line",
6
6
  props: {
@@ -191,7 +191,7 @@ const ee = { class: "wt-tree-line" }, te = { class: "wt-tree-line__icon-wrapper"
191
191
  ], 64);
192
192
  };
193
193
  }
194
- }), ne = /* @__PURE__ */ R(le, [["__scopeId", "data-v-d55e887f"]]), S = {
194
+ }), ne = /* @__PURE__ */ R(le, [["__scopeId", "data-v-ced3d83b"]]), S = {
195
195
  Tree: "tree",
196
196
  List: "list"
197
197
  }, ie = { class: "wt-tree" }, de = {
@@ -269,7 +269,7 @@ const ee = { class: "wt-tree-line" }, te = { class: "wt-tree-line__icon-wrapper"
269
269
  ]);
270
270
  };
271
271
  }
272
- }), fe = /* @__PURE__ */ R(se, [["__scopeId", "data-v-f54f77d3"]]);
272
+ }), fe = /* @__PURE__ */ R(se, [["__scopeId", "data-v-f86ae40a"]]);
273
273
  export {
274
274
  fe as default
275
275
  };
@@ -1,5 +1,5 @@
1
1
  import { computed as C, unref as B, defineComponent as z, ref as M, onMounted as D, resolveComponent as L, createElementBlock as d, openBlock as l, Fragment as $, createElementVNode as u, createCommentVNode as b, normalizeClass as T, renderList as m, renderSlot as p, createBlock as x, createTextVNode as U, toDisplayString as H, createSlots as W, withCtx as I, toRef as O, normalizeStyle as Q, withModifiers as j, createVNode as q } from "vue";
2
- import { B as G, P as R, Q as J, _ as F, F as X } from "./install-C_4PcYy4.js";
2
+ import { B as G, P as R, Q as J, _ as F, F as X } from "./install-Dofcp90y.js";
3
3
  const Y = ({ headers: e }) => {
4
4
  const { t: y } = G();
5
5
  return {
@@ -133,7 +133,7 @@ const Y = ({ headers: e }) => {
133
133
  ], 64);
134
134
  };
135
135
  }
136
- }), ae = /* @__PURE__ */ F(te, [["__scopeId", "data-v-cc6e42bc"]]), le = { class: "wt-tree-table wt-scrollbar" }, se = { class: "wt-tree-table-wrapper" }, re = { class: "wt-tree-table-head" }, oe = { class: "wt-tree-table-tr wt-tree-table-tr-head" }, ne = ["onClick"], de = { class: "wt-tree-table-th__text" }, ce = {
136
+ }), ae = /* @__PURE__ */ F(te, [["__scopeId", "data-v-8381ad70"]]), le = { class: "wt-tree-table wt-scrollbar" }, se = { class: "wt-tree-table-wrapper" }, re = { class: "wt-tree-table-head" }, oe = { class: "wt-tree-table-tr wt-tree-table-tr-head" }, ne = ["onClick"], de = { class: "wt-tree-table-th__text" }, ce = {
137
137
  key: 0,
138
138
  class: "wt-tree-table-th__actions"
139
139
  }, ie = { class: "wt-tree-table-th__content" }, ue = { class: "wt-tree-table-body" }, he = /* @__PURE__ */ z({
@@ -279,7 +279,7 @@ const Y = ({ headers: e }) => {
279
279
  ]);
280
280
  };
281
281
  }
282
- }), ve = /* @__PURE__ */ F(he, [["__scopeId", "data-v-a909d186"]]);
282
+ }), ve = /* @__PURE__ */ F(he, [["__scopeId", "data-v-721c9bc6"]]);
283
283
  export {
284
284
  ve as default
285
285
  };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as we, mergeModels as Re, useModel as Ae, computed as x, resolveComponent as $, createBlock as Z, renderSlot as F, createCommentVNode as De, unref as D, openBlock as ee, mergeProps as _, createVNode as P } from "vue";
2
- import { ag as ve, ah as Oe, O as Ee, ai as Ce, aj as qe, B as ke, ak as Se, al as te, am as xe } from "./install-C_4PcYy4.js";
3
- import { d as _e } from "./index-eEFER0lI.js";
2
+ import { ag as ve, ah as Oe, O as Ee, ai as Ce, aj as qe, B as ke, ak as Se, al as te, am as xe } from "./install-Dofcp90y.js";
3
+ import { d as _e } from "./index-CeADjYK9.js";
4
4
  import { get as Ue, set as Be } from "lodash-es";
5
5
  import "@aliasedDeps/api-services/axios";
6
6
  import * as e from "zod";
@@ -11,7 +11,7 @@ const C = {
11
11
  Multiselect: "list",
12
12
  Calendar: "datetime",
13
13
  Boolean: "bool"
14
- }, se = ({} = {}) => ({
14
+ }, se = () => ({
15
15
  items: [],
16
16
  next: !1
17
17
  }), le = ({ page: o = 1, size: t = 10 } = {}) => ({
@@ -422,10 +422,7 @@ const fe = /* @__PURE__ */ Ee($e), L = (...o) => (t) => fe.all([
422
422
  }), a);
423
423
  }
424
424
  return o instanceof Error && (o.response?.data?.translation || o.response?.data?.detail || o.response?.data?.message), o;
425
- }, he = (o) => (t) => Object.keys(t).reduce((a, i) => o.indexOf(i) === -1 ? a : {
426
- ...a,
427
- [i]: t[i]
428
- }, {}), ae = (o = []) => (t) => Ce(t, o), ye = (o = "search") => (t) => {
425
+ }, he = (o) => (t) => Object.keys(t).reduce((a, i) => (o.indexOf(i) === -1 || (a[i] = t[i]), a), {}), ae = (o = []) => (t) => Ce(t, o), ye = (o = "search") => (t) => {
429
426
  const a = _e(t), i = Ue(a, o);
430
427
  return !i || i.slice(-1) === "*" ? a : Be(a, o, `${i}*`);
431
428
  }, re = "acl", tt = (o) => o.map((t) => ({
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as lt, inject as ge, createElementBlock as mt, openBlock as G, normalizeClass as ye, unref as ot, createElementVNode as at, renderSlot as Wt, createVNode as U, useTemplateRef as qi, onMounted as _i, onBeforeUnmount as Ii, createBlock as Gt, createCommentVNode as Ut, toDisplayString as Vi, resolveComponent as Di, withCtx as _e, ref as us, provide as Ri, toRefs as Oi } from "vue";
2
- import { a as q, c as ft, i as B, b as Ie, d as S, e as nt, f as Ve, l as O, s as Zt, g as Ds, E as Rs, D as L, h as Q, o as x, j as Ni, k as f, m as l, n as M, p as Os, q as Hi, r as oe, t as W, V as J, v as w, C as b, S as gt, w as It, x as p, y as rt, z, I as Ns, A as Fi, B as Bi, F as tt, G as Ge, H as Hs, J as ps, K as Ue, L as Fs, M as Tt, N as Ke, O as de, P as Gi, Q as xt, R as Ui, U as Ki, W as Qi, X as Wi, Y as zi, Z as ji, _ as Yi, $ as Xi, a0 as Ji, a1 as Bs, a2 as T, a3 as _, a4 as ce, a5 as Zi, a6 as Vt, a7 as K, a8 as ta, a9 as ea, aa as sa, ab as ia, ac as ms, ad as aa, ae as na, af as v, ag as y, ah as ra, ai as oa, T as ha, u as la } from "./useVidstackSrc-BjBi-Z6a.js";
3
- import { T as da, U as ca, V as ua, X as pa, _ as dt, Q as zt, Y as ma, C as Y } from "./install-C_4PcYy4.js";
2
+ import { a as q, c as ft, i as B, b as Ie, d as S, e as nt, f as Ve, l as O, s as Zt, g as Ds, E as Rs, D as L, h as Q, o as x, j as Ni, k as f, m as l, n as M, p as Os, q as Hi, r as oe, t as W, V as J, v as w, C as b, S as gt, w as It, x as p, y as rt, z, I as Ns, A as Fi, B as Bi, F as tt, G as Ge, H as Hs, J as ps, K as Ue, L as Fs, M as Tt, N as Ke, O as de, P as Gi, Q as xt, R as Ui, U as Ki, W as Qi, X as Wi, Y as zi, Z as ji, _ as Yi, $ as Xi, a0 as Ji, a1 as Bs, a2 as T, a3 as _, a4 as ce, a5 as Zi, a6 as Vt, a7 as K, a8 as ta, a9 as ea, aa as sa, ab as ia, ac as ms, ad as aa, ae as na, af as v, ag as y, ah as ra, ai as oa, T as ha, u as la } from "./useVidstackSrc-D9uo15mF.js";
3
+ import { T as da, U as ca, V as ua, X as pa, _ as dt, Q as zt, Y as ma, C as Y } from "./install-Dofcp90y.js";
4
4
  import { _ as fa } from "./wt-slider.vue_vue_type_script_setup_true_lang-DlaRDHxo.js";
5
5
  const Gs = ft();
6
6
  function $() {
@@ -2070,7 +2070,7 @@ class cn {
2070
2070
  return "audio";
2071
2071
  }
2072
2072
  async load(t) {
2073
- return new (await import("./vidstack-audio-DmysFuAQ.js")).AudioProvider(this.target, t);
2073
+ return new (await import("./vidstack-audio-BrbZotHa.js")).AudioProvider(this.target, t);
2074
2074
  }
2075
2075
  }
2076
2076
  class je {
@@ -2083,7 +2083,7 @@ class je {
2083
2083
  return "video";
2084
2084
  }
2085
2085
  async load(t) {
2086
- return new (await import("./vidstack-video-v_RKZWR5.js")).VideoProvider(this.target, t);
2086
+ return new (await import("./vidstack-video-PWMSQ3Gk.js")).VideoProvider(this.target, t);
2087
2087
  }
2088
2088
  }
2089
2089
  class Ye extends je {
@@ -2093,7 +2093,7 @@ class Ye extends je {
2093
2093
  return Ye.supported && Ge(t);
2094
2094
  }
2095
2095
  async load(t) {
2096
- return new (await import("./vidstack-hls-BLaXkLiF.js")).HLSProvider(this.target, t);
2096
+ return new (await import("./vidstack-hls-BfOysul0.js")).HLSProvider(this.target, t);
2097
2097
  }
2098
2098
  }
2099
2099
  class Xe extends je {
@@ -2103,7 +2103,7 @@ class Xe extends je {
2103
2103
  return Xe.supported && Ue(t);
2104
2104
  }
2105
2105
  async load(t) {
2106
- return new (await import("./vidstack-dash-CF4d8BuX.js")).DASHProvider(this.target, t);
2106
+ return new (await import("./vidstack-dash-KNjyvq2R.js")).DASHProvider(this.target, t);
2107
2107
  }
2108
2108
  }
2109
2109
  class un {
@@ -2125,7 +2125,7 @@ class un {
2125
2125
  return "video";
2126
2126
  }
2127
2127
  async load(t) {
2128
- return new (await import("./vidstack-vimeo-BCNYIpmz.js")).VimeoProvider(this.target, t);
2128
+ return new (await import("./vidstack-vimeo-C5Khtd48.js")).VimeoProvider(this.target, t);
2129
2129
  }
2130
2130
  async loadPoster(t, e, s) {
2131
2131
  const { resolveVimeoVideoId: i, getVimeoVideoInfo: n } = await import("./vidstack-krOAtKMi-C50BTxmn.js");
@@ -2157,7 +2157,7 @@ class pn {
2157
2157
  return "video";
2158
2158
  }
2159
2159
  async load(t) {
2160
- return new (await import("./vidstack-youtube-C1DaWOJU.js")).YouTubeProvider(this.target, t);
2160
+ return new (await import("./vidstack-youtube-CPcpsir2.js")).YouTubeProvider(this.target, t);
2161
2161
  }
2162
2162
  async loadPoster(t, e, s) {
2163
2163
  const { findYouTubePoster: i, resolveYouTubeVideoId: n } = await import("./vidstack-Dm1xEU9Q-CXHNvShT.js"), r = S(t.src) && n(t.src);
@@ -2625,7 +2625,7 @@ class bn extends Pt {
2625
2625
  throw i.code = "CAST_NOT_AVAILABLE", i;
2626
2626
  }
2627
2627
  if (te("https://www.gstatic.com"), !this.#v) {
2628
- const i = await import("./vidstack-D2pY00kU-DtEQuJNJ.js").then((n) => n.v);
2628
+ const i = await import("./vidstack-D2pY00kU-BVC5bxHL.js").then((n) => n.v);
2629
2629
  this.#v = new i.GoogleCastLoader();
2630
2630
  }
2631
2631
  await this.#v.prompt(this.#s), t && this.#e.queue.enqueue("media-google-cast-request", t);
@@ -8022,7 +8022,7 @@ class Mr extends v(HTMLElement, ii) {
8022
8022
  if (this.#e?.classList.contains("vds-google-cast"))
8023
8023
  return this.#e;
8024
8024
  const t = document.createElement("div");
8025
- return t.classList.add("vds-google-cast"), import("./vidstack-D_-9AA6_-BUgV5EDC.js").then(({ insertContent: e }) => {
8025
+ return t.classList.add("vds-google-cast"), import("./vidstack-D_-9AA6_-C0QZLaX5.js").then(({ insertContent: e }) => {
8026
8026
  e(t, this.#t.$state);
8027
8027
  }), t;
8028
8028
  }
@@ -8848,8 +8848,8 @@ const Wo = { class: "controls-group__actions" }, zo = /* @__PURE__ */ lt({
8848
8848
  U(Xo, { onToggle: o }),
8849
8849
  n.hideExpand ? Ut("", !0) : (G(), Gt(th, {
8850
8850
  key: 0,
8851
- "primary-icon": "expand",
8852
- "secondary-icon": "collapse",
8851
+ "primary-icon": "collapse",
8852
+ "secondary-icon": "expand",
8853
8853
  color: "on-dark",
8854
8854
  onToggle: h
8855
8855
  })),
@@ -8862,7 +8862,7 @@ const Wo = { class: "controls-group__actions" }, zo = /* @__PURE__ */ lt({
8862
8862
  ])
8863
8863
  ], 2));
8864
8864
  }
8865
- }), nh = /* @__PURE__ */ dt(ah, [["__scopeId", "data-v-6fec01ca"]]), rh = { class: "video-display-panel-wrapper" }, oh = { class: "video-layout-content" }, hh = { class: "video-layout-controls" }, lh = /* @__PURE__ */ lt({
8865
+ }), nh = /* @__PURE__ */ dt(ah, [["__scopeId", "data-v-cc6668f0"]]), rh = { class: "video-display-panel-wrapper" }, oh = { class: "video-layout-content" }, hh = { class: "video-layout-controls" }, lh = /* @__PURE__ */ lt({
8866
8866
  __name: "video-layout",
8867
8867
  props: {
8868
8868
  title: {},
package/package.json CHANGED
@@ -1,13 +1,16 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "26.4.17",
3
+ "version": "26.4.19",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "make-all": "npm version patch --git-tag-version false && npm run build && (npm run build:types || true) && (npm run biome:format:all || true) && npm run publish-lib",
7
7
  "dev": "npm run docs:dev",
8
8
  "build": "vite build",
9
- "test:unit": "vitest",
9
+ "test:unit": "vitest run",
10
+ "test:unit:watch": "vitest",
11
+ "test:coverage": "vitest run --coverage",
10
12
  "biome:format:all": "npx biome check --write ./src",
13
+ "biome:ci:gh": "biome ci ./src --reporter=github",
11
14
  "build:types": "vue-tsc -p ./tsconfig.build.json",
12
15
  "publish-lib": " npm publish --access public --tag latest",
13
16
  "docs:dev": "vitepress dev docs",
@@ -111,11 +114,12 @@
111
114
  }
112
115
  },
113
116
  "devDependencies": {
114
- "@biomejs/biome": "^2.3.11",
117
+ "@biomejs/biome": "^2.4.10",
115
118
  "@regle/core": "^1.16.2",
116
119
  "@tsconfig/node22": "^22.0.0",
117
120
  "@types/node": "^22.13.10",
118
121
  "@vitejs/plugin-vue": "^6.0.3",
122
+ "@vitest/coverage-v8": "^4.1.3",
119
123
  "@vue/compat": "^3.5.x",
120
124
  "@vue/test-utils": "^2.4.6",
121
125
  "@vue/tsconfig": "^0.8.1",
@@ -10,7 +10,6 @@ import applyTransform, {
10
10
  merge,
11
11
  notify,
12
12
  snakeToCamel,
13
- starToSearch,
14
13
  } from '../../transformers/index.js';
15
14
 
16
15
  const { t } = i18n.global;
@@ -241,7 +241,7 @@ const getAgentHistory = async (params) => {
241
241
  };
242
242
 
243
243
  const getAgentUsersOptions = async (params) => {
244
- const { page, size, search, sort, fields, id } = applyTransform(params, [
244
+ const { page, size, search /* sort, fields, id */ } = applyTransform(params, [
245
245
  merge(getDefaultGetParams()),
246
246
  starToSearch('search'),
247
247
  ]);
@@ -5,7 +5,7 @@ import {
5
5
  UpdateSourceBody,
6
6
  } from '@webitel/api-services/gen';
7
7
  import {
8
- getFieldsToSendFromZodSchema,
8
+ // getFieldsToSendFromZodSchema,
9
9
  getShallowFieldsToSendFromZodSchema,
10
10
  } from '@webitel/api-services/gen/utils';
11
11
 
@@ -57,13 +57,13 @@ const webChatGateway = (_btnCodeDirty = false) => ({
57
57
  id: '',
58
58
  },
59
59
  alternativeChannels: Object.values(WebchatAlternativeChannel).reduce(
60
- (channels, channel) => ({
61
- ...channels,
62
- [channel]: {
60
+ (channels, channel) => {
61
+ channels[channel] = {
63
62
  url: '',
64
63
  enabled: false,
65
- },
66
- }),
64
+ };
65
+ return channels;
66
+ },
67
67
  {},
68
68
  ),
69
69
  },
@@ -13,7 +13,6 @@ import applyTransform, {
13
13
  notify,
14
14
  sanitize,
15
15
  snakeToCamel,
16
- starToSearch,
17
16
  } from '../../transformers/index.js';
18
17
  import { generatePermissionsApi } from '../_shared/generatePermissionsApi.js';
19
18
 
@@ -57,10 +57,8 @@ const preRequestHandler = (item) => {
57
57
  const copy = deepCopy(item);
58
58
  copy.variables = copy.variables.reduce((variables, variable) => {
59
59
  if (!variable.key) return variables;
60
- return {
61
- ...variables,
62
- [variable.key]: variable.value,
63
- };
60
+ variables[variable.key] = variable.value;
61
+ return variables;
64
62
  }, {});
65
63
  return copy;
66
64
  };
@@ -118,25 +116,21 @@ const getQueue = async ({ itemId: id }) => {
118
116
  };
119
117
  const responseHandler = (item) => {
120
118
  const copy = deepCopy(item);
121
- try {
122
- if (copy.variables) {
123
- copy.variables = Object.keys(copy.variables).map((key) => ({
124
- key,
125
- value: copy.variables[key],
126
- }));
127
- }
128
- if (isEmpty(copy.taskProcessing)) {
129
- copy.taskProcessing = processing({
130
- enabled: !!copy.processing,
131
- formSchema: copy.formSchema,
132
- sec: copy.processingSec || 0,
133
- renewalSec: copy.processingRenewalSec || 0,
134
- });
135
- }
136
- return copy;
137
- } catch (err) {
138
- throw err;
119
+ if (copy.variables) {
120
+ copy.variables = Object.keys(copy.variables).map((key) => ({
121
+ key,
122
+ value: copy.variables[key],
123
+ }));
124
+ }
125
+ if (isEmpty(copy.taskProcessing)) {
126
+ copy.taskProcessing = processing({
127
+ enabled: !!copy.processing,
128
+ formSchema: copy.formSchema,
129
+ sec: copy.processingSec || 0,
130
+ renewalSec: copy.processingRenewalSec || 0,
131
+ });
139
132
  }
133
+ return copy;
140
134
  };
141
135
  try {
142
136
  const response = await queueService.readQueue(id);
@@ -29,7 +29,7 @@ describe('UsersAPI', () => {
29
29
  'vitest',
30
30
  ],
31
31
  };
32
- const url = '/users?fields=id&fields=name&fields=vitest&page=1&size=10';
32
+ const url = '/users?page=1&size=10&fields=id&fields=name&fields=vitest';
33
33
  await UsersAPI.getList(inputParams);
34
34
  expect(get).toHaveBeenCalledWith(url);
35
35
  });
@@ -144,9 +144,17 @@ const preRequestHandler = (item) => {
144
144
  const copy = deepCopy(item);
145
145
  if (item.device && !item.device.id) delete copy.device;
146
146
 
147
- if (copy.roles) copy.roles.forEach((copy) => delete copy.text);
147
+ if (copy.roles) {
148
+ copy.roles.forEach((role) => {
149
+ delete role.text;
150
+ });
151
+ }
148
152
 
149
- if (copy.devices) copy.devices.forEach((copy) => delete copy.text);
153
+ if (copy.devices) {
154
+ copy.devices.forEach((device) => {
155
+ delete device.text;
156
+ });
157
+ }
150
158
  if (copy.license) {
151
159
  copy.license = copy.license.map((copy) => ({
152
160
  id: copy.id,
@@ -179,7 +179,6 @@ const getList = async (params) => {
179
179
  id,
180
180
  qin,
181
181
  mode,
182
- group_id,
183
182
  group,
184
183
  not_id_group,
185
184
  owner,
@@ -2,4 +2,4 @@ import contactChatMessagesHistory from './contactChatMessagesHistory.js';
2
2
  import contacts from './contacts.js';
3
3
  import ContactsSearchMode from './enums/ContactsSearchMode.js';
4
4
 
5
- export { contactChatMessagesHistory, contacts, ContactsSearchMode };
5
+ export { ContactsSearchMode, contactChatMessagesHistory, contacts };
@@ -1,4 +1,4 @@
1
- const getDefaultGetListResponse = ({} = {}) => ({
1
+ const getDefaultGetListResponse = () => ({
2
2
  items: [],
3
3
  next: false,
4
4
  });
@@ -6,12 +6,12 @@ const addQueryParamsToUrl = (queryArray) => (url) => {
6
6
 
7
7
  if (queryArray && queryArray.length > 0) {
8
8
  if (modifyUrl.includes('?')) {
9
- modifyUrl += '&' + queryArray.join('&');
9
+ modifyUrl += `&${queryArray.join('&')}`;
10
10
 
11
11
  return modifyUrl;
12
12
  }
13
13
 
14
- modifyUrl += '?' + queryArray.join('&');
14
+ modifyUrl += `?${queryArray.join('&')}`;
15
15
  }
16
16
 
17
17
  return modifyUrl;
@@ -2,10 +2,8 @@ const sanitizeTransformer = (fieldsToSend) => (item) => {
2
2
  return Object.keys(item).reduce((sanitizedItem, key) => {
3
3
  if (fieldsToSend.indexOf(key) === -1) return sanitizedItem;
4
4
 
5
- return {
6
- ...sanitizedItem,
7
- [key]: item[key],
8
- };
5
+ sanitizedItem[key] = item[key];
6
+ return sanitizedItem;
9
7
  }, {});
10
8
  };
11
9
 
@@ -52,10 +52,12 @@ class WebSocketClientController {
52
52
  // const cli = new Client(config);
53
53
  const cli = shallowReactive(new Client(config));
54
54
 
55
- this._on[WebSocketClientEvent.AFTER_AUTH].forEach((callback) => callback());
56
- this._on[WebSocketClientEvent.ERROR].forEach((callback) =>
57
- cli.on('error', callback),
58
- );
55
+ this._on[WebSocketClientEvent.AFTER_AUTH].forEach((callback) => {
56
+ callback();
57
+ });
58
+ this._on[WebSocketClientEvent.ERROR].forEach((callback) => {
59
+ cli.on('error', callback);
60
+ });
59
61
  cli.on('show_message', (e) =>
60
62
  eventBus.$emit('notification', {
61
63
  type: e.type,
@@ -155,6 +155,12 @@ const WtTypeExtensionValueInput = defineAsyncComponent(
155
155
  './on-demand/wt-type-extension-value-input/wt-type-extension-value-input.vue'
156
156
  ),
157
157
  );
158
+ const WtScreenRecordingsAction = defineAsyncComponent(
159
+ () =>
160
+ import(
161
+ './on-demand/wt-screen-recordings-action/wt-screen-recordings-action.vue'
162
+ ),
163
+ );
158
164
 
159
165
  const Components = {
160
166
  WtActionBar,
@@ -236,6 +242,7 @@ const Components = {
236
242
  WtChatEmoji,
237
243
  WtExpansionCard,
238
244
  WtDatetimeText,
245
+ WtScreenRecordingsAction,
239
246
  };
240
247
 
241
248
  export {
@@ -255,12 +262,14 @@ export {
255
262
  WtContextMenu,
256
263
  WtCopyAction,
257
264
  WtDatepicker,
265
+ WtDatetimeText,
258
266
  WtDisplayChipItems,
259
267
  WtDivider,
260
268
  WtDualPanel,
261
269
  WtDummy,
262
270
  WtEmpty,
263
271
  WtErrorPage,
272
+ WtExpansionCard,
264
273
  WtExpansionPanel,
265
274
  WtFiltersPanelWrapper,
266
275
  WtGalleria,
@@ -296,6 +305,7 @@ export {
296
305
  WtRadio,
297
306
  WtReplaceTransition,
298
307
  WtRoundedAction,
308
+ WtScreenRecordingsAction,
299
309
  WtSearchBar,
300
310
  WtSelect,
301
311
  WtSelectionPopup,
@@ -317,8 +327,6 @@ export {
317
327
  WtTreeTable,
318
328
  WtTypeExtensionValueInput,
319
329
  WtVidstackPlayer,
320
- WtExpansionCard,
321
- WtDatetimeText,
322
330
  };
323
331
 
324
332
  export default Components;
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <div class="wt-screen-recordings-action">
3
+ <wt-context-menu
4
+ :options="contextOptions"
5
+ max-width="400px"
6
+ @click="handleOptionSelect"
7
+ >
8
+ <template #activator="{ toggle }">
9
+ <wt-icon-btn
10
+ v-if="contextOptions?.length"
11
+ icon="preview-tag-video"
12
+ @click="toggle"
13
+ />
14
+ </template>
15
+ <template #option="{ text }">
16
+ <div class="wt-screen-recordings-action__option">
17
+ <wt-icon icon="preview-tag-video" />
18
+ {{ text }}
19
+ </div>
20
+ </template>
21
+ </wt-context-menu>
22
+ <p>
23
+ {{ contextOptions?.length || EMPTY_SYMBOL }}
24
+ </p>
25
+ </div>
26
+ </template>
27
+
28
+ <script setup lang="ts">
29
+ import { EngineCallFileType } from '@webitel/api-services/gen/models';
30
+ import { computed } from 'vue';
31
+
32
+ import { EMPTY_SYMBOL } from '../../../utils/index.ts';
33
+
34
+ interface Props {
35
+ files: unknown[];
36
+ }
37
+
38
+ const props = defineProps<Props>();
39
+
40
+ const emit = defineEmits<(e: 'set-video', val: unknown) => void>();
41
+
42
+ const contextOptions = computed(() =>
43
+ props?.files?.[EngineCallFileType.FileTypeScreensharing]?.map(
44
+ ({ name, id, mimeType, type }) => ({
45
+ text: name,
46
+ id,
47
+ mimeType,
48
+ type,
49
+ }),
50
+ ),
51
+ );
52
+
53
+ const handleOptionSelect = ({ option }) => {
54
+ if (option.id && option.type === EngineCallFileType.FileTypeScreensharing) {
55
+ emit('set-video', option);
56
+ }
57
+ };
58
+ </script>
59
+
60
+ <style lang="scss" scoped>
61
+ .wt-screen-recordings-action {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: var(--spacing-xs);
65
+ }
66
+
67
+ .wt-screen-recordings-action__option {
68
+ display: flex;
69
+ align-items: center;
70
+ gap: var(--spacing-xs);
71
+ }
72
+ </style>