@tuki-io/tuki-widgets 0.0.219-dev.0 → 0.0.220

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 (1064) hide show
  1. package/README.md +24 -25
  2. package/contact-center/cc-readiness/cc-readiness.module.d.ts +19 -0
  3. package/contact-center/cc-readiness/cc-readiness.service.d.ts +13 -0
  4. package/contact-center/cc-readiness/components/card/card.component.d.ts +6 -0
  5. package/contact-center/cc-readiness/types/cc-readiness.d.ts +16 -0
  6. package/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.d.ts +54 -0
  7. package/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.d.ts +27 -0
  8. package/contact-center/cc-script-editor/cc-script-editor.component.d.ts +53 -0
  9. package/contact-center/cc-script-editor/cc-script-editor.module.d.ts +20 -0
  10. package/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.d.ts +35 -0
  11. package/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.d.ts +38 -0
  12. package/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.d.ts +34 -0
  13. package/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.d.ts +9 -0
  14. package/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.d.ts +27 -0
  15. package/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.d.ts +27 -0
  16. package/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.d.ts +14 -0
  17. package/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.d.ts +11 -0
  18. package/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.d.ts +24 -0
  19. package/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.d.ts +68 -0
  20. package/contact-center/cc-script-editor/constants/cytoscape.config.d.ts +2 -0
  21. package/contact-center/cc-script-editor/constants/wxcc-api.constants.d.ts +15 -0
  22. package/contact-center/cc-script-editor/services/cystoscape-viewport.service.d.ts +21 -0
  23. package/contact-center/cc-script-editor/services/wxcc-activity-creation.service.d.ts +21 -0
  24. package/contact-center/cc-script-editor/services/wxcc-activity-manage.service.d.ts +8 -0
  25. package/contact-center/cc-script-editor/services/wxcc-flow-api.service.d.ts +43 -0
  26. package/contact-center/cc-script-editor/services/wxcc2graph.service.d.ts +42 -0
  27. package/contact-center/cc-script-editor/types/extended-activity.d.ts +47 -0
  28. package/contact-center/cc-script-editor/types/wxcc-activity.d.ts +96 -0
  29. package/contact-center/cc-script-editor/types/wxcc.d.ts +161 -0
  30. package/contact-center/cc-script-editor/utils/node-html-template.d.ts +3 -0
  31. package/contact-center/cc-script-editor/utils/node-mappings.d.ts +54 -0
  32. package/contact-center/index.d.ts +5 -0
  33. package/contact-center/public-api.d.ts +5 -0
  34. package/contact-center/shared/api.endpoints.d.ts +6 -0
  35. package/contact-center/shared/api.service.d.ts +20 -0
  36. package/contact-center/shared/material.module.d.ts +16 -0
  37. package/contact-center/shared/shared.module.d.ts +10 -0
  38. package/di2mt/api/api.endpoints.d.ts +32 -0
  39. package/di2mt/index.d.ts +5 -0
  40. package/di2mt/public-api.d.ts +14 -0
  41. package/di2mt/shared/components/card/card.component.d.ts +6 -0
  42. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +23 -0
  43. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +15 -0
  44. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +15 -0
  45. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +9 -0
  46. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +14 -0
  47. package/di2mt/shared/constants/app.constants.d.ts +74 -0
  48. package/di2mt/shared/material.module.d.ts +15 -0
  49. package/di2mt/shared/services/api.service.d.ts +20 -0
  50. package/di2mt/shared/shared.module.d.ts +16 -0
  51. package/di2mt/shared/types/constants.d.ts +15 -0
  52. package/di2mt/shared/types/data-table.d.ts +5 -0
  53. package/di2mt/shared/types/table/filter.d.ts +16 -0
  54. package/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.d.ts +11 -0
  55. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +70 -0
  56. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +15 -0
  57. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +84 -0
  58. package/di2mt/widgets/site-upgrade/types/user-upgrade.d.ts +26 -0
  59. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +20 -0
  60. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +20 -0
  61. package/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.d.ts +20 -0
  62. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +19 -0
  63. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +20 -0
  64. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +20 -0
  65. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +16 -0
  66. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +19 -0
  67. package/di2mt/widgets/upgrade-overview/types/upgrade-overview.d.ts +57 -0
  68. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +16 -0
  69. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +18 -0
  70. package/di2mt/widgets/user-upgrade/types/user-upgrade.d.ts +32 -0
  71. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +80 -0
  72. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +16 -0
  73. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +41 -0
  74. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +71 -0
  75. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +38 -0
  76. package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +13 -0
  77. package/esm2020/contact-center/cc-readiness/types/cc-readiness.mjs +3 -0
  78. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +194 -0
  79. package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +50 -0
  80. package/esm2020/contact-center/cc-script-editor/cc-script-editor.component.mjs +193 -0
  81. package/esm2020/contact-center/cc-script-editor/cc-script-editor.module.mjs +83 -0
  82. package/esm2020/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.mjs +60 -0
  83. package/esm2020/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.mjs +83 -0
  84. package/esm2020/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.mjs +104 -0
  85. package/esm2020/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.mjs +28 -0
  86. package/esm2020/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.mjs +65 -0
  87. package/esm2020/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.mjs +97 -0
  88. package/esm2020/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.mjs +43 -0
  89. package/esm2020/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.mjs +27 -0
  90. package/esm2020/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.mjs +61 -0
  91. package/esm2020/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.mjs +434 -0
  92. package/esm2020/contact-center/cc-script-editor/constants/cytoscape.config.mjs +72 -0
  93. package/esm2020/contact-center/cc-script-editor/constants/wxcc-api.constants.mjs +14 -0
  94. package/esm2020/contact-center/cc-script-editor/services/cystoscape-viewport.service.mjs +65 -0
  95. package/esm2020/contact-center/cc-script-editor/services/wxcc-activity-creation.service.mjs +82 -0
  96. package/esm2020/contact-center/cc-script-editor/services/wxcc-activity-manage.service.mjs +162 -0
  97. package/esm2020/contact-center/cc-script-editor/services/wxcc-flow-api.service.mjs +79 -0
  98. package/esm2020/contact-center/cc-script-editor/services/wxcc2graph.service.mjs +144 -0
  99. package/esm2020/contact-center/cc-script-editor/types/extended-activity.mjs +4 -0
  100. package/esm2020/contact-center/cc-script-editor/types/wxcc-activity.mjs +2 -0
  101. package/esm2020/contact-center/cc-script-editor/types/wxcc.mjs +6 -0
  102. package/esm2020/contact-center/cc-script-editor/utils/node-html-template.mjs +76 -0
  103. package/esm2020/contact-center/cc-script-editor/utils/node-mappings.mjs +109 -0
  104. package/esm2020/contact-center/public-api.mjs +6 -0
  105. package/esm2020/contact-center/shared/api.endpoints.mjs +7 -0
  106. package/esm2020/contact-center/shared/api.service.mjs +81 -0
  107. package/esm2020/contact-center/shared/material.module.mjs +80 -0
  108. package/esm2020/contact-center/shared/shared.module.mjs +33 -0
  109. package/esm2020/contact-center/tuki-io-tuki-widgets-contact-center.mjs +5 -0
  110. package/esm2020/di2mt/api/api.endpoints.mjs +33 -0
  111. package/esm2020/di2mt/public-api.mjs +25 -0
  112. package/esm2020/di2mt/shared/components/card/card.component.mjs +13 -0
  113. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +66 -0
  114. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +65 -0
  115. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +43 -0
  116. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +36 -0
  117. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +37 -0
  118. package/esm2020/di2mt/shared/constants/app.constants.mjs +95 -0
  119. package/esm2020/di2mt/shared/material.module.mjs +76 -0
  120. package/esm2020/di2mt/shared/services/api.service.mjs +81 -0
  121. package/esm2020/di2mt/shared/shared.module.mjs +63 -0
  122. package/esm2020/di2mt/shared/types/constants.mjs +20 -0
  123. package/esm2020/di2mt/shared/types/data-table.mjs +2 -0
  124. package/esm2020/di2mt/shared/types/table/filter.mjs +2 -0
  125. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +5 -0
  126. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +38 -0
  127. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +438 -0
  128. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +53 -0
  129. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +93 -0
  130. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +3 -0
  131. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +67 -0
  132. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +71 -0
  133. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +83 -0
  134. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +86 -0
  135. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +48 -0
  136. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +48 -0
  137. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +89 -0
  138. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +77 -0
  139. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +2 -0
  140. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +64 -0
  141. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +93 -0
  142. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +3 -0
  143. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +379 -0
  144. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +59 -0
  145. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +80 -0
  146. package/esm2020/lib/widgets.component.mjs +22 -0
  147. package/esm2020/lib/widgets.module.mjs +21 -0
  148. package/esm2020/lib/widgets.service.mjs +14 -0
  149. package/esm2020/public-api.mjs +7 -0
  150. package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
  151. package/esm2020/user-creation/public-api.mjs +13 -0
  152. package/esm2020/user-creation/src/app.constants.mjs +30 -0
  153. package/esm2020/user-creation/src/classes/notification.mjs +32 -0
  154. package/esm2020/user-creation/src/classes/site.mjs +53 -0
  155. package/esm2020/user-creation/src/environments/environment.mjs +11 -0
  156. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +199 -0
  157. package/esm2020/user-creation/src/shared/api/api.service.mjs +81 -0
  158. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +38 -0
  159. package/esm2020/user-creation/src/shared/material.module.mjs +104 -0
  160. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +30 -0
  161. package/esm2020/user-creation/src/shared/services/notification.service.mjs +62 -0
  162. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +116 -0
  163. package/esm2020/user-creation/src/shared/services/utils.mjs +19 -0
  164. package/esm2020/user-creation/src/shared/shared.module.mjs +56 -0
  165. package/esm2020/user-creation/src/user-creation.module.mjs +102 -0
  166. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +14 -0
  167. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +147 -0
  168. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +13 -0
  169. package/esm2020/user-creation/src/utils/device-name-validation.mjs +23 -0
  170. package/esm2020/user-creation/src/utils/model.mjs +19 -0
  171. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +26 -0
  172. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +521 -0
  173. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +19 -0
  174. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +176 -0
  175. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +127 -0
  176. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +796 -0
  177. package/esm2020/user-creation/tuki-io-tuki-widgets-user-creation.mjs +5 -0
  178. package/esm2020/user-device-manage/public-api.mjs +9 -0
  179. package/esm2020/user-device-manage/src/app.constants.mjs +98 -0
  180. package/esm2020/user-device-manage/src/classes/device.mjs +85 -0
  181. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +40 -0
  182. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -0
  183. package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -0
  184. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -0
  185. package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -0
  186. package/esm2020/user-device-manage/src/classes/line.mjs +18 -0
  187. package/esm2020/user-device-manage/src/classes/notification.mjs +32 -0
  188. package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -0
  189. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -0
  190. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -0
  191. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -0
  192. package/esm2020/user-device-manage/src/classes/types.mjs +24 -0
  193. package/esm2020/user-device-manage/src/common-functions.mjs +19 -0
  194. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -0
  195. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -0
  196. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -0
  197. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +74 -0
  198. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -0
  199. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +43 -0
  200. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -0
  201. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +178 -0
  202. package/esm2020/user-device-manage/src/environments/environment.mjs +11 -0
  203. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -0
  204. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  205. package/esm2020/user-device-manage/src/material.module.mjs +192 -0
  206. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -0
  207. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +26 -0
  208. package/esm2020/user-device-manage/src/services/api.service.mjs +79 -0
  209. package/esm2020/user-device-manage/src/services/device.service.mjs +83 -0
  210. package/esm2020/user-device-manage/src/services/dns.service.mjs +136 -0
  211. package/esm2020/user-device-manage/src/services/line.service.mjs +76 -0
  212. package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -0
  213. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  214. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -0
  215. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -0
  216. package/esm2020/user-device-manage/src/services/user.service.mjs +366 -0
  217. package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -0
  218. package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -0
  219. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +13 -0
  220. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +116 -0
  221. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -0
  222. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +5 -0
  223. package/esm2020/user-manage/public-api.mjs +7 -0
  224. package/esm2020/user-manage/src/app.constants.mjs +55 -0
  225. package/esm2020/user-manage/src/classes/device.mjs +38 -0
  226. package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -0
  227. package/esm2020/user-manage/src/classes/line-association.mjs +110 -0
  228. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -0
  229. package/esm2020/user-manage/src/classes/line-directory.mjs +28 -0
  230. package/esm2020/user-manage/src/classes/line.mjs +18 -0
  231. package/esm2020/user-manage/src/classes/notification.mjs +32 -0
  232. package/esm2020/user-manage/src/classes/pagination.mjs +8 -0
  233. package/esm2020/user-manage/src/classes/recording-options.mjs +7 -0
  234. package/esm2020/user-manage/src/classes/simplified-user.mjs +115 -0
  235. package/esm2020/user-manage/src/classes/table-data.mjs +2 -0
  236. package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -0
  237. package/esm2020/user-manage/src/classes/user-list.mjs +10 -0
  238. package/esm2020/user-manage/src/common-functions.mjs +19 -0
  239. package/esm2020/user-manage/src/device-list/device-list.component.mjs +26 -0
  240. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +33 -0
  241. package/esm2020/user-manage/src/environments/environment.mjs +11 -0
  242. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -0
  243. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +81 -0
  244. package/esm2020/user-manage/src/material.module.mjs +188 -0
  245. package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -0
  246. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -0
  247. package/esm2020/user-manage/src/services/api.service.mjs +79 -0
  248. package/esm2020/user-manage/src/services/dns.service.mjs +110 -0
  249. package/esm2020/user-manage/src/services/line.service.mjs +34 -0
  250. package/esm2020/user-manage/src/services/notification.service.mjs +62 -0
  251. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  252. package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -0
  253. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -0
  254. package/esm2020/user-manage/src/services/user.service.mjs +257 -0
  255. package/esm2020/user-manage/src/services/users-search.service.mjs +50 -0
  256. package/esm2020/user-manage/src/services/utils.service.mjs +73 -0
  257. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -0
  258. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +87 -0
  259. package/esm2020/user-manage/src/user-info/user-info.component.mjs +32 -0
  260. package/esm2020/user-manage/src/user-manage-widget.component.mjs +226 -0
  261. package/esm2020/user-manage/src/user-manage.module.mjs +102 -0
  262. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -0
  263. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -0
  264. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +5 -0
  265. package/esm2020/users-list/public-api.mjs +9 -0
  266. package/esm2020/users-list/src/app.constants.mjs +84 -0
  267. package/esm2020/users-list/src/classes/app-location.mjs +32 -0
  268. package/esm2020/users-list/src/classes/device.mjs +7 -0
  269. package/esm2020/users-list/src/classes/line.mjs +18 -0
  270. package/esm2020/users-list/src/classes/move-user.mjs +182 -0
  271. package/esm2020/users-list/src/classes/notification.mjs +31 -0
  272. package/esm2020/users-list/src/classes/pagination.mjs +8 -0
  273. package/esm2020/users-list/src/classes/simlified-user.mjs +50 -0
  274. package/esm2020/users-list/src/classes/table-data.mjs +2 -0
  275. package/esm2020/users-list/src/classes/user-list.mjs +15 -0
  276. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +44 -0
  277. package/esm2020/users-list/src/material.module.mjs +216 -0
  278. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +38 -0
  279. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +23 -0
  280. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +192 -0
  281. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +38 -0
  282. package/esm2020/users-list/src/services/api-webex.service.mjs +18 -0
  283. package/esm2020/users-list/src/services/api.service.mjs +78 -0
  284. package/esm2020/users-list/src/services/dns.service.mjs +120 -0
  285. package/esm2020/users-list/src/services/events-communication.service.mjs +14 -0
  286. package/esm2020/users-list/src/services/move-user.service.mjs +53 -0
  287. package/esm2020/users-list/src/services/notification.service.mjs +62 -0
  288. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -0
  289. package/esm2020/users-list/src/services/site-settings.service.mjs +27 -0
  290. package/esm2020/users-list/src/services/user.service.mjs +174 -0
  291. package/esm2020/users-list/src/services/users-search.service.mjs +168 -0
  292. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -0
  293. package/esm2020/users-list/src/users-list.component.mjs +817 -0
  294. package/esm2020/users-list/src/users-list.module.mjs +98 -0
  295. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -0
  296. package/esm2020/users-list/src/utils/common-functions.mjs +32 -0
  297. package/esm2020/users-list/src/utils/notifications/notification.component.mjs +38 -0
  298. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -0
  299. package/esm2020/users-list/src/utils/utils.service.mjs +73 -0
  300. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +5 -0
  301. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +3452 -0
  302. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -0
  303. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +2353 -0
  304. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  305. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +2774 -0
  306. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -0
  307. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3515 -0
  308. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  309. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2268 -0
  310. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  311. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +2726 -0
  312. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  313. package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
  314. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
  315. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +3471 -0
  316. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -0
  317. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +2342 -0
  318. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  319. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +2733 -0
  320. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -0
  321. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3493 -0
  322. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  323. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2252 -0
  324. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  325. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +2699 -0
  326. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  327. package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
  328. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
  329. package/index.d.ts +5 -0
  330. package/lib/widgets.component.d.ts +8 -0
  331. package/lib/widgets.module.d.ts +7 -0
  332. package/lib/widgets.service.d.ts +6 -0
  333. package/package.json +81 -59
  334. package/public-api.d.ts +3 -0
  335. package/user-creation/index.d.ts +5 -0
  336. package/user-creation/public-api.d.ts +2 -0
  337. package/user-creation/src/app.constants.d.ts +25 -0
  338. package/user-creation/src/classes/notification.d.ts +18 -0
  339. package/user-creation/src/classes/site.d.ts +203 -0
  340. package/user-creation/src/environments/environment.d.ts +9 -0
  341. package/user-creation/src/interfaces/user-creation-wizard.interfaces.d.ts +554 -0
  342. package/user-creation/src/shared/api/api.service.d.ts +20 -0
  343. package/user-creation/src/shared/components/notification/notification.component.d.ts +19 -0
  344. package/user-creation/src/shared/material.module.d.ts +19 -0
  345. package/user-creation/src/shared/pipes/truncate.pipe.d.ts +7 -0
  346. package/user-creation/src/shared/services/notification.service.d.ts +18 -0
  347. package/user-creation/src/shared/services/user-creation-api.service.d.ts +30 -0
  348. package/user-creation/src/shared/services/utils.d.ts +1 -0
  349. package/user-creation/src/shared/shared.module.d.ts +12 -0
  350. package/user-creation/src/user-creation.module.d.ts +24 -0
  351. package/user-creation/src/utils/app-loader/app-loader.d.ts +6 -0
  352. package/user-creation/src/utils/build-savable-end-user.d.ts +23 -0
  353. package/user-creation/src/utils/device-default-prefix.d.ts +5 -0
  354. package/user-creation/src/utils/device-name-validation.d.ts +6 -0
  355. package/user-creation/src/utils/model.d.ts +1 -0
  356. package/user-creation/src/utils/parse-device-name-rule.d.ts +8 -0
  357. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +86 -0
  358. package/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.d.ts +11 -0
  359. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +47 -0
  360. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +37 -0
  361. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +106 -0
  362. package/user-device-manage/index.d.ts +5 -0
  363. package/user-device-manage/public-api.d.ts +8 -0
  364. package/user-device-manage/src/app.constants.d.ts +77 -0
  365. package/user-device-manage/src/classes/device.d.ts +233 -0
  366. package/user-device-manage/src/classes/deviceProfile.d.ts +37 -0
  367. package/user-device-manage/src/classes/line-association-interface.d.ts +45 -0
  368. package/user-device-manage/src/classes/line-association.d.ts +62 -0
  369. package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -0
  370. package/user-device-manage/src/classes/line-directory.d.ts +15 -0
  371. package/user-device-manage/src/classes/line.d.ts +140 -0
  372. package/user-device-manage/src/classes/notification.d.ts +18 -0
  373. package/user-device-manage/src/classes/recording-options.d.ts +5 -0
  374. package/user-device-manage/src/classes/simplified-user.d.ts +52 -0
  375. package/user-device-manage/src/classes/site-defaults.d.ts +146 -0
  376. package/user-device-manage/src/classes/translation-pattern.d.ts +19 -0
  377. package/user-device-manage/src/classes/types.d.ts +19 -0
  378. package/user-device-manage/src/common-functions.d.ts +1 -0
  379. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -0
  380. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -0
  381. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -0
  382. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +28 -0
  383. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -0
  384. package/user-device-manage/src/device-info/device-info.component.d.ts +15 -0
  385. package/user-device-manage/src/device-list/device-list.component.d.ts +11 -0
  386. package/user-device-manage/src/device-manage-widget.component.d.ts +62 -0
  387. package/user-device-manage/src/environments/environment.d.ts +9 -0
  388. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  389. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  390. package/user-device-manage/src/material.module.d.ts +29 -0
  391. package/user-device-manage/src/notifications/notification.component.d.ts +19 -0
  392. package/user-device-manage/src/pipes/mac-address.pipe.d.ts +7 -0
  393. package/user-device-manage/src/services/api.service.d.ts +20 -0
  394. package/user-device-manage/src/services/device.service.d.ts +21 -0
  395. package/user-device-manage/src/services/dns.service.d.ts +18 -0
  396. package/user-device-manage/src/services/line.service.d.ts +33 -0
  397. package/user-device-manage/src/services/notification.service.d.ts +18 -0
  398. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  399. package/user-device-manage/src/services/site-settings.service.d.ts +25 -0
  400. package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -0
  401. package/user-device-manage/src/services/user.service.d.ts +69 -0
  402. package/user-device-manage/src/services/utils.service.d.ts +10 -0
  403. package/user-device-manage/src/services/validation.service.d.ts +165 -0
  404. package/user-device-manage/src/shared/tk-page-section/page-section.component.d.ts +6 -0
  405. package/user-device-manage/src/user-device-manage.module.d.ts +25 -0
  406. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  407. package/user-manage/index.d.ts +5 -0
  408. package/user-manage/public-api.d.ts +6 -0
  409. package/user-manage/src/app.constants.d.ts +34 -0
  410. package/user-manage/src/classes/device.d.ts +204 -0
  411. package/user-manage/src/classes/line-association-interface.d.ts +41 -0
  412. package/user-manage/src/classes/line-association.d.ts +55 -0
  413. package/user-manage/src/classes/line-call-info-display.d.ts +11 -0
  414. package/user-manage/src/classes/line-directory.d.ts +17 -0
  415. package/user-manage/src/classes/line.d.ts +141 -0
  416. package/user-manage/src/classes/notification.d.ts +18 -0
  417. package/user-manage/src/classes/pagination.d.ts +13 -0
  418. package/user-manage/src/classes/recording-options.d.ts +5 -0
  419. package/user-manage/src/classes/simplified-user.d.ts +53 -0
  420. package/user-manage/src/classes/table-data.d.ts +5 -0
  421. package/user-manage/src/classes/translation-pattern.d.ts +18 -0
  422. package/user-manage/src/classes/user-list.d.ts +34 -0
  423. package/user-manage/src/common-functions.d.ts +1 -0
  424. package/user-manage/src/device-list/device-list.component.d.ts +11 -0
  425. package/user-manage/src/device-list/device-row/device-row.component.d.ts +12 -0
  426. package/user-manage/src/environments/environment.d.ts +9 -0
  427. package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  428. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +37 -0
  429. package/user-manage/src/material.module.d.ts +28 -0
  430. package/user-manage/src/notifications/notification.component.d.ts +19 -0
  431. package/user-manage/src/removeKynFromIBM.service.d.ts +8 -0
  432. package/user-manage/src/services/api.service.d.ts +21 -0
  433. package/user-manage/src/services/dns.service.d.ts +14 -0
  434. package/user-manage/src/services/line.service.d.ts +17 -0
  435. package/user-manage/src/services/notification.service.d.ts +18 -0
  436. package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  437. package/user-manage/src/services/site-settings.service.d.ts +9 -0
  438. package/user-manage/src/services/sorting-utils.service.d.ts +26 -0
  439. package/user-manage/src/services/user.service.d.ts +46 -0
  440. package/user-manage/src/services/users-search.service.d.ts +25 -0
  441. package/user-manage/src/services/utils.service.d.ts +9 -0
  442. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -0
  443. package/user-manage/src/user-calling/user-calling.component.d.ts +33 -0
  444. package/user-manage/src/user-info/user-info.component.d.ts +12 -0
  445. package/user-manage/src/user-manage-widget.component.d.ts +45 -0
  446. package/user-manage/src/user-manage.module.d.ts +22 -0
  447. package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  448. package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -0
  449. package/users-list/index.d.ts +5 -0
  450. package/users-list/public-api.d.ts +8 -0
  451. package/users-list/src/app.constants.d.ts +67 -0
  452. package/users-list/src/classes/app-location.d.ts +17 -0
  453. package/users-list/src/classes/device.d.ts +224 -0
  454. package/users-list/src/classes/line.d.ts +140 -0
  455. package/users-list/src/classes/move-user.d.ts +85 -0
  456. package/users-list/src/classes/notification.d.ts +18 -0
  457. package/users-list/src/classes/pagination.d.ts +13 -0
  458. package/users-list/src/classes/simlified-user.d.ts +25 -0
  459. package/users-list/src/classes/table-data.d.ts +5 -0
  460. package/users-list/src/classes/user-list.d.ts +37 -0
  461. package/users-list/src/components/table-toolbar/table-toolbar.component.d.ts +17 -0
  462. package/users-list/src/material.module.d.ts +32 -0
  463. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +21 -0
  464. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +12 -0
  465. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +55 -0
  466. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +17 -0
  467. package/users-list/src/services/api-webex.service.d.ts +8 -0
  468. package/users-list/src/services/api.service.d.ts +21 -0
  469. package/users-list/src/services/dns.service.d.ts +18 -0
  470. package/users-list/src/services/events-communication.service.d.ts +8 -0
  471. package/users-list/src/services/move-user.service.d.ts +17 -0
  472. package/users-list/src/services/notification.service.d.ts +18 -0
  473. package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -0
  474. package/users-list/src/services/site-settings.service.d.ts +11 -0
  475. package/users-list/src/services/user.service.d.ts +42 -0
  476. package/users-list/src/services/users-search.service.d.ts +41 -0
  477. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -0
  478. package/users-list/src/users-list.component.d.ts +97 -0
  479. package/users-list/src/users-list.module.d.ts +20 -0
  480. package/users-list/src/utils/app-loader/app-loader.d.ts +6 -0
  481. package/users-list/src/utils/common-functions.d.ts +2 -0
  482. package/users-list/src/utils/notifications/notification.component.d.ts +19 -0
  483. package/users-list/src/utils/pagination/pagination.component.d.ts +18 -0
  484. package/users-list/src/utils/utils.service.d.ts +9 -0
  485. package/.editorconfig +0 -16
  486. package/.hintrc +0 -14
  487. package/.vscode/extensions.json +0 -4
  488. package/.vscode/launch.json +0 -20
  489. package/.vscode/tasks.json +0 -42
  490. package/angular.json +0 -141
  491. package/projects/tuki/widgets/README.md +0 -24
  492. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.module.ts +0 -44
  493. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.service.spec.ts +0 -16
  494. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.service.ts +0 -37
  495. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.html +0 -11
  496. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.scss +0 -48
  497. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.ts +0 -10
  498. package/projects/tuki/widgets/contact-center/cc-readiness/types/cc-readiness.ts +0 -30
  499. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.html +0 -75
  500. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.scss +0 -177
  501. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.spec.ts +0 -35
  502. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.ts +0 -243
  503. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.html +0 -19
  504. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.scss +0 -38
  505. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.ts +0 -59
  506. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.component.html +0 -36
  507. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.component.scss +0 -28
  508. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.component.ts +0 -263
  509. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.module.ts +0 -54
  510. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.html +0 -0
  511. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.scss +0 -111
  512. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.ts +0 -78
  513. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.html +0 -0
  514. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.scss +0 -155
  515. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.ts +0 -105
  516. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.html +0 -13
  517. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.scss +0 -36
  518. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.ts +0 -118
  519. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.ts +0 -18
  520. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.html +0 -18
  521. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.scss +0 -62
  522. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.ts +0 -72
  523. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.html +0 -130
  524. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.scss +0 -298
  525. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.ts +0 -113
  526. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.html +0 -13
  527. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.scss +0 -57
  528. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.ts +0 -46
  529. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.html +0 -30
  530. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.scss +0 -9
  531. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.ts +0 -16
  532. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.html +0 -29
  533. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.scss +0 -21
  534. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.ts +0 -58
  535. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.html +0 -83
  536. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.scss +0 -339
  537. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.ts +0 -551
  538. package/projects/tuki/widgets/contact-center/cc-script-editor/constants/cytoscape.config.ts +0 -73
  539. package/projects/tuki/widgets/contact-center/cc-script-editor/constants/wxcc-activity-templates.constants.ts +0 -1
  540. package/projects/tuki/widgets/contact-center/cc-script-editor/constants/wxcc-api.constants.ts +0 -52
  541. package/projects/tuki/widgets/contact-center/cc-script-editor/mock/data/QWC_wxcc.json +0 -912
  542. package/projects/tuki/widgets/contact-center/cc-script-editor/mock/mock-data.service.ts +0 -0
  543. package/projects/tuki/widgets/contact-center/cc-script-editor/services/cystoscape-viewport.service.ts +0 -77
  544. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc-activity-creation.service.ts +0 -100
  545. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc-activity-manage.service.ts +0 -159
  546. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc-flow-api.service.ts +0 -81
  547. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc2graph.service.ts +0 -172
  548. package/projects/tuki/widgets/contact-center/cc-script-editor/types/cytoscape-node-html-label.d.ts +0 -24
  549. package/projects/tuki/widgets/contact-center/cc-script-editor/types/extended-activity.ts +0 -62
  550. package/projects/tuki/widgets/contact-center/cc-script-editor/types/wxcc-activity.ts +0 -135
  551. package/projects/tuki/widgets/contact-center/cc-script-editor/types/wxcc.ts +0 -220
  552. package/projects/tuki/widgets/contact-center/cc-script-editor/utils/node-html-template.ts +0 -90
  553. package/projects/tuki/widgets/contact-center/cc-script-editor/utils/node-mappings.ts +0 -153
  554. package/projects/tuki/widgets/contact-center/ng-package.json +0 -12
  555. package/projects/tuki/widgets/contact-center/public-api.ts +0 -8
  556. package/projects/tuki/widgets/contact-center/shared/api.endpoints.ts +0 -6
  557. package/projects/tuki/widgets/contact-center/shared/api.service.ts +0 -87
  558. package/projects/tuki/widgets/contact-center/shared/assets/icons/applications.svg +0 -6
  559. package/projects/tuki/widgets/contact-center/shared/assets/icons/audioPrompts.svg +0 -4
  560. package/projects/tuki/widgets/contact-center/shared/assets/icons/contactServiceQueues.svg +0 -3
  561. package/projects/tuki/widgets/contact-center/shared/assets/icons/phonebooks.svg +0 -6
  562. package/projects/tuki/widgets/contact-center/shared/assets/icons/resourceGroups.svg +0 -6
  563. package/projects/tuki/widgets/contact-center/shared/assets/icons/resources.svg +0 -3
  564. package/projects/tuki/widgets/contact-center/shared/assets/icons/scripts.svg +0 -12
  565. package/projects/tuki/widgets/contact-center/shared/assets/icons/skills.svg +0 -3
  566. package/projects/tuki/widgets/contact-center/shared/assets/icons/teams.svg +0 -3
  567. package/projects/tuki/widgets/contact-center/shared/assets/icons/triggers.svg +0 -4
  568. package/projects/tuki/widgets/contact-center/shared/assets/icons/wrapUpCodes.svg +0 -3
  569. package/projects/tuki/widgets/contact-center/shared/assets/icons/xml.svg +0 -6
  570. package/projects/tuki/widgets/contact-center/shared/material.module.ts +0 -38
  571. package/projects/tuki/widgets/contact-center/shared/shared.module.ts +0 -20
  572. package/projects/tuki/widgets/contact-center/shared/styles/tuki-widgets-theme.scss +0 -13
  573. package/projects/tuki/widgets/contact-center/shared/styles/variables.scss +0 -96
  574. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +0 -32
  575. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  576. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  577. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  578. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +0 -3
  579. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  580. package/projects/tuki/widgets/di2mt/assets/icons/icon_play.svg +0 -3
  581. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  582. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  583. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  584. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  585. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  586. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  587. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  588. package/projects/tuki/widgets/di2mt/ng-package.json +0 -7
  589. package/projects/tuki/widgets/di2mt/public-api.ts +0 -28
  590. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +0 -11
  591. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +0 -48
  592. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +0 -10
  593. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +0 -15
  594. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +0 -38
  595. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +0 -76
  596. package/projects/tuki/widgets/di2mt/shared/components/index.ts +0 -6
  597. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +0 -68
  598. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +0 -78
  599. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +0 -59
  600. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +0 -57
  601. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +0 -187
  602. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +0 -41
  603. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +0 -12
  604. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +0 -78
  605. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +0 -27
  606. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +0 -28
  607. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +0 -245
  608. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +0 -28
  609. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +0 -96
  610. package/projects/tuki/widgets/di2mt/shared/material.module.ts +0 -36
  611. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +0 -87
  612. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +0 -39
  613. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +0 -22
  614. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +0 -5
  615. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +0 -14
  616. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +0 -13
  617. package/projects/tuki/widgets/di2mt/styles/variables.scss +0 -94
  618. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +0 -6
  619. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +0 -45
  620. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +0 -27
  621. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -160
  622. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -469
  623. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -511
  624. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -33
  625. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -173
  626. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +0 -27
  627. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -55
  628. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -60
  629. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.ts +0 -72
  630. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -85
  631. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -7
  632. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  633. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -47
  634. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -7
  635. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  636. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -48
  637. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -84
  638. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -73
  639. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts +0 -59
  640. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +0 -45
  641. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +0 -109
  642. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts +0 -35
  643. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +0 -204
  644. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +0 -466
  645. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -441
  646. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -34
  647. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -137
  648. package/projects/tuki/widgets/karma.conf.js +0 -44
  649. package/projects/tuki/widgets/ng-package.json +0 -10
  650. package/projects/tuki/widgets/package.json +0 -13
  651. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +0 -23
  652. package/projects/tuki/widgets/src/lib/widgets.component.ts +0 -20
  653. package/projects/tuki/widgets/src/lib/widgets.module.ts +0 -16
  654. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +0 -16
  655. package/projects/tuki/widgets/src/lib/widgets.service.ts +0 -9
  656. package/projects/tuki/widgets/src/public-api.ts +0 -7
  657. package/projects/tuki/widgets/src/test.ts +0 -27
  658. package/projects/tuki/widgets/styles.scss +0 -558
  659. package/projects/tuki/widgets/tsconfig.lib.json +0 -52
  660. package/projects/tuki/widgets/tsconfig.lib.prod.json +0 -10
  661. package/projects/tuki/widgets/tsconfig.spec.json +0 -17
  662. package/projects/tuki/widgets/user-creation/assets/icons/close_icon_modal.svg +0 -3
  663. package/projects/tuki/widgets/user-creation/assets/icons/user-creation-close-icon.svg +0 -3
  664. package/projects/tuki/widgets/user-creation/ng-package.json +0 -7
  665. package/projects/tuki/widgets/user-creation/public-api.ts +0 -16
  666. package/projects/tuki/widgets/user-creation/src/app.constants.ts +0 -33
  667. package/projects/tuki/widgets/user-creation/src/classes/notification.ts +0 -40
  668. package/projects/tuki/widgets/user-creation/src/classes/site.ts +0 -260
  669. package/projects/tuki/widgets/user-creation/src/classes/user.ts +0 -177
  670. package/projects/tuki/widgets/user-creation/src/environments/environment.prod.ts +0 -9
  671. package/projects/tuki/widgets/user-creation/src/environments/environment.ts +0 -10
  672. package/projects/tuki/widgets/user-creation/src/interfaces/user-creation-wizard.interfaces.ts +0 -788
  673. package/projects/tuki/widgets/user-creation/src/shared/api/api.service.ts +0 -87
  674. package/projects/tuki/widgets/user-creation/src/shared/classes/user-template.ts +0 -77
  675. package/projects/tuki/widgets/user-creation/src/shared/components/notification/notification.component.html +0 -32
  676. package/projects/tuki/widgets/user-creation/src/shared/components/notification/notification.component.scss +0 -80
  677. package/projects/tuki/widgets/user-creation/src/shared/components/notification/notification.component.ts +0 -46
  678. package/projects/tuki/widgets/user-creation/src/shared/material.module.ts +0 -48
  679. package/projects/tuki/widgets/user-creation/src/shared/pipes/truncate.pipe.ts +0 -26
  680. package/projects/tuki/widgets/user-creation/src/shared/services/notification.service.ts +0 -68
  681. package/projects/tuki/widgets/user-creation/src/shared/services/user-creation-api.service.ts +0 -136
  682. package/projects/tuki/widgets/user-creation/src/shared/services/utils.ts +0 -16
  683. package/projects/tuki/widgets/user-creation/src/shared/shared.module.ts +0 -28
  684. package/projects/tuki/widgets/user-creation/src/shared/styles/styles.scss +0 -96
  685. package/projects/tuki/widgets/user-creation/src/user-creation.module.ts +0 -63
  686. package/projects/tuki/widgets/user-creation/src/utils/app-loader/app-loader.component.html +0 -7
  687. package/projects/tuki/widgets/user-creation/src/utils/app-loader/app-loader.component.scss +0 -14
  688. package/projects/tuki/widgets/user-creation/src/utils/app-loader/app-loader.ts +0 -13
  689. package/projects/tuki/widgets/user-creation/src/utils/build-savable-end-user.ts +0 -238
  690. package/projects/tuki/widgets/user-creation/src/utils/device-default-prefix.ts +0 -17
  691. package/projects/tuki/widgets/user-creation/src/utils/device-name-validation.ts +0 -30
  692. package/projects/tuki/widgets/user-creation/src/utils/model.ts +0 -16
  693. package/projects/tuki/widgets/user-creation/src/utils/models.ts +0 -46
  694. package/projects/tuki/widgets/user-creation/src/utils/parse-device-name-rule.ts +0 -29
  695. package/projects/tuki/widgets/user-creation/src/utils/validation.ts +0 -16
  696. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.html +0 -376
  697. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.scss +0 -476
  698. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.ts +0 -657
  699. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.html +0 -107
  700. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.scss +0 -75
  701. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.ts +0 -17
  702. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.html +0 -73
  703. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.scss +0 -127
  704. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.ts +0 -211
  705. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.html +0 -113
  706. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.scss +0 -227
  707. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.spec.ts +0 -41
  708. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.ts +0 -123
  709. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.ts +0 -947
  710. package/projects/tuki/widgets/user-device-manage/ng-package.json +0 -7
  711. package/projects/tuki/widgets/user-device-manage/public-api.ts +0 -8
  712. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +0 -99
  713. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-down-bold.svg +0 -1
  714. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
  715. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right-regular.svg +0 -1
  716. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
  717. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cancel-regular.svg +0 -1
  718. package/projects/tuki/widgets/user-device-manage/src/assets/icons/check-circle-regular.svg +0 -1
  719. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco.svg +0 -8
  720. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_7841.png +0 -0
  721. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_8841.png +0 -0
  722. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_8851.png +0 -0
  723. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_9861.png +0 -0
  724. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
  725. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
  726. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  727. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +0 -1
  728. package/projects/tuki/widgets/user-device-manage/src/assets/icons/info-circle-regular.svg +0 -1
  729. package/projects/tuki/widgets/user-device-manage/src/assets/icons/people-regular.svg +0 -1
  730. package/projects/tuki/widgets/user-device-manage/src/assets/icons/plus-regular.svg +0 -1
  731. package/projects/tuki/widgets/user-device-manage/src/assets/icons/settings-light.svg +0 -1
  732. package/projects/tuki/widgets/user-device-manage/src/assets/icons/settings-regular.svg +0 -1
  733. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  734. package/projects/tuki/widgets/user-device-manage/src/assets/icons/warning-regular.svg +0 -1
  735. package/projects/tuki/widgets/user-device-manage/src/assets/info-circle-bold.svg +0 -1
  736. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +0 -292
  737. package/projects/tuki/widgets/user-device-manage/src/classes/deviceProfile.ts +0 -79
  738. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +0 -50
  739. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +0 -177
  740. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +0 -21
  741. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +0 -41
  742. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +0 -144
  743. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +0 -40
  744. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +0 -6
  745. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +0 -169
  746. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +0 -167
  747. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +0 -50
  748. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +0 -19
  749. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +0 -225
  750. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +0 -8
  751. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +0 -16
  752. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
  753. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
  754. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
  755. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
  756. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
  757. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
  758. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
  759. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
  760. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
  761. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -24
  762. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -11
  763. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -74
  764. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
  765. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
  766. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
  767. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.html +0 -52
  768. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.scss +0 -219
  769. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.ts +0 -38
  770. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +0 -27
  771. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +0 -131
  772. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +0 -25
  773. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +0 -301
  774. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +0 -766
  775. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +0 -190
  776. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +0 -9
  777. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +0 -10
  778. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
  779. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -67
  780. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -98
  781. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  782. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +0 -87
  783. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +0 -33
  784. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +0 -84
  785. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +0 -46
  786. package/projects/tuki/widgets/user-device-manage/src/pipes/mac-address.pipe.ts +0 -24
  787. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
  788. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +0 -87
  789. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +0 -17
  790. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +0 -95
  791. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +0 -146
  792. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +0 -89
  793. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +0 -68
  794. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
  795. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +0 -82
  796. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +0 -203
  797. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +0 -432
  798. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +0 -87
  799. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +0 -829
  800. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.html +0 -13
  801. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.scss +0 -48
  802. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.spec.ts +0 -23
  803. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.ts +0 -10
  804. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +0 -90
  805. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +0 -284
  806. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +0 -33
  807. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +0 -131
  808. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +0 -30
  809. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +0 -79
  810. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -7
  811. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  812. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
  813. package/projects/tuki/widgets/user-manage/ng-package.json +0 -7
  814. package/projects/tuki/widgets/user-manage/public-api.ts +0 -6
  815. package/projects/tuki/widgets/user-manage/src/app.constants.ts +0 -55
  816. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-down-bold.svg +0 -1
  817. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +0 -5
  818. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right-bold.svg +0 -1
  819. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +0 -5
  820. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_7841.png +0 -0
  821. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_8841.png +0 -0
  822. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_8851.png +0 -0
  823. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_9861.png +0 -0
  824. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +0 -5
  825. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  826. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +0 -1
  827. package/projects/tuki/widgets/user-manage/src/assets/icons/info-circle-bold.svg +0 -1
  828. package/projects/tuki/widgets/user-manage/src/assets/icons/mt.svg +0 -3
  829. package/projects/tuki/widgets/user-manage/src/assets/icons/people-regular.svg +0 -1
  830. package/projects/tuki/widgets/user-manage/src/assets/icons/settings-light.svg +0 -1
  831. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  832. package/projects/tuki/widgets/user-manage/src/assets/icons/webex.svg +0 -7
  833. package/projects/tuki/widgets/user-manage/src/classes/device.ts +0 -234
  834. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +0 -44
  835. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +0 -161
  836. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +0 -21
  837. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +0 -44
  838. package/projects/tuki/widgets/user-manage/src/classes/line.ts +0 -145
  839. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +0 -39
  840. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +0 -18
  841. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +0 -6
  842. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +0 -174
  843. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +0 -6
  844. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +0 -49
  845. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +0 -225
  846. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +0 -42
  847. package/projects/tuki/widgets/user-manage/src/classes/user.ts +0 -8
  848. package/projects/tuki/widgets/user-manage/src/common-functions.ts +0 -16
  849. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +0 -32
  850. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +0 -305
  851. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +0 -26
  852. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.html +0 -14
  853. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.scss +0 -154
  854. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.ts +0 -34
  855. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +0 -9
  856. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +0 -10
  857. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +0 -35
  858. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -68
  859. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -125
  860. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -93
  861. package/projects/tuki/widgets/user-manage/src/material.module.ts +0 -85
  862. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +0 -33
  863. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +0 -84
  864. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +0 -46
  865. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +0 -25
  866. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +0 -90
  867. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +0 -116
  868. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +0 -31
  869. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +0 -68
  870. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
  871. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +0 -35
  872. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +0 -203
  873. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +0 -304
  874. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +0 -59
  875. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +0 -71
  876. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +0 -93
  877. package/projects/tuki/widgets/user-manage/src/styles/form.scss +0 -231
  878. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +0 -41
  879. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +0 -128
  880. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +0 -30
  881. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
  882. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -444
  883. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
  884. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +0 -128
  885. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +0 -469
  886. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +0 -105
  887. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +0 -68
  888. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +0 -110
  889. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +0 -121
  890. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +0 -28
  891. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +0 -313
  892. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +0 -638
  893. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +0 -235
  894. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +0 -65
  895. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.html +0 -64
  896. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.scss +0 -17
  897. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.ts +0 -8
  898. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +0 -7
  899. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  900. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +0 -13
  901. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +0 -26
  902. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +0 -41
  903. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +0 -41
  904. package/projects/tuki/widgets/users-list/ng-package.json +0 -7
  905. package/projects/tuki/widgets/users-list/public-api.ts +0 -8
  906. package/projects/tuki/widgets/users-list/src/app.constants.ts +0 -91
  907. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +0 -3
  908. package/projects/tuki/widgets/users-list/src/assets/icons/cogs.svg +0 -8
  909. package/projects/tuki/widgets/users-list/src/assets/icons/copy-regular.svg +0 -1
  910. package/projects/tuki/widgets/users-list/src/assets/icons/di.svg +0 -15
  911. package/projects/tuki/widgets/users-list/src/assets/icons/di_cloud_24.svg +0 -16
  912. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +0 -1
  913. package/projects/tuki/widgets/users-list/src/assets/icons/info-circle-regular.svg +0 -1
  914. package/projects/tuki/widgets/users-list/src/assets/icons/info.svg +0 -5
  915. package/projects/tuki/widgets/users-list/src/assets/icons/local_24.svg +0 -18
  916. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
  917. package/projects/tuki/widgets/users-list/src/assets/icons/mt_old.svg +0 -3
  918. package/projects/tuki/widgets/users-list/src/assets/icons/onprem_ucm.svg +0 -17
  919. package/projects/tuki/widgets/users-list/src/assets/icons/settings-regular.svg +0 -1
  920. package/projects/tuki/widgets/users-list/src/assets/icons/webex.svg +0 -7
  921. package/projects/tuki/widgets/users-list/src/assets/icons/webex_logo_icon.svg +0 -305
  922. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +0 -3
  923. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +0 -36
  924. package/projects/tuki/widgets/users-list/src/classes/device.ts +0 -225
  925. package/projects/tuki/widgets/users-list/src/classes/line.ts +0 -144
  926. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +0 -229
  927. package/projects/tuki/widgets/users-list/src/classes/notification.ts +0 -38
  928. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +0 -18
  929. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +0 -74
  930. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +0 -6
  931. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +0 -225
  932. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +0 -48
  933. package/projects/tuki/widgets/users-list/src/classes/user.ts +0 -8
  934. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.html +0 -167
  935. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.scss +0 -41
  936. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.ts +0 -37
  937. package/projects/tuki/widgets/users-list/src/material.module.ts +0 -97
  938. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +0 -37
  939. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +0 -131
  940. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +0 -46
  941. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +0 -31
  942. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +0 -20
  943. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +0 -26
  944. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -222
  945. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -249
  946. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -207
  947. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
  948. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
  949. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
  950. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +0 -14
  951. package/projects/tuki/widgets/users-list/src/services/api.service.ts +0 -90
  952. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +0 -128
  953. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +0 -11
  954. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +0 -59
  955. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +0 -68
  956. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +0 -25
  957. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +0 -26
  958. package/projects/tuki/widgets/users-list/src/services/user.service.ts +0 -207
  959. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +0 -192
  960. package/projects/tuki/widgets/users-list/src/styles/styles.scss +0 -639
  961. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
  962. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
  963. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
  964. package/projects/tuki/widgets/users-list/src/users-list.component.css +0 -4
  965. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +0 -1
  966. package/projects/tuki/widgets/users-list/src/users-list.component.html +0 -306
  967. package/projects/tuki/widgets/users-list/src/users-list.component.scss +0 -751
  968. package/projects/tuki/widgets/users-list/src/users-list.component.ts +0 -1023
  969. package/projects/tuki/widgets/users-list/src/users-list.module.ts +0 -67
  970. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +0 -11
  971. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
  972. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +0 -7
  973. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +0 -17
  974. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +0 -13
  975. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +0 -32
  976. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +0 -47
  977. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +0 -94
  978. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +0 -46
  979. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +0 -45
  980. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +0 -1
  981. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +0 -26
  982. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +0 -41
  983. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +0 -41
  984. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +0 -71
  985. package/projects/widgets-playground/src/app/app.component.html +0 -44
  986. package/projects/widgets-playground/src/app/app.component.scss +0 -26
  987. package/projects/widgets-playground/src/app/app.component.spec.ts +0 -31
  988. package/projects/widgets-playground/src/app/app.component.ts +0 -36
  989. package/projects/widgets-playground/src/app/app.module.ts +0 -49
  990. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  991. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  992. package/projects/widgets-playground/src/assets/icons/applications copy.svg +0 -6
  993. package/projects/widgets-playground/src/assets/icons/applications.svg +0 -6
  994. package/projects/widgets-playground/src/assets/icons/arrow-down-bold.svg +0 -1
  995. package/projects/widgets-playground/src/assets/icons/audio-prompts.svg +0 -4
  996. package/projects/widgets-playground/src/assets/icons/audioPrompts.svg +0 -4
  997. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  998. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  999. package/projects/widgets-playground/src/assets/icons/contactServiceQueues.svg +0 -3
  1000. package/projects/widgets-playground/src/assets/icons/copy-regular.svg +0 -1
  1001. package/projects/widgets-playground/src/assets/icons/csqs.svg +0 -3
  1002. package/projects/widgets-playground/src/assets/icons/di.svg +0 -15
  1003. package/projects/widgets-playground/src/assets/icons/di_cloud_24.svg +0 -16
  1004. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  1005. package/projects/widgets-playground/src/assets/icons/info-circle-regular.svg +0 -1
  1006. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  1007. package/projects/widgets-playground/src/assets/icons/local_24.svg +0 -18
  1008. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  1009. package/projects/widgets-playground/src/assets/icons/mt_old.svg +0 -3
  1010. package/projects/widgets-playground/src/assets/icons/onprem_ucm.svg +0 -17
  1011. package/projects/widgets-playground/src/assets/icons/phone-books.svg +0 -6
  1012. package/projects/widgets-playground/src/assets/icons/phonebooks.svg +0 -6
  1013. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  1014. package/projects/widgets-playground/src/assets/icons/resource-group.svg +0 -6
  1015. package/projects/widgets-playground/src/assets/icons/resource.svg +0 -3
  1016. package/projects/widgets-playground/src/assets/icons/resourceGroups.svg +0 -6
  1017. package/projects/widgets-playground/src/assets/icons/resources.svg +0 -3
  1018. package/projects/widgets-playground/src/assets/icons/scripts copy.svg +0 -12
  1019. package/projects/widgets-playground/src/assets/icons/scripts.svg +0 -12
  1020. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  1021. package/projects/widgets-playground/src/assets/icons/settings-regular.svg +0 -1
  1022. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  1023. package/projects/widgets-playground/src/assets/icons/skills copy.svg +0 -3
  1024. package/projects/widgets-playground/src/assets/icons/skills.svg +0 -3
  1025. package/projects/widgets-playground/src/assets/icons/teams copy.svg +0 -3
  1026. package/projects/widgets-playground/src/assets/icons/teams.svg +0 -3
  1027. package/projects/widgets-playground/src/assets/icons/triggers copy.svg +0 -4
  1028. package/projects/widgets-playground/src/assets/icons/triggers.svg +0 -4
  1029. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  1030. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  1031. package/projects/widgets-playground/src/assets/icons/webex.svg +0 -7
  1032. package/projects/widgets-playground/src/assets/icons/webex_logo_icon.svg +0 -305
  1033. package/projects/widgets-playground/src/assets/icons/wrapUpCodes.svg +0 -3
  1034. package/projects/widgets-playground/src/assets/icons/wrapup-codes.svg +0 -3
  1035. package/projects/widgets-playground/src/assets/icons/xml copy.svg +0 -6
  1036. package/projects/widgets-playground/src/assets/icons/xml.svg +0 -6
  1037. package/projects/widgets-playground/src/assets/wxcc/action-menu.svg +0 -3
  1038. package/projects/widgets-playground/src/assets/wxcc/c1.svg +0 -3
  1039. package/projects/widgets-playground/src/assets/wxcc/c2.svg +0 -3
  1040. package/projects/widgets-playground/src/assets/wxcc/close1.svg +0 -3
  1041. package/projects/widgets-playground/src/assets/wxcc/delay.svg +0 -3
  1042. package/projects/widgets-playground/src/assets/wxcc/if.svg +0 -3
  1043. package/projects/widgets-playground/src/assets/wxcc/m1.svg +0 -3
  1044. package/projects/widgets-playground/src/assets/wxcc/m2.svg +0 -3
  1045. package/projects/widgets-playground/src/assets/wxcc/m3.svg +0 -3
  1046. package/projects/widgets-playground/src/assets/wxcc/p1.svg +0 -3
  1047. package/projects/widgets-playground/src/assets/wxcc/route.svg +0 -5
  1048. package/projects/widgets-playground/src/assets/wxcc/s1.svg +0 -3
  1049. package/projects/widgets-playground/src/assets/wxcc/search.svg +0 -3
  1050. package/projects/widgets-playground/src/assets/wxcc/terminate.svg +0 -3
  1051. package/projects/widgets-playground/src/assets/wxcc/terminate2.svg +0 -3
  1052. package/projects/widgets-playground/src/assets/wxcc/unmapped.svg +0 -3
  1053. package/projects/widgets-playground/src/assets/wxcc/variable.svg +0 -3
  1054. package/projects/widgets-playground/src/environments/environment.ts +0 -5
  1055. package/projects/widgets-playground/src/favicon.ico +0 -0
  1056. package/projects/widgets-playground/src/index.html +0 -13
  1057. package/projects/widgets-playground/src/main.ts +0 -7
  1058. package/projects/widgets-playground/src/styles.scss +0 -33
  1059. package/projects/widgets-playground/tsconfig.app.json +0 -14
  1060. package/projects/widgets-playground/tsconfig.spec.json +0 -14
  1061. package/proxy.conf.js +0 -23
  1062. package/tsconfig.json +0 -52
  1063. /package/{projects/tuki/widgets/di2mt → di2mt}/README.md +0 -0
  1064. /package/{projects/tuki/widgets → esm2020}/contact-center/cc-script-editor/mock/data/QWC_ir.json +0 -0
@@ -0,0 +1,2726 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ViewEncapsulation, Inject, Injectable, EventEmitter, Input, Output, ViewChild, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { Subject, of, forkJoin, BehaviorSubject, Observable, takeUntil, map as map$1, switchMap, EMPTY, timer, takeWhile } from 'rxjs';
4
+ import * as i11$1 from '@angular/material/table';
5
+ import { MatTableDataSource, MatTableModule } from '@angular/material/table';
6
+ import * as i1 from '@angular/material/dialog';
7
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
8
+ import * as i2 from '@angular/common';
9
+ import * as i7 from '@angular/forms';
10
+ import { FormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
11
+ import { map } from 'rxjs/operators';
12
+ import * as i1$1 from '@angular/common/http';
13
+ import { HttpHeaders, HttpClientModule } from '@angular/common/http';
14
+ import * as i8 from '@angular/material/button';
15
+ import { MatButtonModule } from '@angular/material/button';
16
+ import * as i9 from '@angular/material/progress-spinner';
17
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
18
+ import * as i4$1 from '@angular/material/tooltip';
19
+ import { MatTooltipModule } from '@angular/material/tooltip';
20
+ import * as i12$1 from '@angular/material/menu';
21
+ import { MatMenuModule } from '@angular/material/menu';
22
+ import * as i4 from '@angular/material/core';
23
+ import { MatNativeDateModule } from '@angular/material/core';
24
+ import * as i5 from '@angular/material/select';
25
+ import { MatSelectModule } from '@angular/material/select';
26
+ import * as i6 from '@angular/material/paginator';
27
+ import { MatPaginatorModule } from '@angular/material/paginator';
28
+ import Big from 'big.js';
29
+ import * as i10 from '@angular/material/form-field';
30
+ import { MatFormFieldModule } from '@angular/material/form-field';
31
+ import * as i11 from '@angular/material/input';
32
+ import { MatInputModule } from '@angular/material/input';
33
+ import * as i12 from '@angular/material/autocomplete';
34
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
35
+ import * as i14 from '@angular/material/stepper';
36
+ import { MatStepperModule } from '@angular/material/stepper';
37
+ import * as i7$1 from '@angular/material/checkbox';
38
+ import { MatCheckboxModule } from '@angular/material/checkbox';
39
+ import * as i16 from '@angular/material/radio';
40
+ import { MatRadioModule } from '@angular/material/radio';
41
+ import * as i6$1 from '@angular/material/divider';
42
+ import { BrowserModule } from '@angular/platform-browser';
43
+ import { MatExpansionModule } from '@angular/material/expansion';
44
+ import { MatDatepickerModule } from '@angular/material/datepicker';
45
+ import { MatChipsModule } from '@angular/material/chips';
46
+ import { MatListModule } from '@angular/material/list';
47
+ import { MatSidenavModule } from '@angular/material/sidenav';
48
+ import { MatTreeModule } from '@angular/material/tree';
49
+ import { DragDropModule } from '@angular/cdk/drag-drop';
50
+ import { MatTabsModule } from '@angular/material/tabs';
51
+ import { MatCardModule } from '@angular/material/card';
52
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
53
+ import { MatIconModule } from '@angular/material/icon';
54
+
55
+ const API = {
56
+ USER_TOKEN: '/api/provision/:siteId/users/:userId/token',
57
+ UPDATE_USER_FIELDS: '/api/provision/:siteId/userFields/:token',
58
+ PERSIST_USER_CACHE: '/api/provision/:siteId/saveUser/:token',
59
+ USER_BY_ID: '/api/provision/:siteId/users/:userId',
60
+ QUICK_USERS_SEARCH: "/api/search/quickusers",
61
+ DELETE_USER: "/api/search/quickusers",
62
+ MOVE_USER: "/api/migration/webex/singlemigration/features/PERSON",
63
+ AVAILABLE_DN_IN_RANGES: "/api/sites/:siteId/available-dn-in-ranges",
64
+ DELETE_LINE: "/api/provision/:siteId/deleteLine/:pkid/:token",
65
+ DISASSOCIATE_LINE: "/api/provision/:siteId/:deviceName/deleteLineAssociation/:linePkid/:token",
66
+ CHECK_DELETE_LINE: "/api/provision/:siteId/checklinedeletion",
67
+ ASSOCIATE_LINE: "/api/provision/:siteId/:deviceName/createLineAssociation/:token",
68
+ CHECK_DESTINATION_NUMBER: "/api/provision/:siteId/check-dn",
69
+ UPDATE_LINE_FIELDS: "/api/provision/:siteId/lineFields/:pkid/:token",
70
+ UPDATE_DEVICE_FIELDS: "/api/provision/:siteId/deviceFields/:deviceName/:token",
71
+ WEBEX_USERS: "/api/webex/provisioning/customers/:customerId/users",
72
+ MIGRATED_USERS: "/api/search/migratedusers",
73
+ QUICK_UPGRADE_STATUS_USERS: "/api/webex-upgrade/customers/:customerId/user-upgrade",
74
+ REVERT_WEBEX_USER: "/api/webex/provisioning/customers/:customerId/persons/:webexUUID/revertmigration",
75
+ PHONE_NUMBERS: "/api/search/webex/customers/:customerId/locations/:locationId/phonenumbers",
76
+ GET_LOCATIONS: "/api/search/webex/customers/:customerId/locations",
77
+ PREPARE_PERSON_MIGRATION: "/api/migration/webex/preparepersonmigration",
78
+ MIGRATION_FORM: "/api/search/webex/customers/:customerId/migrationforms/:formId",
79
+ MIGRATION_FORM_ENTITIES_MIGRATED: "/api/search/webex/customers/:customerId/migrationformentities/migrated",
80
+ START_MIGRATION: "/api/migration/webex/startpersonmigration",
81
+ TRIGGER_FIRMWARE_MIGRATION: "/api/migration/:migrationType/firmwaremigration/customer/:customerId/migration/:migrationFormId",
82
+ WEBEX_REVERT: "/api/webex/provisioning/customers/:customerId/persons/:personId/revertmigration",
83
+ REVERT: "/api/webex/provisioning/customers/:customerId/persons/:personId/revertmigration",
84
+ SWAP_STATUSES: "/api/cache/user/customer/:customerId/swap-status",
85
+ SITES: "/api/customers/:customerId/sites",
86
+ };
87
+ const REGEX_PATTERN = {
88
+ EMAIL: '^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))' +
89
+ '@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,62}[a-zA-Z0-9])' +
90
+ '?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?)*$'
91
+ };
92
+ const PAGINATION_DEFAULTS = {
93
+ SIZE: 10,
94
+ INDEX: 0
95
+ };
96
+ const PAGINATION_SIZE_OPTIONS = [
97
+ 10,
98
+ 50,
99
+ 100,
100
+ 500
101
+ ];
102
+ const CUCS_TO_IGNORE = [
103
+ 189,
104
+ 194,
105
+ 191,
106
+ 190
107
+ ];
108
+ const CUCMS_TO_IGNORE = [
109
+ 249,
110
+ 255,
111
+ 251,
112
+ 250
113
+ ];
114
+ const MAX_INTEGER = 2147483647;
115
+ const CUSTOMER_DESTINATION = {
116
+ MULTI_TENANT_ONLY: 'MULTI_TENANT_ONLY',
117
+ DEDICATED_INSTANCE_ONLY: 'DEDICATED_INSTANCE_ONLY',
118
+ HYBRID: 'HYBRID',
119
+ ZOOM: 'ZOOM',
120
+ MANAGE_ONLY: 'MANAGE_ONLY',
121
+ MICROSOFT: 'MICROSOFT',
122
+ };
123
+ const USER_TYPES_MAP = {
124
+ CUCM: 'CUCM',
125
+ WEBEX: 'WEBEX',
126
+ ONPREM: 'ONPREM',
127
+ };
128
+ const CUSTOMER_DESTINATION_MIGTATION_TYPE = {
129
+ MULTI_TENANT_ONLY: 'webex',
130
+ DEDICATED_INSTANCE_ONLY: 'webex',
131
+ HYBRID: 'webex',
132
+ ZOOM: 'zoom',
133
+ MANAGE_ONLY: 'webex',
134
+ MICROSOFT: 'teams',
135
+ };
136
+ const ON_PREM_ID = 2542;
137
+ const MAX_INT = 2147483647;
138
+
139
+ class UserListConfirmDialogComponent {
140
+ constructor(dialogRef, data) {
141
+ this.dialogRef = dialogRef;
142
+ this.data = data;
143
+ this.confirmButtonText = 'OK';
144
+ this.message = '';
145
+ this.title = '';
146
+ }
147
+ ngOnInit() {
148
+ this.confirmButtonText = this.data.confirmButtonText || '';
149
+ this.message = this.data.message || '';
150
+ this.title = this.data.title || '';
151
+ }
152
+ onClose(val) {
153
+ this.dialogRef.close(val);
154
+ }
155
+ }
156
+ UserListConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserListConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
157
+ UserListConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserListConfirmDialogComponent, selector: "app-info-dialog", ngImport: i0, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\n <div class=\"move_user_popup_icon\"></div>\n <div class=\"dialog-content-message\" [innerHTML]=\"message\"></div>\n </div>\n <div mat-dialog-actions class=\"flex-gap-container\">\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\n Cancel\n </button>\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\n {{confirmButtonText}}\n </button>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative;padding:0 0 30px}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px;margin:0 auto 15px}.move_user_popup_icon{display:block;height:30xp;margin:auto}.mat-dialog-actions{margin:0;bottom:-20px}.dialog-content-message{font-weight:500}.dialog-content-message p{padding:15px 0 0}.mat-dialog-content{padding:0}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000;background:white}.app-dialog-confirm-button{background:black;color:#fff}.move_user_popup_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%22170%22 height%3D%2292%22 viewBox%3D%220 0 170 92%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg clip-path%3D%22url(%23clip0_1542_78221)%22%3E%3Cpath d%3D%22M110.843 14.284C112.49 18.534 116.58 23.8465 122.052 23.8465C133.74 23.8465 141.177 6.31523 144.737 2.96836M103.99 17.6309C104.096 18.1621 104.521 18.534 105.052 18.534H107.337C107.868 18.534 108.293 18.1621 108.399 17.6309L108.718 15.8246C109.568 15.4527 110.312 14.9215 110.896 14.2309C111.321 13.7527 111.693 13.1684 111.958 12.5309L113.765 12.2121C114.296 12.1059 114.668 11.6809 114.668 11.1496V8.70586C114.668 8.17461 114.296 7.74961 113.765 7.64336L111.958 7.32461C111.321 5.89023 110.152 4.72148 108.718 4.08398L108.399 2.27773C108.293 1.74648 107.868 1.37461 107.337 1.37461H104.893C104.362 1.37461 103.937 1.74648 103.83 2.27773L103.512 4.08398C102.077 4.72148 100.908 5.89023 100.271 7.32461L98.4646 7.64336C97.9334 7.74961 97.5615 8.17461 97.5615 8.70586V11.6809C97.5615 12.2121 97.9334 12.6371 98.4646 12.7434L99.899 12.9559C100.43 13.0621 100.802 13.4871 100.802 14.0184V16.4621C100.802 16.9934 100.43 17.4184 99.899 17.5246L97.349 17.9496C96.9772 18.0027 96.6584 18.2684 96.499 18.6402C96.0209 20.1809 95.1709 21.5621 94.1084 22.7309C93.8428 22.9965 93.7897 23.4215 93.8959 23.7934L94.799 26.184C94.9584 26.6621 94.799 27.1934 94.3209 27.459L92.1959 28.6809C91.7709 28.9465 91.1865 28.8402 90.8678 28.4152L89.2209 26.4496C88.9553 26.1309 88.5834 26.0246 88.2115 26.0777C87.4678 26.2371 86.6709 26.3434 85.874 26.3434C85.0771 26.3434 84.2803 26.2371 83.5365 26.0777C83.1647 25.9715 82.7396 26.1309 82.5271 26.4496L80.8803 28.4152C80.5615 28.8402 79.9772 28.8934 79.5522 28.6809L77.4272 27.459C77.0022 27.1934 76.7897 26.6621 76.949 26.184L77.8522 23.7934C78.0115 23.4215 77.9053 22.9965 77.6396 22.7309C76.5771 21.5621 75.7803 20.1809 75.249 18.6402C75.1428 18.2684 74.824 18.0027 74.399 17.9496L71.849 17.5246C71.3178 17.4184 70.9459 16.9934 70.9459 16.4621V14.0184C70.9459 13.4871 71.3178 13.0621 71.849 12.9559L74.399 12.5309C74.7709 12.4777 75.0896 12.2121 75.249 11.8402C75.7271 10.2996 76.5771 8.91836 77.6396 7.74961C77.9053 7.48398 77.9584 7.05898 77.8522 6.68711L76.949 4.29648C76.7897 3.81836 76.949 3.28711 77.4272 3.02148L79.5522 1.79961C79.9772 1.53398 80.5615 1.64023 80.8803 2.06523L82.5271 4.03086C82.7928 4.34961 83.1647 4.45586 83.5365 4.40273C84.2803 4.24336 85.0771 4.13711 85.874 4.13711C86.6709 4.13711 87.4678 4.24336 88.2115 4.40273C88.5834 4.50898 89.0084 4.34961 89.2209 4.03086L90.8678 2.06523C91.1865 1.64023 91.7709 1.58711 92.1959 1.79961L94.3209 3.02148C94.7459 3.28711 94.9584 3.81836 94.799 4.29648L94.0022 6.68711C93.8959 7.05898 94.0022 7.48398 94.2678 7.74961M38.0615 85.4184H31.6865V55.6684C29.5084 55.6684 27.3303 54.8184 25.6834 53.1715C24.0365 51.5246 23.1865 49.3465 23.1865 47.1684H10.4365L18.9365 30.1684L25.6834 41.1652C28.9771 37.8715 34.3959 37.8715 37.6896 41.1652C40.8771 44.3527 40.9834 49.4527 38.0615 52.7996C37.849 53.0121 37.849 53.3309 38.0615 53.5434L47.5178 62.9996C46.0303 65.4434 46.349 68.684 48.474 70.809C49.2709 71.6059 50.2803 72.1902 51.3428 72.4559L51.9803 74.9527C52.2459 76.0152 53.7865 76.0152 54.0522 74.9527L54.6897 72.4559C55.9115 72.1371 57.0272 71.4465 57.8772 70.4371C59.8428 68.0996 59.8959 64.5934 57.9303 62.2559C55.8584 59.759 52.299 59.2809 49.6959 60.8746L42.1521 53.3309M59.3115 82.2309H57.1865V80.1059C57.1865 79.5215 56.7084 79.0434 56.124 79.0434H49.749C49.1646 79.0434 48.6865 79.5215 48.6865 80.1059V82.2309H47.624C47.0396 82.2309 46.5615 82.709 46.5615 83.2934V84.3559C46.5615 84.9402 47.0396 85.4184 47.624 85.4184H82.6865C84.4396 85.4184 85.874 86.8527 85.874 88.6059C85.874 90.4121 84.2272 91.7934 82.3678 91.7934C75.4615 91.634 69.9365 86.0027 69.9365 79.0434C69.9365 74.2621 69.9365 72.6684 69.9365 72.6684H66.749C66.1646 72.6684 65.6865 72.1902 65.6865 71.6059V56.7309C65.6865 56.1465 66.1646 55.6684 66.749 55.6684H69.9365C69.9365 53.0121 68.874 52.4809 68.874 50.3559C68.874 48.6027 70.3084 47.1684 72.0615 47.1684C73.8146 47.1684 75.249 48.6027 75.249 50.3559C75.249 52.4809 74.1865 53.0121 74.1865 55.6684H92.249C92.8334 55.6684 93.3115 56.1465 93.3115 56.7309V71.6059C93.3115 72.1902 92.8334 72.6684 92.249 72.6684H89.0615C89.0615 74.4215 87.6271 75.8559 85.874 75.8559C84.1209 75.8559 82.6865 74.4215 82.6865 72.6684C82.6865 70.9152 84.1209 69.4809 85.874 69.4809V26.4496M60.374 78.5121L62.499 76.9184M58.249 75.8559L59.3115 73.1996M68.874 59.9184H75.249M68.874 63.1059H75.249M68.874 66.2934H75.249M135.333 77.4496L127.683 85.0996C127.471 85.3121 127.205 85.4184 126.94 85.4184H100.802C100.218 85.4184 99.7397 84.9402 99.7397 84.3559V35.4809C99.7397 34.8965 100.218 34.4184 100.802 34.4184H136.927C137.512 34.4184 137.99 34.8965 137.99 35.4809V62.0434H132.943C132.199 62.0434 131.615 62.6277 131.615 63.3715C131.615 64.1152 132.199 64.6996 132.943 64.6996H149.412C150.155 64.6996 150.74 64.1152 150.74 63.3715C150.74 62.6277 150.155 62.0434 149.412 62.0434H142.24M126.249 81.6996V74.7934C126.249 74.209 126.727 73.7309 127.312 73.7309H136.874C137.458 73.7309 137.937 73.2527 137.937 72.6684V68.4184M103.937 44.9902L105.371 43.5559C106.646 42.2809 108.877 43.184 108.877 44.9902C108.877 46.7965 111.108 47.7527 112.383 46.4246L115.305 43.5027C116.58 42.2277 118.812 43.1309 118.812 44.9371C118.812 46.7434 121.043 47.6996 122.318 46.3715L125.24 43.4496C126.515 42.1746 128.746 43.0777 128.746 44.884C128.746 46.6902 130.977 47.6465 132.252 46.3184L133.687 44.884M103.937 54.5527L105.371 53.1184C106.646 51.8434 108.877 52.7465 108.877 54.5527C108.877 56.359 111.108 57.3152 112.383 55.9871L115.305 53.0652C116.58 51.7902 118.812 52.6934 118.812 54.4996C118.812 56.3059 121.043 57.2621 122.318 55.934L125.24 53.0121C126.515 51.7371 128.746 52.6402 128.746 54.4465C128.746 56.2527 130.977 57.209 132.252 55.8809L133.687 54.4465M103.937 64.1152L105.371 62.6809C106.646 61.4059 108.877 62.309 108.877 64.1152C108.877 65.9215 111.108 66.8777 112.383 65.5496L115.305 62.6277C116.58 61.3527 118.812 62.2559 118.812 64.0621C118.812 65.8684 121.043 66.8246 122.318 65.4965L123.699 64.1152M148.562 64.6996V66.2934C148.562 66.8777 148.083 67.3559 147.499 67.3559H143.249M131.562 63.4246H129.437M150.687 8.91836L142.505 17.0996C142.293 17.3121 142.187 17.5777 142.187 17.8434V62.0434M148.03 17.0465C148.88 17.3121 149.783 17.4715 150.687 17.4715C152.865 17.4715 155.043 16.6215 156.69 14.9746C159.983 11.6809 159.983 6.26211 156.69 2.96836C153.396 -0.325391 147.977 -0.325391 144.683 2.96836C143.037 4.61523 142.187 6.79336 142.187 8.97148C142.187 11.1496 143.037 13.3277 144.683 14.9746M92.249 15.2934C92.249 18.8142 89.3948 21.6684 85.874 21.6684C82.3532 21.6684 79.499 18.8142 79.499 15.2934C79.499 11.7725 82.3532 8.91836 85.874 8.91836C89.3948 8.91836 92.249 11.7725 92.249 15.2934ZM108.187 9.98086C108.187 11.1545 107.235 12.1059 106.062 12.1059C104.888 12.1059 103.937 11.1545 103.937 9.98086C103.937 8.80725 104.888 7.85586 106.062 7.85586C107.235 7.85586 108.187 8.80725 108.187 9.98086Z%22 stroke%3D%22url(%23paint0_linear_1542_78221)%22 stroke-width%3D%221.5%22 stroke-miterlimit%3D%2210%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient id%3D%22paint0_linear_1542_78221%22 x1%3D%2284.7982%22 y1%3D%220.498047%22 x2%3D%2284.7982%22 y2%3D%2291.7934%22 gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop stop-color%3D%22%2393C437%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22%23279BE8%22%2F%3E%3C%2FlinearGradient%3E%3CclipPath id%3D%22clip0_1542_78221%22%3E%3Crect width%3D%22170%22 height%3D%2292%22 fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\");display:block;height:100px;margin:auto;background-repeat:no-repeat;background-position:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }], encapsulation: i0.ViewEncapsulation.None });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserListConfirmDialogComponent, decorators: [{
159
+ type: Component,
160
+ args: [{ selector: 'app-info-dialog', encapsulation: ViewEncapsulation.None, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\n <div class=\"move_user_popup_icon\"></div>\n <div class=\"dialog-content-message\" [innerHTML]=\"message\"></div>\n </div>\n <div mat-dialog-actions class=\"flex-gap-container\">\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\n Cancel\n </button>\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\n {{confirmButtonText}}\n </button>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative;padding:0 0 30px}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px;margin:0 auto 15px}.move_user_popup_icon{display:block;height:30xp;margin:auto}.mat-dialog-actions{margin:0;bottom:-20px}.dialog-content-message{font-weight:500}.dialog-content-message p{padding:15px 0 0}.mat-dialog-content{padding:0}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000;background:white}.app-dialog-confirm-button{background:black;color:#fff}.move_user_popup_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%22170%22 height%3D%2292%22 viewBox%3D%220 0 170 92%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg clip-path%3D%22url(%23clip0_1542_78221)%22%3E%3Cpath d%3D%22M110.843 14.284C112.49 18.534 116.58 23.8465 122.052 23.8465C133.74 23.8465 141.177 6.31523 144.737 2.96836M103.99 17.6309C104.096 18.1621 104.521 18.534 105.052 18.534H107.337C107.868 18.534 108.293 18.1621 108.399 17.6309L108.718 15.8246C109.568 15.4527 110.312 14.9215 110.896 14.2309C111.321 13.7527 111.693 13.1684 111.958 12.5309L113.765 12.2121C114.296 12.1059 114.668 11.6809 114.668 11.1496V8.70586C114.668 8.17461 114.296 7.74961 113.765 7.64336L111.958 7.32461C111.321 5.89023 110.152 4.72148 108.718 4.08398L108.399 2.27773C108.293 1.74648 107.868 1.37461 107.337 1.37461H104.893C104.362 1.37461 103.937 1.74648 103.83 2.27773L103.512 4.08398C102.077 4.72148 100.908 5.89023 100.271 7.32461L98.4646 7.64336C97.9334 7.74961 97.5615 8.17461 97.5615 8.70586V11.6809C97.5615 12.2121 97.9334 12.6371 98.4646 12.7434L99.899 12.9559C100.43 13.0621 100.802 13.4871 100.802 14.0184V16.4621C100.802 16.9934 100.43 17.4184 99.899 17.5246L97.349 17.9496C96.9772 18.0027 96.6584 18.2684 96.499 18.6402C96.0209 20.1809 95.1709 21.5621 94.1084 22.7309C93.8428 22.9965 93.7897 23.4215 93.8959 23.7934L94.799 26.184C94.9584 26.6621 94.799 27.1934 94.3209 27.459L92.1959 28.6809C91.7709 28.9465 91.1865 28.8402 90.8678 28.4152L89.2209 26.4496C88.9553 26.1309 88.5834 26.0246 88.2115 26.0777C87.4678 26.2371 86.6709 26.3434 85.874 26.3434C85.0771 26.3434 84.2803 26.2371 83.5365 26.0777C83.1647 25.9715 82.7396 26.1309 82.5271 26.4496L80.8803 28.4152C80.5615 28.8402 79.9772 28.8934 79.5522 28.6809L77.4272 27.459C77.0022 27.1934 76.7897 26.6621 76.949 26.184L77.8522 23.7934C78.0115 23.4215 77.9053 22.9965 77.6396 22.7309C76.5771 21.5621 75.7803 20.1809 75.249 18.6402C75.1428 18.2684 74.824 18.0027 74.399 17.9496L71.849 17.5246C71.3178 17.4184 70.9459 16.9934 70.9459 16.4621V14.0184C70.9459 13.4871 71.3178 13.0621 71.849 12.9559L74.399 12.5309C74.7709 12.4777 75.0896 12.2121 75.249 11.8402C75.7271 10.2996 76.5771 8.91836 77.6396 7.74961C77.9053 7.48398 77.9584 7.05898 77.8522 6.68711L76.949 4.29648C76.7897 3.81836 76.949 3.28711 77.4272 3.02148L79.5522 1.79961C79.9772 1.53398 80.5615 1.64023 80.8803 2.06523L82.5271 4.03086C82.7928 4.34961 83.1647 4.45586 83.5365 4.40273C84.2803 4.24336 85.0771 4.13711 85.874 4.13711C86.6709 4.13711 87.4678 4.24336 88.2115 4.40273C88.5834 4.50898 89.0084 4.34961 89.2209 4.03086L90.8678 2.06523C91.1865 1.64023 91.7709 1.58711 92.1959 1.79961L94.3209 3.02148C94.7459 3.28711 94.9584 3.81836 94.799 4.29648L94.0022 6.68711C93.8959 7.05898 94.0022 7.48398 94.2678 7.74961M38.0615 85.4184H31.6865V55.6684C29.5084 55.6684 27.3303 54.8184 25.6834 53.1715C24.0365 51.5246 23.1865 49.3465 23.1865 47.1684H10.4365L18.9365 30.1684L25.6834 41.1652C28.9771 37.8715 34.3959 37.8715 37.6896 41.1652C40.8771 44.3527 40.9834 49.4527 38.0615 52.7996C37.849 53.0121 37.849 53.3309 38.0615 53.5434L47.5178 62.9996C46.0303 65.4434 46.349 68.684 48.474 70.809C49.2709 71.6059 50.2803 72.1902 51.3428 72.4559L51.9803 74.9527C52.2459 76.0152 53.7865 76.0152 54.0522 74.9527L54.6897 72.4559C55.9115 72.1371 57.0272 71.4465 57.8772 70.4371C59.8428 68.0996 59.8959 64.5934 57.9303 62.2559C55.8584 59.759 52.299 59.2809 49.6959 60.8746L42.1521 53.3309M59.3115 82.2309H57.1865V80.1059C57.1865 79.5215 56.7084 79.0434 56.124 79.0434H49.749C49.1646 79.0434 48.6865 79.5215 48.6865 80.1059V82.2309H47.624C47.0396 82.2309 46.5615 82.709 46.5615 83.2934V84.3559C46.5615 84.9402 47.0396 85.4184 47.624 85.4184H82.6865C84.4396 85.4184 85.874 86.8527 85.874 88.6059C85.874 90.4121 84.2272 91.7934 82.3678 91.7934C75.4615 91.634 69.9365 86.0027 69.9365 79.0434C69.9365 74.2621 69.9365 72.6684 69.9365 72.6684H66.749C66.1646 72.6684 65.6865 72.1902 65.6865 71.6059V56.7309C65.6865 56.1465 66.1646 55.6684 66.749 55.6684H69.9365C69.9365 53.0121 68.874 52.4809 68.874 50.3559C68.874 48.6027 70.3084 47.1684 72.0615 47.1684C73.8146 47.1684 75.249 48.6027 75.249 50.3559C75.249 52.4809 74.1865 53.0121 74.1865 55.6684H92.249C92.8334 55.6684 93.3115 56.1465 93.3115 56.7309V71.6059C93.3115 72.1902 92.8334 72.6684 92.249 72.6684H89.0615C89.0615 74.4215 87.6271 75.8559 85.874 75.8559C84.1209 75.8559 82.6865 74.4215 82.6865 72.6684C82.6865 70.9152 84.1209 69.4809 85.874 69.4809V26.4496M60.374 78.5121L62.499 76.9184M58.249 75.8559L59.3115 73.1996M68.874 59.9184H75.249M68.874 63.1059H75.249M68.874 66.2934H75.249M135.333 77.4496L127.683 85.0996C127.471 85.3121 127.205 85.4184 126.94 85.4184H100.802C100.218 85.4184 99.7397 84.9402 99.7397 84.3559V35.4809C99.7397 34.8965 100.218 34.4184 100.802 34.4184H136.927C137.512 34.4184 137.99 34.8965 137.99 35.4809V62.0434H132.943C132.199 62.0434 131.615 62.6277 131.615 63.3715C131.615 64.1152 132.199 64.6996 132.943 64.6996H149.412C150.155 64.6996 150.74 64.1152 150.74 63.3715C150.74 62.6277 150.155 62.0434 149.412 62.0434H142.24M126.249 81.6996V74.7934C126.249 74.209 126.727 73.7309 127.312 73.7309H136.874C137.458 73.7309 137.937 73.2527 137.937 72.6684V68.4184M103.937 44.9902L105.371 43.5559C106.646 42.2809 108.877 43.184 108.877 44.9902C108.877 46.7965 111.108 47.7527 112.383 46.4246L115.305 43.5027C116.58 42.2277 118.812 43.1309 118.812 44.9371C118.812 46.7434 121.043 47.6996 122.318 46.3715L125.24 43.4496C126.515 42.1746 128.746 43.0777 128.746 44.884C128.746 46.6902 130.977 47.6465 132.252 46.3184L133.687 44.884M103.937 54.5527L105.371 53.1184C106.646 51.8434 108.877 52.7465 108.877 54.5527C108.877 56.359 111.108 57.3152 112.383 55.9871L115.305 53.0652C116.58 51.7902 118.812 52.6934 118.812 54.4996C118.812 56.3059 121.043 57.2621 122.318 55.934L125.24 53.0121C126.515 51.7371 128.746 52.6402 128.746 54.4465C128.746 56.2527 130.977 57.209 132.252 55.8809L133.687 54.4465M103.937 64.1152L105.371 62.6809C106.646 61.4059 108.877 62.309 108.877 64.1152C108.877 65.9215 111.108 66.8777 112.383 65.5496L115.305 62.6277C116.58 61.3527 118.812 62.2559 118.812 64.0621C118.812 65.8684 121.043 66.8246 122.318 65.4965L123.699 64.1152M148.562 64.6996V66.2934C148.562 66.8777 148.083 67.3559 147.499 67.3559H143.249M131.562 63.4246H129.437M150.687 8.91836L142.505 17.0996C142.293 17.3121 142.187 17.5777 142.187 17.8434V62.0434M148.03 17.0465C148.88 17.3121 149.783 17.4715 150.687 17.4715C152.865 17.4715 155.043 16.6215 156.69 14.9746C159.983 11.6809 159.983 6.26211 156.69 2.96836C153.396 -0.325391 147.977 -0.325391 144.683 2.96836C143.037 4.61523 142.187 6.79336 142.187 8.97148C142.187 11.1496 143.037 13.3277 144.683 14.9746M92.249 15.2934C92.249 18.8142 89.3948 21.6684 85.874 21.6684C82.3532 21.6684 79.499 18.8142 79.499 15.2934C79.499 11.7725 82.3532 8.91836 85.874 8.91836C89.3948 8.91836 92.249 11.7725 92.249 15.2934ZM108.187 9.98086C108.187 11.1545 107.235 12.1059 106.062 12.1059C104.888 12.1059 103.937 11.1545 103.937 9.98086C103.937 8.80725 104.888 7.85586 106.062 7.85586C107.235 7.85586 108.187 8.80725 108.187 9.98086Z%22 stroke%3D%22url(%23paint0_linear_1542_78221)%22 stroke-width%3D%221.5%22 stroke-miterlimit%3D%2210%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient id%3D%22paint0_linear_1542_78221%22 x1%3D%2284.7982%22 y1%3D%220.498047%22 x2%3D%2284.7982%22 y2%3D%2291.7934%22 gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop stop-color%3D%22%2393C437%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22%23279BE8%22%2F%3E%3C%2FlinearGradient%3E%3CclipPath id%3D%22clip0_1542_78221%22%3E%3Crect width%3D%22170%22 height%3D%2292%22 fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\");display:block;height:100px;margin:auto;background-repeat:no-repeat;background-position:center}\n"] }]
161
+ }], ctorParameters: function () {
162
+ return [{ type: i1.MatDialogRef }, { type: InfoDialogConfig, decorators: [{
163
+ type: Inject,
164
+ args: [MAT_DIALOG_DATA]
165
+ }] }];
166
+ } });
167
+ class InfoDialogConfig {
168
+ }
169
+
170
+ const getSavableData = (model, exclude) => {
171
+ let result = Object.keys(model);
172
+ if (exclude && exclude.length) {
173
+ result = result.filter(key => !exclude.some(item => item === key));
174
+ }
175
+ return result.reduce((result, key) => {
176
+ if (model[key] instanceof Array && model[key].length && model[key][0].getSavableData) {
177
+ result[key] = model[key].map((item) => item.getSavableData());
178
+ }
179
+ else if (model[key] instanceof Object && model[key].getSavableData) {
180
+ result[key] = model[key].getSavableData();
181
+ }
182
+ else {
183
+ result[key] = model[key];
184
+ }
185
+ return result;
186
+ }, {});
187
+ };
188
+ const filterOptions = (options, query, shownValue, field) => {
189
+ if (!options) {
190
+ return [];
191
+ }
192
+ if (!query) {
193
+ return options;
194
+ }
195
+ return options.filter(option => {
196
+ return (field ? String(option[field]).toLowerCase().includes(String(query).toLowerCase()) :
197
+ String(option).toLowerCase().includes(String(query).toLowerCase()) ||
198
+ (shownValue && shownValue === option));
199
+ });
200
+ };
201
+
202
+ class SimplifiedUser {
203
+ constructor(user) {
204
+ if (user) {
205
+ this.userid = user.userid;
206
+ this.email = user.email;
207
+ this.firstName = user.firstName;
208
+ this.lastName = user.lastName;
209
+ this.token = user.token;
210
+ }
211
+ this.initForm();
212
+ }
213
+ initForm() {
214
+ const formBuilder = new FormBuilder();
215
+ const formSettings = {
216
+ userid: [{ value: this.userid || '', disabled: true }, [Validators.required, Validators.maxLength(128)]],
217
+ email: [{ value: this.email || '', disabled: true }, [
218
+ Validators.pattern(REGEX_PATTERN.EMAIL),
219
+ Validators.required
220
+ ]],
221
+ firstName: [{ value: this.firstName || '', disabled: true }],
222
+ lastName: [{ value: this.lastName || '', disabled: true }, Validators.required],
223
+ };
224
+ this.form = formBuilder.group(formSettings);
225
+ }
226
+ toggleEditMode() {
227
+ this.editMode = !this.editMode;
228
+ ['userid', 'email', 'firstName', 'lastName'].forEach(token => {
229
+ var _a, _b;
230
+ if (this.editMode) {
231
+ (_a = this.form.get(token)) === null || _a === void 0 ? void 0 : _a.enable();
232
+ }
233
+ else {
234
+ (_b = this.form.get(token)) === null || _b === void 0 ? void 0 : _b.disable();
235
+ }
236
+ });
237
+ }
238
+ getSavableData() {
239
+ const excludedFields = ['form', 'editMode', 'viewMode', 'token', 'hasModifiedCache'];
240
+ return getSavableData(this, excludedFields);
241
+ }
242
+ equal(userToCompare) {
243
+ if (!userToCompare) {
244
+ return false;
245
+ }
246
+ return JSON.stringify(this.getSavableData()) === JSON.stringify(userToCompare.getSavableData());
247
+ }
248
+ }
249
+
250
+ class UtilsService {
251
+ static sortSortArrayByProperty(array, sortBy) {
252
+ if (!array) {
253
+ return null;
254
+ }
255
+ return array.sort((a, b) => {
256
+ if (!a[sortBy] && !b[sortBy]) {
257
+ return 0;
258
+ }
259
+ if (a[sortBy] && !b[sortBy]) {
260
+ return 1;
261
+ }
262
+ if (!a[sortBy] && b[sortBy]) {
263
+ return -1;
264
+ }
265
+ const positionA = a[sortBy];
266
+ const positionB = b[sortBy];
267
+ return (positionA < positionB) ? -1 : (positionA > positionB) ? 1 : 0;
268
+ });
269
+ }
270
+ static diff(origObject, updatedObj, path, keysToIgnore) {
271
+ let result = [];
272
+ if (Object.is(origObject, updatedObj)) {
273
+ return undefined;
274
+ }
275
+ if (!updatedObj || typeof updatedObj !== 'object') {
276
+ return updatedObj;
277
+ }
278
+ const concat = Array.from(new Set([...Object.keys(origObject || {}), ...Object.keys(updatedObj || {})]));
279
+ const filter = keysToIgnore ? concat.filter(key => !keysToIgnore.includes(key)) : concat;
280
+ filter
281
+ .forEach(key => {
282
+ if (typeof updatedObj[key] === 'object' && typeof origObject[key] === 'object') {
283
+ if (UtilsService.differs(updatedObj[key], origObject[key])) {
284
+ const newPath = `${path}${path ? '.' : ''}${key}`;
285
+ const values = UtilsService.diff(origObject[key], updatedObj[key], newPath, keysToIgnore);
286
+ if (values !== undefined) {
287
+ result = [...result, ...values];
288
+ }
289
+ }
290
+ }
291
+ else if (updatedObj && !origObject || updatedObj[key] !== origObject[key] && !Object.is(origObject[key], updatedObj[key])) {
292
+ const value = updatedObj ? UtilsService.formatIfEmpty(updatedObj[key]) : null;
293
+ result.push(`${path}${path ? '.' : ''}${key}=${value}`);
294
+ }
295
+ });
296
+ return result;
297
+ }
298
+ static formatIfEmpty(value) {
299
+ if (value) {
300
+ return value;
301
+ }
302
+ switch (typeof value) {
303
+ case 'boolean':
304
+ return value;
305
+ case 'string':
306
+ return '';
307
+ default:
308
+ return null;
309
+ }
310
+ }
311
+ static differs(obj1, obj2) {
312
+ return JSON.stringify(obj1) !== JSON.stringify(obj2);
313
+ }
314
+ }
315
+ UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
316
+ UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService });
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, decorators: [{
318
+ type: Injectable
319
+ }] });
320
+
321
+ class APIService {
322
+ constructor(httpClient) {
323
+ this.httpClient = httpClient;
324
+ this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
325
+ }
326
+ fetch(url, params = {}, cache) {
327
+ const headers = this.getHeaders(cache);
328
+ return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
329
+ }
330
+ post(url, body, params = {}) {
331
+ body = body || null;
332
+ const headers = this.getHeaders();
333
+ return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
334
+ }
335
+ // use when response extended data is necessary:
336
+ postExtended(url, body = null, params = {}, headers = {}) {
337
+ headers = headers || this.getHeaders();
338
+ return this.httpClient.post(this.apiUrl + url, body, {
339
+ headers,
340
+ observe: 'response',
341
+ params: this.prepareEncodedParams(params)
342
+ });
343
+ }
344
+ put(url, body = null, params = {}) {
345
+ const headers = this.getHeaders();
346
+ return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
347
+ }
348
+ delete(url, params = {}) {
349
+ const headers = this.getHeaders();
350
+ return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
351
+ }
352
+ fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
353
+ const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
354
+ const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
355
+ return this.fetch(url, params, cache);
356
+ }
357
+ prepareEncodedParams(params) {
358
+ const result = {};
359
+ if (!params) {
360
+ return {};
361
+ }
362
+ for (const key of Object.keys(params)) {
363
+ if (params[key]) {
364
+ const stringParam = params[key].toString();
365
+ result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
366
+ }
367
+ }
368
+ return result;
369
+ }
370
+ getHeaders(cache) {
371
+ let headers = new HttpHeaders();
372
+ if (cache) {
373
+ headers = headers.append('_Cache', 'true ');
374
+ }
375
+ const token = this.token || this.getParameterByName('token');
376
+ headers = headers.append('Authorization', 'Bearer ' + token);
377
+ return headers;
378
+ }
379
+ getParameterByName(name, url = window.location.href) {
380
+ name = name.replace(/[\[\]]/g, '\\$&');
381
+ var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
382
+ if (!results)
383
+ return null;
384
+ if (!results[2])
385
+ return '';
386
+ return decodeURIComponent(results[2].replace(/\+/g, ' '));
387
+ }
388
+ }
389
+ APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
390
+ APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService });
391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
392
+ type: Injectable
393
+ }], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
394
+
395
+ class ApiWebexService extends APIService {
396
+ constructor(httpClient) {
397
+ super(httpClient);
398
+ //this.apiUrl = window.location.protocol + "//"+ window.location.hostname + environment.apiAuthUrl;
399
+ this.apiUrl = 'https://webex.car-west.net/webex';
400
+ // this.apiUrl = 'https://staging.tuki.io/webex';
401
+ }
402
+ }
403
+ ApiWebexService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
404
+ ApiWebexService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService });
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, decorators: [{
406
+ type: Injectable
407
+ }], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
408
+
409
+ class UserService {
410
+ constructor(apiService, apiWebexService) {
411
+ this.apiService = apiService;
412
+ this.apiWebexService = apiWebexService;
413
+ this.siteId = -1;
414
+ this.userId = '';
415
+ this.userIdExistPending = false;
416
+ this.hasExistedUserId = false;
417
+ this.moveUserPending = false;
418
+ this.userMoved$ = new Subject();
419
+ this.userTypeSelected$ = new Subject();
420
+ }
421
+ ngOnInit() {
422
+ console.log(this.siteId);
423
+ }
424
+ fetchUserToken(siteId, userId) {
425
+ this.siteId = siteId;
426
+ this.userId = userId;
427
+ return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
428
+ .pipe(map((result) => {
429
+ const token = Object.keys(result)[0];
430
+ this.setSimplifiedUser(Object.values(result)[0], token);
431
+ }));
432
+ // .pipe(this.handleError(false, true));
433
+ }
434
+ updateUserFields(body) {
435
+ var _a;
436
+ if (!this.userId || !this.siteId || !((_a = this.user) === null || _a === void 0 ? void 0 : _a.token)) {
437
+ return;
438
+ }
439
+ return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
440
+ // .pipe(this.handleError(false, true));
441
+ }
442
+ moveUserToMT(customerId, user) {
443
+ // return new Observable<boolean>(observer => {
444
+ // setTimeout(() => {
445
+ // observer.next(true);
446
+ //
447
+ // }, 1000);
448
+ // });
449
+ return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
450
+ // .pipe(this.handleError(true, true));
451
+ }
452
+ moveUserToDI(customerId, user) {
453
+ // return new Observable<boolean>(observer => {
454
+ // setTimeout(() => {
455
+ // observer.next(true);
456
+ //
457
+ // }, 1000);
458
+ // });
459
+ const URL = API.REVERT_WEBEX_USER.replace(':customerId', customerId).replace(':webexUUID', String(user.webexUUID));
460
+ return this.apiWebexService.post(URL, this.getMoveUserBody(customerId, user));
461
+ // .pipe(this.handleError(true, true));
462
+ }
463
+ getMigrationFormStatus(customerId, formId) {
464
+ const url = API.MIGRATION_FORM
465
+ .replace(':customerId', String(customerId))
466
+ .replace(':formId', String(formId));
467
+ return this.apiWebexService.fetch(url);
468
+ }
469
+ getMigratedMigrationFormEntities(customerId, webexUUID, feature = 'PERSON') {
470
+ const url = API.MIGRATION_FORM_ENTITIES_MIGRATED
471
+ .replace(':customerId', String(customerId));
472
+ return this.apiWebexService.fetch(url, { webexUUID, feature });
473
+ }
474
+ getMoveUserBody(customerId, user) {
475
+ return {
476
+ customerId: customerId,
477
+ entities: {
478
+ PERSON: [{ cucmId: user.cucmId, entityId: user.userid }]
479
+ }
480
+ };
481
+ }
482
+ deleteUser(siteId, userId) {
483
+ return this.apiService.delete(API.DELETE_USER.replace(':siteId', String(siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))));
484
+ // .pipe(this.handleError(true, true));
485
+ }
486
+ fetchUserById(id) {
487
+ this.userIdExistPending = true;
488
+ return this.apiService.fetch(API.USER_BY_ID.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))))
489
+ .pipe(map(result => {
490
+ this.userIdExistPending = false;
491
+ return result;
492
+ }));
493
+ }
494
+ persistCacheChanges() {
495
+ const params = {
496
+ excludeDeviceExtraOptions: true
497
+ };
498
+ return this.processUserChangesToCache()
499
+ .pipe(map((result) => {
500
+ return this.apiService.post(API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), {}, params)
501
+ .subscribe(() => {
502
+ });
503
+ // .pipe(map((user) => {
504
+ // // this.setUser(user, false, this.user.token);
505
+ // this.user.hasModifiedCache = false;
506
+ // }))
507
+ // .pipe(this.handleError(true, true));
508
+ }));
509
+ }
510
+ processUserChangesToCache() {
511
+ const calls = [];
512
+ const body = UtilsService.diff(this.originUser.getSavableData(), this.user.getSavableData(), 'user');
513
+ if (body) {
514
+ calls.push(this.updateUserFields(body));
515
+ }
516
+ if (!(calls === null || calls === void 0 ? void 0 : calls.length)) {
517
+ return of(this.user);
518
+ }
519
+ return forkJoin(calls)
520
+ .pipe(map((responses) => {
521
+ // ApiUserResponse
522
+ this.handleSaveUserResponse(responses);
523
+ }));
524
+ // .pipe(this.handleError(false, true));
525
+ }
526
+ hasUnsavedChanges() {
527
+ return !this.user.equal(this.originUser);
528
+ }
529
+ setSimplifiedUser(user, token) {
530
+ this.user = new SimplifiedUser(user);
531
+ const copiedUser = JSON.parse(JSON.stringify(user));
532
+ this.originUser = new SimplifiedUser(copiedUser);
533
+ this.user.token = this.user.token || token;
534
+ this.originUser.token = this.originUser.token || token;
535
+ }
536
+ handleSaveUserResponse(responses) {
537
+ if (!(responses === null || responses === void 0 ? void 0 : responses.length)) {
538
+ return;
539
+ }
540
+ for (let len = responses.length, i = len - 1; i >= 0; i--) {
541
+ if (responses[i] && responses[i].currentUpdatedUser) {
542
+ // this.setUser(responses[i].currentUpdatedUser, false, this.user.token);
543
+ this.user.hasModifiedCache = true;
544
+ return;
545
+ }
546
+ }
547
+ }
548
+ triggerFirmwareUpgrade(customerId, migrationFormId, deviceMap, customerType) {
549
+ // const migrationType = CUSTOMER_DESTINATION_MIGTATION_TYPE[customerType].toUpperCase();
550
+ const url = API.TRIGGER_FIRMWARE_MIGRATION
551
+ .replace(':migrationType', 'webex'.toUpperCase())
552
+ .replace(':customerId', String(customerId))
553
+ .replace(':migrationFormId', String(migrationFormId));
554
+ return this.apiWebexService
555
+ .post(url, deviceMap);
556
+ // .pipe(this.handleError(true, true));
557
+ }
558
+ revertMigration(customerId, personId) {
559
+ const url = API.WEBEX_REVERT
560
+ .replace(':customerId', String(customerId))
561
+ .replace(':personId', personId);
562
+ return this.apiWebexService.post(url, {});
563
+ // .pipe(this.handleError(true, true));
564
+ }
565
+ swapStatuses(customerId, email) {
566
+ return this.apiService.put(API.SWAP_STATUSES.replace(':customerId', String(customerId)), null, { email });
567
+ }
568
+ }
569
+ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, deps: [{ token: APIService }, { token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
570
+ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService });
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
572
+ type: Injectable
573
+ }], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
574
+
575
+ const TTL_DEFAULT = 30000;
576
+ const TTL_LONG_DEFAULT = 45000;
577
+ var NotificationType;
578
+ (function (NotificationType) {
579
+ NotificationType["info"] = "info";
580
+ NotificationType["error"] = "error";
581
+ NotificationType["success"] = "success";
582
+ NotificationType["warning"] = "warning";
583
+ })(NotificationType || (NotificationType = {}));
584
+ class Notification {
585
+ constructor(data) {
586
+ this.ttl = TTL_DEFAULT;
587
+ Object.assign(this, data || {});
588
+ if (this.ttl === undefined) {
589
+ this.ttl = this.message && this.message.length && this.message.length < 80 ? TTL_DEFAULT : TTL_LONG_DEFAULT;
590
+ }
591
+ }
592
+ isInfo() {
593
+ return this.type === NotificationType.info;
594
+ }
595
+ isError() {
596
+ return this.type === NotificationType.error;
597
+ }
598
+ isSuccess() {
599
+ return this.type === NotificationType.success;
600
+ }
601
+ isWarning() {
602
+ return this.type === NotificationType.warning;
603
+ }
604
+ }
605
+
606
+ const SUCCESS_TIME = 5000;
607
+ const INACTIVE_SESSION_MESSAGE = 'Your session was lost due to inactivity. Please login again';
608
+ const INACTIVE_SESSION = 'SESSION_INACTIVE';
609
+ class NotificationService {
610
+ constructor() {
611
+ this.listChange = new Subject();
612
+ this.max = 0;
613
+ this.list = [];
614
+ }
615
+ error(message, ttl) {
616
+ this.notify('error', message, ttl);
617
+ }
618
+ success(message, ttl) {
619
+ this.notify('success', message, (!ttl) ? SUCCESS_TIME : ttl);
620
+ }
621
+ warning(message, ttl) {
622
+ this.notify('warning', message, ttl);
623
+ }
624
+ info(message, ttl) {
625
+ this.notify('info', message, ttl);
626
+ }
627
+ notify(type, message, ttl) {
628
+ const found = this.list.find((n) => n.message === message);
629
+ if (found) {
630
+ this.remove(found);
631
+ }
632
+ const notification = new Notification({
633
+ id: ++this.max,
634
+ type, message, ttl
635
+ });
636
+ if (notification.ttl > 0) {
637
+ notification.timerId = setTimeout(() => this.remove(notification, true), notification.ttl);
638
+ }
639
+ this.list.push(notification);
640
+ this.listChange.next(this.list);
641
+ }
642
+ remove(notification, auto) {
643
+ if (!auto && notification.timerId) {
644
+ // clear timeout in case of manual remove
645
+ clearInterval(notification.timerId);
646
+ }
647
+ this.list = this.list.filter(n => n.id !== notification.id);
648
+ this.listChange.next(this.list);
649
+ }
650
+ removeInactiveSessionError() {
651
+ if (!this.list || !this.list.length) {
652
+ return;
653
+ }
654
+ this.list = this.list.filter(n => n.message !== INACTIVE_SESSION_MESSAGE && n.message !== INACTIVE_SESSION);
655
+ this.listChange.next(this.list);
656
+ }
657
+ }
658
+ NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
659
+ NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService });
660
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, decorators: [{
661
+ type: Injectable
662
+ }], ctorParameters: function () { return []; } });
663
+
664
+ class ListUser {
665
+ constructor(user, roleName) {
666
+ this.devices = [];
667
+ this.deviceProfiles = [];
668
+ this.isMigrated = false;
669
+ this.isReadyToUpgrade = false;
670
+ if (user) {
671
+ Object.assign(this, user);
672
+ }
673
+ if (roleName) {
674
+ this.roleName = roleName;
675
+ }
676
+ }
677
+ }
678
+
679
+ class RemoveKynFromIBMService {
680
+ constructor() {
681
+ }
682
+ removeCUCMS(date, customerId) {
683
+ if (customerId === 8) {
684
+ return date.filter((val) => !CUCMS_TO_IGNORE.includes(Math.round(val.cucmId)));
685
+ }
686
+ return date;
687
+ }
688
+ removeCUCS(date, customerId) {
689
+ if (customerId === 8) {
690
+ return date.filter((val) => !CUCS_TO_IGNORE.includes(Math.round(val.cucId)));
691
+ }
692
+ return date;
693
+ }
694
+ }
695
+ RemoveKynFromIBMService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
696
+ RemoveKynFromIBMService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService });
697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, decorators: [{
698
+ type: Injectable
699
+ }], ctorParameters: function () { return []; } });
700
+
701
+ class UsersSearchService {
702
+ constructor(apiService, webexApiService, removeKynFromIBMService) {
703
+ this.apiService = apiService;
704
+ this.webexApiService = webexApiService;
705
+ this.removeKynFromIBMService = removeKynFromIBMService;
706
+ this.siteId = -1;
707
+ this.userId = '';
708
+ this.userIdExistPending = false;
709
+ this.hasExistedUserId = false;
710
+ this.pageSize = PAGINATION_DEFAULTS.SIZE;
711
+ this.pageIndex = PAGINATION_DEFAULTS.SIZE;
712
+ this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
713
+ this.foundUsers$ = new BehaviorSubject(null);
714
+ this.quickUpgradeStatusUsers$ = new BehaviorSubject(null);
715
+ }
716
+ getAllRegularUsers(searchParams) {
717
+ const params = searchParams || { customerid: this.customerId, siteid: this.siteId };
718
+ return this.apiService.fetchPagination(API.QUICK_USERS_SEARCH, MAX_INTEGER, 0, params)
719
+ .pipe(map((res) => {
720
+ var _a;
721
+ const users = res.pageData && res.pageData.length ? res.pageData
722
+ // /.map(user => new ListUser(user, user.webexUUID ? '' : 'Dedicated Instance Calling User')) : [];
723
+ .map(user => new ListUser(user)) : [];
724
+ if ((_a = this.migratedUsersIds) === null || _a === void 0 ? void 0 : _a.length) {
725
+ this.setMigratedPropToUsers(users);
726
+ }
727
+ return users;
728
+ }));
729
+ }
730
+ getPagination() {
731
+ return {
732
+ total: this.total,
733
+ pageSizeOptions: this.pageSizeOptions,
734
+ pageSize: this.pageSize,
735
+ pageIndex: this.pageIndex
736
+ };
737
+ }
738
+ setDefaultValues() {
739
+ this.total = 0;
740
+ this.pageSize = PAGINATION_DEFAULTS.SIZE;
741
+ this.pageIndex = PAGINATION_DEFAULTS.INDEX;
742
+ this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
743
+ }
744
+ quickRegularUsersSearch(searchParams, isMigratedUsersOnly, pageSize) {
745
+ console.log('searchParams = ', searchParams);
746
+ this.searchParams = searchParams || { customerid: this.customerId, siteid: this.siteId };
747
+ // this.searchParams['provisionType'] = 'CUCM';
748
+ return this.apiService.fetchPagination(API.QUICK_USERS_SEARCH, this.pageSize, pageSize || this.pageIndex, this.searchParams)
749
+ .pipe(map((res) => {
750
+ var _a;
751
+ // this.totals = this.totals || {};
752
+ // this.totals['users'] = res.total;
753
+ // this.foundUsers$.next(this.removeKynFromIBMService.removeCUCMS(users, this.customerId));
754
+ if (!isMigratedUsersOnly) {
755
+ const users = res.pageData && res.pageData.length ? res.pageData
756
+ .map(user => new ListUser(user)) : [];
757
+ if ((_a = this.migratedUsersIds) === null || _a === void 0 ? void 0 : _a.length) {
758
+ this.setMigratedPropToUsers(users);
759
+ }
760
+ this.total = res.total;
761
+ this.foundUsers$.next(users);
762
+ }
763
+ else {
764
+ this.migratedUsersIds = res.pageData && res.pageData.length ? res.pageData
765
+ .map(user => user.userid) : [];
766
+ }
767
+ }));
768
+ // .pipe(this.handleError(true));
769
+ }
770
+ quickWebexUsersSearch(searchParams, isMigratedUsersOnly, pageSize) {
771
+ this.searchParams = searchParams || { customerid: this.customerId, siteid: this.siteId };
772
+ // this.searchParams['provisionType'] = 'CUCM';
773
+ return this.webexApiService.fetchPagination(API.QUICK_USERS_SEARCH, this.pageSize, pageSize || this.pageIndex, this.searchParams)
774
+ .pipe(map((res) => {
775
+ var _a;
776
+ console.log('data: ', res);
777
+ if (!isMigratedUsersOnly) {
778
+ const users = res.pageData && res.pageData.length ? res.pageData
779
+ .map(user => new ListUser(user)) : [];
780
+ if ((_a = this.migratedUsersIds) === null || _a === void 0 ? void 0 : _a.length) {
781
+ this.setMigratedPropToUsers(users);
782
+ }
783
+ this.total = res.total;
784
+ this.foundUsers$.next(users);
785
+ }
786
+ else {
787
+ this.migratedUsersIds = res.pageData && res.pageData.length ? res.pageData
788
+ .map(user => user.userid) : [];
789
+ }
790
+ }));
791
+ // .pipe(this.handleError(true));
792
+ }
793
+ getMigratedUsers(customerId) {
794
+ this.migratedUsers = [];
795
+ return of(this.migratedUsers);
796
+ // return this.webexApiService.fetch(API.WEBEX_USERS.replace(':customerId', String(customerId)), {})
797
+ // .pipe(map((result: any) => {
798
+ // if (result && result.length) {
799
+ // this.migratedUsers = result.filter((user: any) => user.webexUUID && user.devices && user.devices.length);
800
+ // }
801
+ // }))
802
+ }
803
+ getMigratedWebexUsers(customerId) {
804
+ const params = { customerid: customerId, type: 'PERSON' };
805
+ return this.webexApiService.fetch(API.MIGRATED_USERS.replace(':customerId', String(customerId)), params, true)
806
+ .pipe(map((result) => {
807
+ }));
808
+ }
809
+ getUsersUpgradeStatus(customerId) {
810
+ const URL = API.QUICK_UPGRADE_STATUS_USERS.replace(':customerId', String(customerId));
811
+ return this.webexApiService.fetchPagination(URL, MAX_INT, 0)
812
+ .pipe(map((result) => {
813
+ var _a;
814
+ if ((_a = result === null || result === void 0 ? void 0 : result.content) === null || _a === void 0 ? void 0 : _a.length) {
815
+ this.usersUpgradeStatus = Object.fromEntries(result.content.map((item) => [
816
+ item.userId,
817
+ item.upgradeStatus === 'READY'
818
+ ]));
819
+ }
820
+ else {
821
+ this.usersUpgradeStatus = null;
822
+ }
823
+ this.quickUpgradeStatusUsers$.next();
824
+ }));
825
+ }
826
+ setMigratedPropToUsers(users) {
827
+ // users.forEach((user: any) => {
828
+ // const migratedUser = this.migratedUsers.filter((migratedUser: any) => migratedUser.userid === user.email);
829
+ // if (migratedUser && migratedUser[0]) {
830
+ // user.roleName = '';
831
+ // user.isMigrated = true;
832
+ // user.status = 'Migrated';
833
+ // user.webexUUID = migratedUser[0].webexUUID;
834
+ // } else {
835
+ // user.roleName = 'Dedicated Instance Calling user';
836
+ // user.isMigrated = false;
837
+ // user.status = 'Active';
838
+ // user.webexUUID = null;
839
+ // }
840
+ // if (user.webexUUID) {
841
+ // user.roleName = 'Dedicated Instance Calling user';
842
+ // } else {
843
+ // user.roleName = '';
844
+ // }
845
+ // })
846
+ // console.log('users ttt', users);
847
+ }
848
+ setUpgradeStatusToUsers(users, upgradeStatusObj) {
849
+ if ((users === null || users === void 0 ? void 0 : users.length) && upgradeStatusObj) {
850
+ users.forEach(user => {
851
+ if (upgradeStatusObj[user.userid]) {
852
+ user.isReadyToUpgrade = upgradeStatusObj[user.userid];
853
+ }
854
+ });
855
+ }
856
+ }
857
+ }
858
+ UsersSearchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService, deps: [{ token: APIService }, { token: ApiWebexService }, { token: RemoveKynFromIBMService }], target: i0.ɵɵFactoryTarget.Injectable });
859
+ UsersSearchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService });
860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService, decorators: [{
861
+ type: Injectable
862
+ }], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }, { type: RemoveKynFromIBMService }]; } });
863
+
864
+ class PaginationComponent {
865
+ constructor() {
866
+ this.pageEmitter = new EventEmitter();
867
+ this.pageNumberChangeEmitter = new EventEmitter();
868
+ this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
869
+ }
870
+ ngOnInit() {
871
+ }
872
+ pageEvent(event) {
873
+ this.pageEmitter.emit(event);
874
+ }
875
+ changePerPageNumber(event) {
876
+ this.pageNumberChangeEmitter.emit(event.value);
877
+ }
878
+ }
879
+ PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
880
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PaginationComponent, selector: "app-pagination", inputs: { pagination: "pagination", showPageSizeOptions: "showPageSizeOptions", showRefreshButton: "showRefreshButton", lengthPending: "lengthPending" }, outputs: { pageEmitter: "pageEmitter", pageNumberChangeEmitter: "pageNumberChangeEmitter" }, ngImport: i0, template: "<div class=\"flex-box pagination\">\r\n <div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions || [5, 10, 25, 100]\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n <mat-spinner class=\"length-spinner\" [diameter]=\"20\" mode=\"indeterminate\" *ngIf=\"lengthPending\">\r\n </mat-spinner>\r\n </div>\r\n\r\n <div class=\"flex-box per-page-block\" style=\"justify-content: left;\" *ngIf=\"showPageSizeOptions\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select [(ngModel)]=\"pagination.pageSize\" (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [".search-header-refresh-icon{align-items:center;line-height:54px;margin-left:10px}button[mat-icon-button] i{font-size:18px}mat-spinner.length-spinner{position:absolute;right:120px}h3,.search-header-refresh-icon{float:left}.page-options,.mat-paginator{float:right}.per-page-block mat-form-field{width:70px!important}.per-page-block span{margin-right:20px}.pagination{display:flex;justify-content:flex-end}.select-page-size{width:60px;margin:0 0 0 15px;padding:0 10px}.item_per_page{line-height:35px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] });
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, decorators: [{
882
+ type: Component,
883
+ args: [{ selector: 'app-pagination', template: "<div class=\"flex-box pagination\">\r\n <div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions || [5, 10, 25, 100]\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n <mat-spinner class=\"length-spinner\" [diameter]=\"20\" mode=\"indeterminate\" *ngIf=\"lengthPending\">\r\n </mat-spinner>\r\n </div>\r\n\r\n <div class=\"flex-box per-page-block\" style=\"justify-content: left;\" *ngIf=\"showPageSizeOptions\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select [(ngModel)]=\"pagination.pageSize\" (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [".search-header-refresh-icon{align-items:center;line-height:54px;margin-left:10px}button[mat-icon-button] i{font-size:18px}mat-spinner.length-spinner{position:absolute;right:120px}h3,.search-header-refresh-icon{float:left}.page-options,.mat-paginator{float:right}.per-page-block mat-form-field{width:70px!important}.per-page-block span{margin-right:20px}.pagination{display:flex;justify-content:flex-end}.select-page-size{width:60px;margin:0 0 0 15px;padding:0 10px}.item_per_page{line-height:35px}\n"] }]
884
+ }], ctorParameters: function () { return []; }, propDecorators: { pagination: [{
885
+ type: Input
886
+ }], showPageSizeOptions: [{
887
+ type: Input
888
+ }], showRefreshButton: [{
889
+ type: Input
890
+ }], lengthPending: [{
891
+ type: Input
892
+ }], pageEmitter: [{
893
+ type: Output
894
+ }], pageNumberChangeEmitter: [{
895
+ type: Output
896
+ }] } });
897
+
898
+ class AppLoaderComponent {
899
+ constructor() {
900
+ }
901
+ }
902
+ AppLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
903
+ AppLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AppLoaderComponent, selector: "app-loader", ngImport: i0, template: "<div class=\"overlay\">\n <mat-progress-spinner\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"70\"\n strokeWidth=\"3\"></mat-progress-spinner>\n</div>\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}.mat-progress-spinner circle,.mat-spinner circle{stroke:#000!important}\n"], dependencies: [{ kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None });
904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, decorators: [{
905
+ type: Component,
906
+ args: [{ selector: 'app-loader', encapsulation: ViewEncapsulation.None, template: "<div class=\"overlay\">\n <mat-progress-spinner\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"70\"\n strokeWidth=\"3\"></mat-progress-spinner>\n</div>\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}.mat-progress-spinner circle,.mat-spinner circle{stroke:#000!important}\n"] }]
907
+ }], ctorParameters: function () { return []; } });
908
+
909
+ var EntityChangeType;
910
+ (function (EntityChangeType) {
911
+ EntityChangeType["added"] = "added";
912
+ EntityChangeType["updated"] = "updated";
913
+ EntityChangeType["existing"] = "existing";
914
+ EntityChangeType["removed"] = "removed";
915
+ EntityChangeType["unassociated"] = "unassociated";
916
+ })(EntityChangeType || (EntityChangeType = {}));
917
+ var DnRangeType;
918
+ (function (DnRangeType) {
919
+ DnRangeType["extension"] = "EXTENSION";
920
+ DnRangeType["cpg"] = "CPG";
921
+ DnRangeType["callpark"] = "CALLPARK";
922
+ DnRangeType["huntgroup"] = "HUNTGROUP";
923
+ DnRangeType["meetme"] = "MEETME";
924
+ DnRangeType["did"] = "DID";
925
+ })(DnRangeType || (DnRangeType = {}));
926
+
927
+ class DnsService {
928
+ constructor(apiService, apiWebexService) {
929
+ this.apiService = apiService;
930
+ this.apiWebexService = apiWebexService;
931
+ this.availableNumbers = {};
932
+ this.phoneNumbers = [];
933
+ }
934
+ getNumberRange(siteId, routePartition, withdids, from, pageSize) {
935
+ var _a;
936
+ // @ts-ignore
937
+ if ((_a = this.availableNumbers[routePartition]) === null || _a === void 0 ? void 0 : _a.length) {
938
+ return new Observable(observer => {
939
+ // @ts-ignore
940
+ observer.next(this.availableNumbers[routePartition]);
941
+ });
942
+ }
943
+ this.availableDidPatternsMappedToDn = {};
944
+ pageSize = pageSize ? pageSize : 20;
945
+ const params = { dntype: DnRangeType.extension, routepartition: routePartition, size: pageSize, page: 0 };
946
+ if (withdids) {
947
+ // @ts-ignore
948
+ params['withdids'] = 'true';
949
+ }
950
+ if (from) {
951
+ // @ts-ignore
952
+ params['from'] = from;
953
+ }
954
+ // @ts-ignore
955
+ this.availableNumbers[routePartition] = this.availableNumbers[routePartition] || [];
956
+ return this.apiService.fetch(API.AVAILABLE_DN_IN_RANGES.replace(':siteId', siteId), params)
957
+ .pipe(map((res) => {
958
+ res.availableNumberList.forEach((availableNumber) => {
959
+ this.setAvailableDidMappedToDn(availableNumber);
960
+ // @ts-ignore
961
+ this.availableNumbers[routePartition] = [...this.availableNumbers[routePartition], ...this.getUnwrapNumberRange(availableNumber)];
962
+ });
963
+ }));
964
+ // .pipe(this.handleError(true, false));
965
+ }
966
+ setAvailableDidMappedToDn(availableNumber) {
967
+ if (availableNumber.unUsedNumbersWithDids && availableNumber.unUsedNumbersWithDids.length) {
968
+ availableNumber.unUsedNumbersWithDids.forEach((numberWithDids) => {
969
+ const dn = numberWithDids['unUsedNumber'];
970
+ this.availableDidPatternsMappedToDn[dn] = [{}];
971
+ if (numberWithDids['translationPatternList'] && numberWithDids['translationPatternList'].length > 0) {
972
+ this.availableDidPatternsMappedToDn[dn] = numberWithDids['translationPatternList'];
973
+ this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] = [{}];
974
+ if (numberWithDids['mappedDids'] && numberWithDids['mappedDids'].length > 0) {
975
+ this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] = numberWithDids['mappedDids'];
976
+ }
977
+ }
978
+ this.availableDidPatternsMappedToDn[dn][0]['vm'] = numberWithDids['vm'];
979
+ });
980
+ }
981
+ }
982
+ getUnwrapNumberRange(availableNumber) {
983
+ let unwrapNumberRange = this.unwrapNumberRange(availableNumber.phoneNumberRange.from, availableNumber.phoneNumberRange.to)
984
+ .map((unwrappedNumber) => {
985
+ const dn = availableNumber.phoneNumberRange.prefix + unwrappedNumber;
986
+ let str = dn;
987
+ if (this.availableDidPatternsMappedToDn[dn] && this.availableDidPatternsMappedToDn[dn].length > 0) {
988
+ if (this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] && this.availableDidPatternsMappedToDn[dn][0]['mappedDids'].length > 0) {
989
+ str += ' DID: ' + (this.availableDidPatternsMappedToDn[dn][0]['mappedDids'].length > 1 ? 'multiple' :
990
+ this.availableDidPatternsMappedToDn[dn][0]['mappedDids'][0]);
991
+ }
992
+ if (this.availableDidPatternsMappedToDn[dn][0]['vm']) {
993
+ str += ' In Use - VM';
994
+ }
995
+ }
996
+ return str;
997
+ });
998
+ unwrapNumberRange = unwrapNumberRange.filter((unwrappedNumber) => !availableNumber.usedNumbers.includes(unwrappedNumber));
999
+ return unwrapNumberRange;
1000
+ }
1001
+ unwrapNumberRange(start, end) {
1002
+ const regExp = /(^0+)/;
1003
+ let leadingZeros = '';
1004
+ const matches = start.match(regExp);
1005
+ if (matches) {
1006
+ leadingZeros = matches[1];
1007
+ }
1008
+ const startNumeric = new Big(start);
1009
+ const endNumeric = new Big(end);
1010
+ // @ts-ignore
1011
+ return Array.from({ length: (endNumeric.minus(startNumeric).plus(new Big(1)).toFixed(0)) }, (v, k) => {
1012
+ const number = String(startNumeric.plus(new Big(k)).toFixed(0));
1013
+ if ((leadingZeros + number).length > start.length) {
1014
+ leadingZeros = leadingZeros.substr(1);
1015
+ }
1016
+ return leadingZeros + number;
1017
+ });
1018
+ }
1019
+ fetchPhoneNumbers(customerId, locationId) {
1020
+ const params = {
1021
+ available: true,
1022
+ numberType: 'NUMBER'
1023
+ };
1024
+ return this.apiWebexService.fetch(API.PHONE_NUMBERS.replace(':customerId', String(customerId)).replace(':locationId', locationId), params)
1025
+ .pipe(map((result) => {
1026
+ if (result === null || result === void 0 ? void 0 : result.length) {
1027
+ this.phoneNumbers = result.map((item) => item.phoneNumber);
1028
+ }
1029
+ return result;
1030
+ }));
1031
+ }
1032
+ }
1033
+ DnsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, deps: [{ token: APIService }, { token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
1034
+ DnsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService });
1035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, decorators: [{
1036
+ type: Injectable
1037
+ }], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
1038
+
1039
+ class AppLocation {
1040
+ constructor(props) {
1041
+ this.id = '';
1042
+ this.name = '';
1043
+ this.timeZone = '';
1044
+ this.address = new LocationAddress();
1045
+ if (props) {
1046
+ this.id = props.id || '';
1047
+ this.name = props.name || '';
1048
+ this.timeZone = props.timeZone || '';
1049
+ this.address = new LocationAddress(props.address);
1050
+ }
1051
+ }
1052
+ }
1053
+ class LocationAddress {
1054
+ constructor(props) {
1055
+ this.country = '';
1056
+ this.countryName = '';
1057
+ this.state = '';
1058
+ this.city = '';
1059
+ this.postalCode = '';
1060
+ this.address1 = '';
1061
+ this.address2 = '';
1062
+ if (props) {
1063
+ ['country', 'countryName', 'state', 'city', 'postalCode', 'address1', 'address2'].forEach(token => {
1064
+ // @ts-ignore
1065
+ this[token] = props[token] || '';
1066
+ });
1067
+ }
1068
+ }
1069
+ }
1070
+
1071
+ class PrepareMigrationData {
1072
+ constructor(data, originData) {
1073
+ var _a, _b, _c, _d;
1074
+ this.customerId = 0;
1075
+ this.siteId = 0;
1076
+ this.cucmId = 0;
1077
+ this.entityId = '';
1078
+ this.devices = [];
1079
+ this.softDevices = [];
1080
+ this.notSupportedDevices = [];
1081
+ this.primaryExtension = '';
1082
+ this.newExtension = '';
1083
+ this.removeExtension = false;
1084
+ this.primaryPhoneNumber = '';
1085
+ this.newPhoneNumber = '';
1086
+ this.removePhoneNumber = false;
1087
+ this.newLocation = null;
1088
+ this.newLocationName = '';
1089
+ this.phoneNumberWithExtension = [];
1090
+ this.moveType = new MoveType();
1091
+ this.errors = [];
1092
+ this.pending = false;
1093
+ this.isConfirm = false;
1094
+ if (data) {
1095
+ this.customerId = data.customerId;
1096
+ this.siteId = data.siteId;
1097
+ this.cucmId = data.cucmId;
1098
+ this.entityId = data.entityId;
1099
+ this.primaryExtension = data.primaryExtension || '';
1100
+ this.primaryPhoneNumber = data.primaryPhoneNumber || '';
1101
+ this.newLocation = (originData === null || originData === void 0 ? void 0 : originData.newLocation) || new AppLocation(data.newLocation) || this.newLocation;
1102
+ this.errors = data.errors;
1103
+ this.phoneNumberWithExtension = ((_a = data.phoneNumberWithExtension) === null || _a === void 0 ? void 0 : _a.length) ? data.phoneNumberWithExtension.map((item) => new PhoneNumberWithExtension(item)) : [];
1104
+ this.devices = ((_b = data.devices) === null || _b === void 0 ? void 0 : _b.length) ? data.devices.map((deviceData) => new PrepareMigrationDevice(deviceData, true, false, true)) : [];
1105
+ this.softDevices = ((_c = data.softDevices) === null || _c === void 0 ? void 0 : _c.length) ? data.softDevices.map((deviceData) => new PrepareMigrationDevice(deviceData, true, true, true)) : [];
1106
+ this.notSupportedDevices = ((_d = data.notSupportedDevices) === null || _d === void 0 ? void 0 : _d.length) ? data.notSupportedDevices.map((deviceData) => new PrepareMigrationDevice(deviceData, false, true, false)) : [];
1107
+ }
1108
+ if (originData) {
1109
+ this.moveType = originData.moveType;
1110
+ }
1111
+ }
1112
+ eligibleDevicesSize() {
1113
+ return this.devices.length + this.softDevices.length;
1114
+ }
1115
+ getSavableData() {
1116
+ return getSavableData(this, ['pending', 'isConfirm']);
1117
+ }
1118
+ }
1119
+ class PrepareMigrationDevice {
1120
+ constructor(data, toMigrate, isToMigrateDisabled, isEligible) {
1121
+ var _a, _b, _c, _d, _e, _f;
1122
+ this.toMigrate = false;
1123
+ this.isToMigrateDisabled = false;
1124
+ this.isEligible = false;
1125
+ this.name = '';
1126
+ data = Object.assign(Object.assign({}, data.device), data);
1127
+ if (data) {
1128
+ this.id = (_a = data.id) !== null && _a !== void 0 ? _a : null;
1129
+ this.mac = data.mac;
1130
+ this.name = data.name;
1131
+ this.product = data.product;
1132
+ this.model = data.model;
1133
+ this.cisUuid = (_b = data.cisUuid) !== null && _b !== void 0 ? _b : null;
1134
+ this.deviceId = (_c = data.deviceId) !== null && _c !== void 0 ? _c : null;
1135
+ this.personId = (_d = data.personId) !== null && _d !== void 0 ? _d : null;
1136
+ this.workspaceId = (_e = data.workspaceId) !== null && _e !== void 0 ? _e : null;
1137
+ this.locationId = (_f = data.locationId) !== null && _f !== void 0 ? _f : null;
1138
+ }
1139
+ this.toMigrate = toMigrate || this.toMigrate;
1140
+ this.isToMigrateDisabled = isToMigrateDisabled || this.isToMigrateDisabled;
1141
+ this.isEligible = isEligible || this.isEligible;
1142
+ }
1143
+ getSavableData() {
1144
+ const excludedFields = ['toMigrate', 'isToMigrateDisabled'];
1145
+ return getSavableData(this, excludedFields);
1146
+ }
1147
+ }
1148
+ class PhoneNumberWithExtension {
1149
+ constructor(item) {
1150
+ this.extension = '';
1151
+ this.phoneNumber = '';
1152
+ this.extension = item.extension;
1153
+ this.phoneNumber = item.phoneNumber;
1154
+ }
1155
+ getSavableData() {
1156
+ const excludedFields = ['form'];
1157
+ return getSavableData(this, excludedFields);
1158
+ }
1159
+ }
1160
+ class PrepareMigrationBody {
1161
+ constructor(userList, customerId, locationId) {
1162
+ this.customerId = 0;
1163
+ this.locationId = '';
1164
+ this.customerId = customerId || this.customerId;
1165
+ this.locationId = locationId || this.locationId;
1166
+ this.entities = new PrepareMigrationEntity(userList.cucmId, userList.userid);
1167
+ }
1168
+ getSavableData() {
1169
+ return getSavableData(this);
1170
+ }
1171
+ }
1172
+ class PrepareMigrationEntity {
1173
+ constructor(cucmId, entityId) {
1174
+ this.PERSON = [];
1175
+ this.PERSON.push(new PersonMigrationEntity(cucmId, entityId));
1176
+ }
1177
+ getSavableData() {
1178
+ const excludedFields = ['form'];
1179
+ return getSavableData(this, excludedFields);
1180
+ }
1181
+ }
1182
+ class PersonMigrationEntity {
1183
+ constructor(cucmId, entityId) {
1184
+ this.entityId = '';
1185
+ this.cucmId = cucmId;
1186
+ this.entityId = entityId || this.entityId;
1187
+ }
1188
+ getSavableData() {
1189
+ const excludedFields = ['form'];
1190
+ return getSavableData(this, excludedFields);
1191
+ }
1192
+ }
1193
+ class MigrationData {
1194
+ constructor(data) {
1195
+ var _a;
1196
+ this.customerId = 0;
1197
+ this.siteId = 0;
1198
+ this.cucmId = 0;
1199
+ this.entityId = '';
1200
+ this.primaryExtension = '';
1201
+ this.primaryPhoneNumber = '';
1202
+ this.devices = [];
1203
+ this.phoneNumberWithExtension = [];
1204
+ this.customerId = data.customerId;
1205
+ this.siteId = data.siteId;
1206
+ this.cucmId = data.cucmId;
1207
+ this.entityId = data.entityId;
1208
+ if (data.newExtension) {
1209
+ this.primaryExtension = data.newExtension;
1210
+ }
1211
+ else if (data.removeExtension) {
1212
+ this.primaryExtension = null;
1213
+ }
1214
+ else {
1215
+ this.primaryExtension = data.primaryExtension;
1216
+ }
1217
+ if (data.newPhoneNumber) {
1218
+ this.primaryPhoneNumber = data.newPhoneNumber;
1219
+ }
1220
+ else if (data.removePhoneNumber) {
1221
+ this.primaryPhoneNumber = null;
1222
+ }
1223
+ else {
1224
+ this.primaryPhoneNumber = data.primaryPhoneNumber;
1225
+ }
1226
+ this.phoneNumberWithExtension = data.phoneNumberWithExtension;
1227
+ if ((_a = data.devices) === null || _a === void 0 ? void 0 : _a.length) {
1228
+ data.devices.map(device => {
1229
+ if (device.toMigrate && device.mac) {
1230
+ this.devices.push(device.mac);
1231
+ }
1232
+ });
1233
+ }
1234
+ }
1235
+ getSavableData() {
1236
+ const excludedFields = ['form'];
1237
+ return getSavableData(this, excludedFields);
1238
+ }
1239
+ }
1240
+ class MoveType {
1241
+ constructor(data) {
1242
+ this.phoneNumber = '1';
1243
+ this.extension = '1';
1244
+ if (data) {
1245
+ this.phoneNumber = data.phoneNumber;
1246
+ this.extension = data.extension;
1247
+ }
1248
+ }
1249
+ }
1250
+
1251
+ class SiteSettingsService {
1252
+ constructor(apiWebexService) {
1253
+ this.apiWebexService = apiWebexService;
1254
+ this.locations = [];
1255
+ }
1256
+ getLocations(customerId) {
1257
+ return this.apiWebexService.fetch(API.GET_LOCATIONS.replace(':customerId', String(customerId)), {})
1258
+ .pipe(map((result) => {
1259
+ if (result && result.length) {
1260
+ this.locations = result.map((location) => new AppLocation(location));
1261
+ }
1262
+ return result;
1263
+ }));
1264
+ }
1265
+ }
1266
+ SiteSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SiteSettingsService, deps: [{ token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
1267
+ SiteSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SiteSettingsService });
1268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SiteSettingsService, decorators: [{
1269
+ type: Injectable
1270
+ }], ctorParameters: function () { return [{ type: ApiWebexService }]; } });
1271
+
1272
+ class MoveUserService {
1273
+ constructor(apiService, apiWebexService) {
1274
+ this.apiService = apiService;
1275
+ this.apiWebexService = apiWebexService;
1276
+ }
1277
+ resetMigrationDataForNewLocation() {
1278
+ this.prepareMigrationData.newExtension = '';
1279
+ this.prepareMigrationData.newPhoneNumber = '';
1280
+ this.prepareMigrationData.newExtension = '';
1281
+ }
1282
+ setOriginPrepareMigrationData() {
1283
+ const data = JSON.parse(JSON.stringify(this.prepareMigrationData.getSavableData()));
1284
+ this.originPrepareMigrationData = new PrepareMigrationData(data);
1285
+ }
1286
+ fetchPrepareMigrationData(data) {
1287
+ return this.apiWebexService.post(API.PREPARE_PERSON_MIGRATION, data.getSavableData())
1288
+ .pipe(map((result) => {
1289
+ if (result) {
1290
+ this.prepareMigrationData = new PrepareMigrationData(result, this.originPrepareMigrationData);
1291
+ }
1292
+ return result;
1293
+ }));
1294
+ // .pipe(this.handleError(false, true));
1295
+ }
1296
+ startMigration(data) {
1297
+ /* return new Observable<boolean>(observer => {
1298
+ setTimeout(() => {
1299
+ observer.next(true);
1300
+
1301
+ }, 2000);
1302
+ });*/
1303
+ return this.apiWebexService.post(API.START_MIGRATION, data.getSavableData())
1304
+ .pipe(map((result) => {
1305
+ if (data) {
1306
+ this.prepareMigrationData = new PrepareMigrationData(data);
1307
+ }
1308
+ }));
1309
+ // .pipe(this.handleError(false, true));
1310
+ }
1311
+ }
1312
+ MoveUserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserService, deps: [{ token: APIService }, { token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
1313
+ MoveUserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserService });
1314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserService, decorators: [{
1315
+ type: Injectable
1316
+ }], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
1317
+
1318
+ class DeviceMoveUserWizardComponent {
1319
+ get moveUserPending() {
1320
+ return this.userService.moveUserPending;
1321
+ }
1322
+ get locations() {
1323
+ return this.siteSettingsService.locations;
1324
+ }
1325
+ constructor(dnsService, userService, siteSettingsService) {
1326
+ this.dnsService = dnsService;
1327
+ this.userService = userService;
1328
+ this.siteSettingsService = siteSettingsService;
1329
+ }
1330
+ ngOnInit() {
1331
+ }
1332
+ onMigrateDeviceChecked(event) {
1333
+ }
1334
+ resetMoveTypePhoneNUmber() {
1335
+ this.dnsService.phoneNumbers = [];
1336
+ }
1337
+ }
1338
+ DeviceMoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceMoveUserWizardComponent, deps: [{ token: DnsService }, { token: UserService }, { token: SiteSettingsService }], target: i0.ɵɵFactoryTarget.Component });
1339
+ DeviceMoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceMoveUserWizardComponent, selector: "app-device-move-user-wizard", inputs: { device: "device" }, ngImport: i0, template: "<form>\n <div class=\"device-item-panel-container\">\n <div class=\"device-left\">\n <div\n class=\"device-migration-status\"\n [ngClass]=\"{'--checked': device.toMigrate}\"\n >\n <mat-checkbox\n class=\"rounded\"\n [checked]=\"device.toMigrate\"\n ></mat-checkbox>\n </div>\n </div>\n <div class=\"device-right\">\n <div class=\"device-header\">\n <div class=\"device-name\">{{ device.name }}</div>\n <div class=\"device-migrate\" *ngIf=\"device.isEligible\">\n <mat-checkbox name=\"toMigrate\"\n [(ngModel)]=\"device.toMigrate\"\n >Migrate this device</mat-checkbox>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"device-info\">\n <div *ngIf=\"device.product\" class=\"device-info__item\">\n <div class=\"key\">Device type</div>\n <div class=\"value\">{{ device.product }}</div>\n </div>\n <div *ngIf=\"device.mac\" class=\"device-info__item\">\n <div class=\"key\">MAC address</div>\n <div class=\"value\">{{ device.mac }}</div>\n </div>\n\n </div>\n </div>\n </div>\n</form>\n", styles: [".device-item-panel-container{display:flex;border:1px solid gray;border-radius:.5rem;margin-bottom:1.5rem;overflow:hidden}.device-migration-status{height:100%;padding:1rem;box-sizing:border-box;background-color:#ffebc2}.device-right{width:100%;display:flex;flex-direction:column;justify-content:space-between;padding:1rem 2rem}.device-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 7px;gap:1rem}.device-header .device-name{font-size:18px;font-weight:700}.device-header .device-migrate{font-weight:700}.device-header .device-migrate .mat-checkbox ::ng-deep .mat-checkbox-label{margin-left:.4rem}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-info{display:grid;grid-template-columns:auto auto;gap:2.5rem}.device-info__item{font-size:16px;font-weight:700}.device-info__item .key{margin:10px 0 0}.device-info__item .value{color:#a0a0a0}.--checked{background-color:#cef5eb}.mat-checkbox ::ng-deep .mat-checkbox-inner-container{width:20px;height:20px}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#185e46}::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .rounded{pointer-events:none}::ng-deep .rounded .mat-checkbox-background,::ng-deep .rounded .mat-checkbox-frame{border-radius:50%!important}::ng-deep .mat-divider{display:block;margin:0;border-top-width:2px;border-top-style:solid}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
1340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceMoveUserWizardComponent, decorators: [{
1341
+ type: Component,
1342
+ args: [{ selector: 'app-device-move-user-wizard', template: "<form>\n <div class=\"device-item-panel-container\">\n <div class=\"device-left\">\n <div\n class=\"device-migration-status\"\n [ngClass]=\"{'--checked': device.toMigrate}\"\n >\n <mat-checkbox\n class=\"rounded\"\n [checked]=\"device.toMigrate\"\n ></mat-checkbox>\n </div>\n </div>\n <div class=\"device-right\">\n <div class=\"device-header\">\n <div class=\"device-name\">{{ device.name }}</div>\n <div class=\"device-migrate\" *ngIf=\"device.isEligible\">\n <mat-checkbox name=\"toMigrate\"\n [(ngModel)]=\"device.toMigrate\"\n >Migrate this device</mat-checkbox>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"device-info\">\n <div *ngIf=\"device.product\" class=\"device-info__item\">\n <div class=\"key\">Device type</div>\n <div class=\"value\">{{ device.product }}</div>\n </div>\n <div *ngIf=\"device.mac\" class=\"device-info__item\">\n <div class=\"key\">MAC address</div>\n <div class=\"value\">{{ device.mac }}</div>\n </div>\n\n </div>\n </div>\n </div>\n</form>\n", styles: [".device-item-panel-container{display:flex;border:1px solid gray;border-radius:.5rem;margin-bottom:1.5rem;overflow:hidden}.device-migration-status{height:100%;padding:1rem;box-sizing:border-box;background-color:#ffebc2}.device-right{width:100%;display:flex;flex-direction:column;justify-content:space-between;padding:1rem 2rem}.device-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 7px;gap:1rem}.device-header .device-name{font-size:18px;font-weight:700}.device-header .device-migrate{font-weight:700}.device-header .device-migrate .mat-checkbox ::ng-deep .mat-checkbox-label{margin-left:.4rem}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-info{display:grid;grid-template-columns:auto auto;gap:2.5rem}.device-info__item{font-size:16px;font-weight:700}.device-info__item .key{margin:10px 0 0}.device-info__item .value{color:#a0a0a0}.--checked{background-color:#cef5eb}.mat-checkbox ::ng-deep .mat-checkbox-inner-container{width:20px;height:20px}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#185e46}::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .rounded{pointer-events:none}::ng-deep .rounded .mat-checkbox-background,::ng-deep .rounded .mat-checkbox-frame{border-radius:50%!important}::ng-deep .mat-divider{display:block;margin:0;border-top-width:2px;border-top-style:solid}\n"] }]
1343
+ }], ctorParameters: function () { return [{ type: DnsService }, { type: UserService }, { type: SiteSettingsService }]; }, propDecorators: { device: [{
1344
+ type: Input
1345
+ }] } });
1346
+
1347
+ class DevicesMoveUserWizardTabComponent {
1348
+ get prepareMigrationData() {
1349
+ return this.moveUserService.prepareMigrationData;
1350
+ }
1351
+ constructor(moveUserService) {
1352
+ this.moveUserService = moveUserService;
1353
+ }
1354
+ ngOnInit() {
1355
+ }
1356
+ }
1357
+ DevicesMoveUserWizardTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DevicesMoveUserWizardTabComponent, deps: [{ token: MoveUserService }], target: i0.ɵɵFactoryTarget.Component });
1358
+ DevicesMoveUserWizardTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DevicesMoveUserWizardTabComponent, selector: "app-devices-move-user-tab", ngImport: i0, template: "<div *ngIf=\"prepareMigrationData.eligibleDevicesSize\"\n class=\"devices-move-user-box eligible-devices-section\" >\n <div class=\"section-title\">Eligible devices ({{ prepareMigrationData.eligibleDevicesSize() }})</div>\n <div class=\"section-content\">\n <div *ngIf=\"prepareMigrationData.devices?.length\" class=\"device-group\">\n <div class=\"group-title\">IP Phones</div>\n <ng-container *ngFor=\"let device of prepareMigrationData.devices\">\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\n </ng-container>\n </div>\n\n <div *ngIf=\"prepareMigrationData.softDevices?.length\" class=\"device-group\">\n <div class=\"group-title\">Soft Devices</div>\n <ng-container *ngFor=\"let device of prepareMigrationData.softDevices\">\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\n </ng-container>\n </div>\n </div>\n</div>\n<mat-divider *ngIf=\"prepareMigrationData.notSupportedDevices.length\"></mat-divider>\n<div *ngIf=\"prepareMigrationData.notSupportedDevices.length\" class=\"ineligible-devices-section\">\n <div class=\"section-title\">Ineligible devices ({{ prepareMigrationData.notSupportedDevices.length }})</div>\n <div class=\"section-content\">\n <div class=\"device-group\">\n <ng-container *ngFor=\"let device of prepareMigrationData.notSupportedDevices\">\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\n </ng-container>\n </div>\n </div>\n</div>\n\n", styles: [".eligible-devices-section,.ineligible-devices-section{display:flex;padding:1.5rem}.eligible-devices-section .section-title,.ineligible-devices-section .section-title{font-size:18px;font-weight:700;padding:0 .5rem;width:300px}.eligible-devices-section .section-content,.ineligible-devices-section .section-content{width:100%}.group-title{font-size:18px;font-weight:700;margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DeviceMoveUserWizardComponent, selector: "app-device-move-user-wizard", inputs: ["device"] }] });
1359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DevicesMoveUserWizardTabComponent, decorators: [{
1360
+ type: Component,
1361
+ args: [{ selector: 'app-devices-move-user-tab', template: "<div *ngIf=\"prepareMigrationData.eligibleDevicesSize\"\n class=\"devices-move-user-box eligible-devices-section\" >\n <div class=\"section-title\">Eligible devices ({{ prepareMigrationData.eligibleDevicesSize() }})</div>\n <div class=\"section-content\">\n <div *ngIf=\"prepareMigrationData.devices?.length\" class=\"device-group\">\n <div class=\"group-title\">IP Phones</div>\n <ng-container *ngFor=\"let device of prepareMigrationData.devices\">\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\n </ng-container>\n </div>\n\n <div *ngIf=\"prepareMigrationData.softDevices?.length\" class=\"device-group\">\n <div class=\"group-title\">Soft Devices</div>\n <ng-container *ngFor=\"let device of prepareMigrationData.softDevices\">\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\n </ng-container>\n </div>\n </div>\n</div>\n<mat-divider *ngIf=\"prepareMigrationData.notSupportedDevices.length\"></mat-divider>\n<div *ngIf=\"prepareMigrationData.notSupportedDevices.length\" class=\"ineligible-devices-section\">\n <div class=\"section-title\">Ineligible devices ({{ prepareMigrationData.notSupportedDevices.length }})</div>\n <div class=\"section-content\">\n <div class=\"device-group\">\n <ng-container *ngFor=\"let device of prepareMigrationData.notSupportedDevices\">\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\n </ng-container>\n </div>\n </div>\n</div>\n\n", styles: [".eligible-devices-section,.ineligible-devices-section{display:flex;padding:1.5rem}.eligible-devices-section .section-title,.ineligible-devices-section .section-title{font-size:18px;font-weight:700;padding:0 .5rem;width:300px}.eligible-devices-section .section-content,.ineligible-devices-section .section-content{width:100%}.group-title{font-size:18px;font-weight:700;margin-bottom:1rem}\n"] }]
1362
+ }], ctorParameters: function () { return [{ type: MoveUserService }]; } });
1363
+
1364
+ // for test only
1365
+ const LOCATION = 'Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzE2YjY0NjljLTBjZmQtNDJjMS1iOWJjLTUyN2FlZTNhN2RlOQ';
1366
+ class MoveUserStepperComponent {
1367
+ get moveUserPending() {
1368
+ return this.userService.moveUserPending;
1369
+ }
1370
+ get currentNumber() {
1371
+ var _a, _b, _c;
1372
+ if (((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.devices) === null || _b === void 0 ? void 0 : _b.length) && ((_c = this.user.devices[0]) === null || _c === void 0 ? void 0 : _c.lineAssociations) && this.user.devices[0].lineAssociations[0]) {
1373
+ return this.user.devices[0].lineAssociations[0].directoryNumber.directoryNumber;
1374
+ }
1375
+ return '';
1376
+ }
1377
+ get locations() {
1378
+ return this.siteSettingsService.locations;
1379
+ }
1380
+ get prepareMigrationData() {
1381
+ return this.moveUserService.prepareMigrationData;
1382
+ }
1383
+ constructor(dnsService, userService, siteSettingsService, notificationService, moveUserService) {
1384
+ this.dnsService = dnsService;
1385
+ this.userService = userService;
1386
+ this.siteSettingsService = siteSettingsService;
1387
+ this.notificationService = notificationService;
1388
+ this.moveUserService = moveUserService;
1389
+ this.done = new EventEmitter();
1390
+ this.runMoveUser = new EventEmitter();
1391
+ this.cancel = new EventEmitter();
1392
+ this.isLinear = false;
1393
+ this.phoneNumberPending = false;
1394
+ this.filteredLocations = [];
1395
+ this.dataPending = false;
1396
+ }
1397
+ ngOnInit() {
1398
+ this.moveUserService.prepareMigrationData = new PrepareMigrationData();
1399
+ this.getData();
1400
+ }
1401
+ displayLocation(location) {
1402
+ return (location === null || location === void 0 ? void 0 : location.name) || '';
1403
+ }
1404
+ onLocationAutocomplete(event) {
1405
+ var _a;
1406
+ const value = event.target.value;
1407
+ if ((_a = this.locations) === null || _a === void 0 ? void 0 : _a.length) {
1408
+ this.filteredLocations = filterOptions(this.locations, value || '', '', 'name');
1409
+ }
1410
+ }
1411
+ onNumberAutocomplete() {
1412
+ var _a;
1413
+ if ((_a = this.dnsService.phoneNumbers) === null || _a === void 0 ? void 0 : _a.length) {
1414
+ this.filteredPhoneNumbers = filterOptions(this.dnsService.phoneNumbers, this.prepareMigrationData.newPhoneNumber);
1415
+ }
1416
+ }
1417
+ onMoveUser(stepper) {
1418
+ this.stepper = stepper;
1419
+ this.runMoveUser.emit();
1420
+ }
1421
+ onStepChange(event) {
1422
+ }
1423
+ selectPhoneNumberMigrationType(event) {
1424
+ if (event.value && event.value === '2') {
1425
+ this.getPhoneNumbers();
1426
+ }
1427
+ this.moveUserService.prepareMigrationData.removePhoneNumber = event.value && event.value === '3';
1428
+ }
1429
+ selectExtensionMigrationType(event) {
1430
+ this.moveUserService.prepareMigrationData.removeExtension = event.value && event.value === '3';
1431
+ }
1432
+ onPhoneNumberChange(event) {
1433
+ console.log('new phone number = ', this.prepareMigrationData.newPhoneNumber);
1434
+ }
1435
+ onLocationChange(event) {
1436
+ this.moveUserService.prepareMigrationData.newLocation = event.option.value;
1437
+ this.moveUserService.resetMigrationDataForNewLocation();
1438
+ if (this.prepareMigrationData.moveType.phoneNumber === '2') {
1439
+ this.getPhoneNumbers();
1440
+ }
1441
+ this.getPrepareUserData();
1442
+ }
1443
+ onExtensionChange(event) {
1444
+ console.log('new newExtension = ', this.prepareMigrationData.newExtension);
1445
+ }
1446
+ getPhoneNumbers() {
1447
+ var _a;
1448
+ if (!((_a = this.prepareMigrationData.newLocation) === null || _a === void 0 ? void 0 : _a.id)) {
1449
+ return;
1450
+ }
1451
+ this.phoneNumberPending = true;
1452
+ this.dnsService.fetchPhoneNumbers(this.customerId, this.prepareMigrationData.newLocation.id)
1453
+ .subscribe(() => {
1454
+ this.phoneNumberPending = false;
1455
+ this.filteredPhoneNumbers = this.dnsService.phoneNumbers.slice();
1456
+ }, () => this.phoneNumberPending = false);
1457
+ }
1458
+ isNextFromSelectLocationDisabled() {
1459
+ var _a, _b;
1460
+ if (!((_b = (_a = this.prepareMigrationData) === null || _a === void 0 ? void 0 : _a.newLocation) === null || _b === void 0 ? void 0 : _b.id) || !this.prepareMigrationData.entityId) {
1461
+ return true;
1462
+ }
1463
+ if (this.prepareMigrationData.moveType.phoneNumber === '2' && !this.prepareMigrationData.newPhoneNumber) {
1464
+ return true;
1465
+ }
1466
+ if (this.prepareMigrationData.moveType.extension === '2' && !this.prepareMigrationData.newExtension) {
1467
+ return true;
1468
+ }
1469
+ return false;
1470
+ }
1471
+ goNextStep(stepper) {
1472
+ }
1473
+ startMigration() {
1474
+ const migrationData = new MigrationData(this.prepareMigrationData);
1475
+ this.dataPending = true;
1476
+ this.moveUserService.startMigration(migrationData)
1477
+ .subscribe((result) => {
1478
+ this.dataPending = false;
1479
+ if (this.stepper) {
1480
+ this.stepper.next();
1481
+ }
1482
+ }, () => {
1483
+ this.dataPending = false;
1484
+ });
1485
+ }
1486
+ getData() {
1487
+ if (!this.user) {
1488
+ return;
1489
+ }
1490
+ this.dataPending = true;
1491
+ this.siteSettingsService.getLocations(this.customerId)
1492
+ .subscribe(() => {
1493
+ var _a;
1494
+ if ((_a = this.locations) === null || _a === void 0 ? void 0 : _a.length) {
1495
+ this.filteredLocations = this.locations.slice();
1496
+ }
1497
+ this.dataPending = false;
1498
+ }, () => this.dataPending = false);
1499
+ }
1500
+ getPrepareUserData() {
1501
+ var _a, _b;
1502
+ if ((_b = (_a = this.prepareMigrationData) === null || _a === void 0 ? void 0 : _a.newLocation) === null || _b === void 0 ? void 0 : _b.id) {
1503
+ this.moveUserService.setOriginPrepareMigrationData();
1504
+ const prepareMigrationBody = new PrepareMigrationBody(this.user, this.customerId, this.prepareMigrationData.newLocation.id);
1505
+ this.moveUserService.prepareMigrationData.pending = true;
1506
+ this.moveUserService.fetchPrepareMigrationData(prepareMigrationBody)
1507
+ .subscribe(() => {
1508
+ }, () => {
1509
+ this.moveUserService.prepareMigrationData.pending = false;
1510
+ this.notificationService.error('Move user attempt is failed');
1511
+ });
1512
+ }
1513
+ }
1514
+ resetMoveTypePhoneNUmber() {
1515
+ this.dnsService.phoneNumbers = [];
1516
+ }
1517
+ }
1518
+ MoveUserStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, deps: [{ token: DnsService }, { token: UserService }, { token: SiteSettingsService }, { token: NotificationService }, { token: MoveUserService }], target: i0.ɵɵFactoryTarget.Component });
1519
+ MoveUserStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: { user: "user", customerId: "customerId" }, outputs: { done: "done", runMoveUser: "runMoveUser", cancel: "cancel" }, viewQueries: [{ propertyName: "nextAfterMoveBtn", first: true, predicate: ["nextAfterMoveBtn"], descendants: true }, { propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], ngImport: i0, template: "<app-loader *ngIf=\"prepareMigrationData.pending || moveUserPending || dataPending\"></app-loader>\r\n<div id=\"move-user-stepper\">\r\n <mat-stepper *ngIf=\"prepareMigrationData?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <form>\r\n <div class=\"move-user-tab-content-box\">\r\n <mat-label class=\"mat-label\">Select a new location</mat-label>\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select location\" [matAutocomplete]=\"auto\" matInput\r\n (input)=\"onLocationAutocomplete($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayLocation\"\r\n (optionSelected)=\"onLocationChange($event)\">\r\n <mat-option *ngFor=\"let location of filteredLocations\" [value]=\"location\">\r\n {{ location.name }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!dataPending && !locations?.length\" class=\"mat-error\">\r\n Locations are not available\r\n </div>\r\n\r\n <ng-container *ngIf=\"prepareMigrationData?.newLocation?.id\">\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypePhoneNumber\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.phoneNumber\" name=\"phoneNumber\"\r\n (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current number\r\n {{ prepareMigrationData.primaryPhoneNumber || currentNumber }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\"\r\n [disabled]=\"!prepareMigrationData.newLocation?.id\">\r\n Select a new number\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\" class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"70\" strokeWidth=\"3\"></mat-progress-spinner>\r\n\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select number\" [(ngModel)]=\"prepareMigrationData.newPhoneNumber\"\r\n [matAutocomplete]=\"autoPh\" matInput name=\"newPhoneNumber\"\r\n (input)=\"onNumberAutocomplete()\"/>\r\n <mat-autocomplete #autoPh=\"matAutocomplete\" (optionSelected)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let number of filteredPhoneNumbers\" [value]=\"number\">\r\n {{ number }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!phoneNumberPending && !dnsService.phoneNumbers?.length\" class=\"mat-error\">\r\n Phone numbers are not available for this location\r\n </div>\r\n </div>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removeExtension\">\r\n Remove number\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypeExtension\"\r\n (change)=\"selectExtensionMigrationType($event)\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.extension\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current extension {{ prepareMigrationData.primaryExtension }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\">\r\n Select a new extension\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.extension === '2'\" class=\"input-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n name=\"newExtension\"\r\n (change)=\"onExtensionChange($event)\"\r\n [(ngModel)]=\"prepareMigrationData.newExtension\"\r\n [placeholder]=\"'Enter extension'\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removePhoneNumber\">Remove extension\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n </div>\r\n </form>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext\r\n [disabled]=\"isNextFromSelectLocationDisabled()\" (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <div class=\"move-user-tab-content-box\">\r\n <app-devices-move-user-tab></app-devices-move-user-tab>\r\n </div>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Validation</mat-label>\r\n <div *ngIf=\"!prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationSuccess\">\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationFailed\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext\r\n (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\"\r\n [disabled]=\"prepareMigrationData && prepareMigrationData.errors && prepareMigrationData.errors.length > 0 || !prepareMigrationData.isConfirm\"\r\n (click)=\"startMigration()\">\r\n Upgrade\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location {{prepareMigrationData.newLocation?.name}}\r\n <br/>\r\n For the progress of move, please visit the\r\n <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </div>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">\r\n Done\r\n </button>\r\n </div>\r\n </mat-step>\r\n </mat-stepper>\r\n</div>\r\n\r\n<ng-template #validationSuccess>\r\n <p class=\"validation-text\">\r\n Validation has completed successfully. The user can be moved to the\r\n new location. Please be aware of the potential impact of the changes\r\n below.\r\n </p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Cisco 6941 device (SEP987987987987) will not be migrated</li>\r\n <li>\r\n The user will be removed from the Call Pickup Group:\r\n 1675090334-Paris_pickup\r\n </li>\r\n <li>\r\n If Webex App is currently in use, the user will to sign in again to\r\n update the service.\r\n </li>\r\n </ul>\r\n <form>\r\n <mat-checkbox class=\"checkbox\" name=\"isConfirm\" [(ngModel)]=\"prepareMigrationData.isConfirm\"\r\n color=\"primary\">\r\n I confirm that I understand these conditions. I acknowledge the\r\n changes.\r\n </mat-checkbox>\r\n </form>\r\n\r\n</ng-template>\r\n\r\n<ng-template #validationFailed>\r\n <p class=\"validation-text\">\r\n Validation is failed. User migration is not available\r\n </p>\r\n <ul>\r\n <li *ngFor=\"let error of prepareMigrationData.errors\">{{ error }}</li>\r\n </ul>\r\n</ng-template>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}::ng-deep .mat-form-field-infix{padding:0!important;width:100%}::ng-deep .mat-form-field-appearance-outline .mat-input-element{height:35px;width:100%;line-height:35px;margin:5px 0 0}::ng-deep .mat-form-field{width:350px}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}.devices-move-user-box{background-color:#fff;padding:2.5rem;padding:1rem 2.5rem;min-height:350px;border-radius:.5rem}.user-select-location-box{background-color:#fff;padding:2.5rem;height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative;width:100%;max-width:300px}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}.mat-error{margin:0 0 15px}mat-label{display:block}.btn-next{min-width:80px}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}.move-user-tab-content-box{background-color:#fff;min-height:350px;border-radius:.5rem;box-sizing:border-box;padding:25px}.input-container{display:flex;flex-direction:column;gap:1rem}.input-container input{height:-moz-fit-content!important;height:fit-content!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i12.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i14.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i14.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i14.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i14.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i16.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i16.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: DevicesMoveUserWizardTabComponent, selector: "app-devices-move-user-tab" }], encapsulation: i0.ViewEncapsulation.None });
1520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, decorators: [{
1521
+ type: Component,
1522
+ args: [{ selector: 'app-move-user-stepper', encapsulation: ViewEncapsulation.None, template: "<app-loader *ngIf=\"prepareMigrationData.pending || moveUserPending || dataPending\"></app-loader>\r\n<div id=\"move-user-stepper\">\r\n <mat-stepper *ngIf=\"prepareMigrationData?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <form>\r\n <div class=\"move-user-tab-content-box\">\r\n <mat-label class=\"mat-label\">Select a new location</mat-label>\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select location\" [matAutocomplete]=\"auto\" matInput\r\n (input)=\"onLocationAutocomplete($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayLocation\"\r\n (optionSelected)=\"onLocationChange($event)\">\r\n <mat-option *ngFor=\"let location of filteredLocations\" [value]=\"location\">\r\n {{ location.name }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!dataPending && !locations?.length\" class=\"mat-error\">\r\n Locations are not available\r\n </div>\r\n\r\n <ng-container *ngIf=\"prepareMigrationData?.newLocation?.id\">\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypePhoneNumber\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.phoneNumber\" name=\"phoneNumber\"\r\n (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current number\r\n {{ prepareMigrationData.primaryPhoneNumber || currentNumber }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\"\r\n [disabled]=\"!prepareMigrationData.newLocation?.id\">\r\n Select a new number\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\" class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"70\" strokeWidth=\"3\"></mat-progress-spinner>\r\n\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select number\" [(ngModel)]=\"prepareMigrationData.newPhoneNumber\"\r\n [matAutocomplete]=\"autoPh\" matInput name=\"newPhoneNumber\"\r\n (input)=\"onNumberAutocomplete()\"/>\r\n <mat-autocomplete #autoPh=\"matAutocomplete\" (optionSelected)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let number of filteredPhoneNumbers\" [value]=\"number\">\r\n {{ number }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!phoneNumberPending && !dnsService.phoneNumbers?.length\" class=\"mat-error\">\r\n Phone numbers are not available for this location\r\n </div>\r\n </div>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removeExtension\">\r\n Remove number\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypeExtension\"\r\n (change)=\"selectExtensionMigrationType($event)\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.extension\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current extension {{ prepareMigrationData.primaryExtension }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\">\r\n Select a new extension\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.extension === '2'\" class=\"input-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n name=\"newExtension\"\r\n (change)=\"onExtensionChange($event)\"\r\n [(ngModel)]=\"prepareMigrationData.newExtension\"\r\n [placeholder]=\"'Enter extension'\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removePhoneNumber\">Remove extension\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n </div>\r\n </form>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext\r\n [disabled]=\"isNextFromSelectLocationDisabled()\" (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <div class=\"move-user-tab-content-box\">\r\n <app-devices-move-user-tab></app-devices-move-user-tab>\r\n </div>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Validation</mat-label>\r\n <div *ngIf=\"!prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationSuccess\">\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationFailed\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext\r\n (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\"\r\n [disabled]=\"prepareMigrationData && prepareMigrationData.errors && prepareMigrationData.errors.length > 0 || !prepareMigrationData.isConfirm\"\r\n (click)=\"startMigration()\">\r\n Upgrade\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location {{prepareMigrationData.newLocation?.name}}\r\n <br/>\r\n For the progress of move, please visit the\r\n <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </div>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">\r\n Done\r\n </button>\r\n </div>\r\n </mat-step>\r\n </mat-stepper>\r\n</div>\r\n\r\n<ng-template #validationSuccess>\r\n <p class=\"validation-text\">\r\n Validation has completed successfully. The user can be moved to the\r\n new location. Please be aware of the potential impact of the changes\r\n below.\r\n </p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Cisco 6941 device (SEP987987987987) will not be migrated</li>\r\n <li>\r\n The user will be removed from the Call Pickup Group:\r\n 1675090334-Paris_pickup\r\n </li>\r\n <li>\r\n If Webex App is currently in use, the user will to sign in again to\r\n update the service.\r\n </li>\r\n </ul>\r\n <form>\r\n <mat-checkbox class=\"checkbox\" name=\"isConfirm\" [(ngModel)]=\"prepareMigrationData.isConfirm\"\r\n color=\"primary\">\r\n I confirm that I understand these conditions. I acknowledge the\r\n changes.\r\n </mat-checkbox>\r\n </form>\r\n\r\n</ng-template>\r\n\r\n<ng-template #validationFailed>\r\n <p class=\"validation-text\">\r\n Validation is failed. User migration is not available\r\n </p>\r\n <ul>\r\n <li *ngFor=\"let error of prepareMigrationData.errors\">{{ error }}</li>\r\n </ul>\r\n</ng-template>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}::ng-deep .mat-form-field-infix{padding:0!important;width:100%}::ng-deep .mat-form-field-appearance-outline .mat-input-element{height:35px;width:100%;line-height:35px;margin:5px 0 0}::ng-deep .mat-form-field{width:350px}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}.devices-move-user-box{background-color:#fff;padding:2.5rem;padding:1rem 2.5rem;min-height:350px;border-radius:.5rem}.user-select-location-box{background-color:#fff;padding:2.5rem;height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative;width:100%;max-width:300px}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}.mat-error{margin:0 0 15px}mat-label{display:block}.btn-next{min-width:80px}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}.move-user-tab-content-box{background-color:#fff;min-height:350px;border-radius:.5rem;box-sizing:border-box;padding:25px}.input-container{display:flex;flex-direction:column;gap:1rem}.input-container input{height:-moz-fit-content!important;height:fit-content!important}\n"] }]
1523
+ }], ctorParameters: function () { return [{ type: DnsService }, { type: UserService }, { type: SiteSettingsService }, { type: NotificationService }, { type: MoveUserService }]; }, propDecorators: { nextAfterMoveBtn: [{
1524
+ type: ViewChild,
1525
+ args: ['nextAfterMoveBtn']
1526
+ }], stepper: [{
1527
+ type: ViewChild,
1528
+ args: ['stepper']
1529
+ }], done: [{
1530
+ type: Output
1531
+ }], user: [{
1532
+ type: Input
1533
+ }], customerId: [{
1534
+ type: Input
1535
+ }], runMoveUser: [{
1536
+ type: Output
1537
+ }], cancel: [{
1538
+ type: Output
1539
+ }] } });
1540
+
1541
+ class MoveUserWizardComponent {
1542
+ constructor(dnsService) {
1543
+ this.dnsService = dnsService;
1544
+ this.closeMoveUserWizard = new EventEmitter();
1545
+ this.done = new EventEmitter();
1546
+ this.runMoveUser = new EventEmitter();
1547
+ this.dataPending = false;
1548
+ }
1549
+ onClose() {
1550
+ this.closeMoveUserWizard.emit();
1551
+ }
1552
+ onRunMoveUser() {
1553
+ this.runMoveUser.emit();
1554
+ }
1555
+ }
1556
+ MoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, deps: [{ token: DnsService }], target: i0.ɵɵFactoryTarget.Component });
1557
+ MoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: { user: "user", customerId: "customerId" }, outputs: { closeMoveUserWizard: "closeMoveUserWizard", done: "done", runMoveUser: "runMoveUser" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Upgrade User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%3C%2Fsvg%3E\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\")}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: ["user", "customerId"], outputs: ["done", "runMoveUser", "cancel"] }] });
1558
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, decorators: [{
1559
+ type: Component,
1560
+ args: [{ selector: 'app-move-user-wizard', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Upgrade User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%3C%2Fsvg%3E\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\")}\n"] }]
1561
+ }], ctorParameters: function () { return [{ type: DnsService }]; }, propDecorators: { user: [{
1562
+ type: Input
1563
+ }], customerId: [{
1564
+ type: Input
1565
+ }], closeMoveUserWizard: [{
1566
+ type: Output
1567
+ }], done: [{
1568
+ type: Output
1569
+ }], runMoveUser: [{
1570
+ type: Output
1571
+ }] } });
1572
+
1573
+ class TableToolbarComponent {
1574
+ constructor() {
1575
+ this.searchValue = '';
1576
+ this.selectedUserType = null;
1577
+ this.searchChange = new EventEmitter();
1578
+ this.searchByType = new EventEmitter();
1579
+ this.addUser = new EventEmitter();
1580
+ }
1581
+ onSearchInputChange(event) {
1582
+ const value = event.target.value.trim().toLowerCase() || '';
1583
+ if (this.timerId)
1584
+ window.clearTimeout(this.timerId);
1585
+ this.timerId = window.setTimeout(() => this.searchChange.emit(value), 1500);
1586
+ }
1587
+ onTypeChange(event) {
1588
+ const value = event.target.value;
1589
+ this.searchByType.emit(value);
1590
+ }
1591
+ onAddUser() {
1592
+ this.addUser.emit();
1593
+ }
1594
+ }
1595
+ TableToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1596
+ TableToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableToolbarComponent, selector: "tk-users-table-toolbar", inputs: { totalUsersCount: "totalUsersCount", searchValue: "searchValue", selectedUserType: "selectedUserType" }, outputs: { searchChange: "searchChange", searchByType: "searchByType", addUser: "addUser" }, ngImport: i0, template: "<header style=\"margin-bottom: 1rem\">\r\n <div\r\n style=\"display: flex; align-items: center; justify-content: space-between\"\r\n >\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px\">\r\n <input\r\n [value]=\"searchValue\"\r\n (input)=\"onSearchInputChange($event)\"\r\n type=\"text\"\r\n placeholder=\"Search by display name, email\"\r\n style=\"\r\n width: 100%;\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 12px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n color: #222;\r\n outline: none;\r\n box-sizing: border-box;\r\n min-width: 280px;\r\n \"\r\n />\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >search</i\r\n >\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Filter Select -->\r\n <div\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n width: fit-content;\r\n min-width: 200px;\r\n \"\r\n >\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >filter_list</i\r\n >\r\n </span>\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Location Select -->\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select\r\n [value]=\"selectedUserType || ''\"\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n (change)=\"onTypeChange($event)\"\r\n >\r\n <option value=\"null\" disabled hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Webex Calling DI</option>\r\n <option value=\"WEBEX\">Webex Calling</option>\r\n <option value=\"ONPREM\">UCM</option>\r\n </select>\r\n <span\r\n style=\"\r\n margin-left: 8px;\r\n color: #757575;\r\n font-size: 1rem;\r\n white-space: nowrap;\r\n \"\r\n >{{ totalUsersCount }} users</span\r\n >\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">Add user</button>\r\n </div>\r\n </div>\r\n</header>\r\n", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"], dependencies: [{ kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
1597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableToolbarComponent, decorators: [{
1598
+ type: Component,
1599
+ args: [{ selector: 'tk-users-table-toolbar', template: "<header style=\"margin-bottom: 1rem\">\r\n <div\r\n style=\"display: flex; align-items: center; justify-content: space-between\"\r\n >\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px\">\r\n <input\r\n [value]=\"searchValue\"\r\n (input)=\"onSearchInputChange($event)\"\r\n type=\"text\"\r\n placeholder=\"Search by display name, email\"\r\n style=\"\r\n width: 100%;\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 12px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n color: #222;\r\n outline: none;\r\n box-sizing: border-box;\r\n min-width: 280px;\r\n \"\r\n />\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >search</i\r\n >\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Filter Select -->\r\n <div\r\n style=\"\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n width: fit-content;\r\n min-width: 200px;\r\n \"\r\n >\r\n <span\r\n style=\"\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #757575;\r\n font-size: 18px;\r\n font-weight: normal;\r\n pointer-events: none;\r\n \"\r\n >\r\n <i\r\n class=\"material-icons\"\r\n style=\"font-size: 18px; font-weight: normal\"\r\n >filter_list</i\r\n >\r\n </span>\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 44px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem\">or</span>\r\n <!-- Location Select -->\r\n <select\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n >\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select\r\n [value]=\"selectedUserType || ''\"\r\n style=\"\r\n height: 34px;\r\n border-radius: 0.5rem;\r\n font-size: 16px;\r\n padding: 6px 32px 6px 12px;\r\n border: 1px solid #00000080;\r\n background: #fff;\r\n min-width: 200px;\r\n width: fit-content;\r\n color: #222;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n background-image: url(&quot;data:image/svg+xml;utf8,<svg fill='%23757575' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>&quot;);\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n background-size: 20px 20px;\r\n \"\r\n (change)=\"onTypeChange($event)\"\r\n >\r\n <option value=\"null\" disabled hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Webex Calling DI</option>\r\n <option value=\"WEBEX\">Webex Calling</option>\r\n <option value=\"ONPREM\">UCM</option>\r\n </select>\r\n <span\r\n style=\"\r\n margin-left: 8px;\r\n color: #757575;\r\n font-size: 1rem;\r\n white-space: nowrap;\r\n \"\r\n >{{ totalUsersCount }} users</span\r\n >\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">Add user</button>\r\n </div>\r\n </div>\r\n</header>\r\n", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"] }]
1600
+ }], propDecorators: { totalUsersCount: [{
1601
+ type: Input
1602
+ }], searchValue: [{
1603
+ type: Input
1604
+ }], selectedUserType: [{
1605
+ type: Input
1606
+ }], searchChange: [{
1607
+ type: Output
1608
+ }], searchByType: [{
1609
+ type: Output
1610
+ }], addUser: [{
1611
+ type: Output
1612
+ }] } });
1613
+
1614
+ class NotificationsComponent {
1615
+ constructor(notificationService, ref) {
1616
+ this.notificationService = notificationService;
1617
+ this.ref = ref;
1618
+ }
1619
+ ngOnInit() {
1620
+ this.listChangeSubscribe();
1621
+ }
1622
+ ngOnDestroy() {
1623
+ this.listSubscription.unsubscribe();
1624
+ }
1625
+ readMore() {
1626
+ this.isReadMore = !this.isReadMore;
1627
+ }
1628
+ removeNotification(notification) {
1629
+ this.notificationService.remove(notification);
1630
+ }
1631
+ listChangeSubscribe() {
1632
+ this.listSubscription = this.notificationService.listChange
1633
+ .subscribe((list) => {
1634
+ this.list = list;
1635
+ this.ref.detectChanges();
1636
+ });
1637
+ }
1638
+ }
1639
+ NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationsComponent, deps: [{ token: NotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1640
+ NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NotificationsComponent, selector: "app-notification", ngImport: i0, template: "<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\n <div\n class=\"notification\"\n *ngFor=\"let notification of list\"\n [ngClass]=\"{\n error: notification.isError(),\n success: notification.isSuccess(),\n }\"\n >\n <div class=\"flex-box\">\n <div class=\"notification-icons-block\">\n <i\n *ngIf=\"notification.isError()\"\n class=\"fa fa-exclamation-triangle\"\n ></i>\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\n </div>\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n <div *ngIf=\"isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n </div>\n <div\n class=\"read-more-error link clickable\"\n *ngIf=\"notification.message && notification.message.length > 93\"\n (click)=\"readMore()\"\n >\n {{ isReadMore ? \"Collapse\" : \"Read more\" }}\n </div>\n <button\n class=\"close\"\n mat-icon-button\n matTooltip=\"Close notification\"\n (click)=\"removeNotification(notification)\"\n >\n <img\n class=\"notification-icon-close\"\n src=\"assets/icons/close_icon_modal.svg\"\n alt=\"\"\n />\n </button>\n </div>\n</div>\n", styles: [".notification-block{position:absolute;top:96px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px;width:360px;pointer-events:none}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 14px 12px;color:#333;border-radius:8px;border:1px solid #e5e1cd;background:#fcf8e3;box-shadow:0 10px 24px #091e4229;width:100%;position:relative;pointer-events:auto}.notification-block .notification .notification-icons-block{width:28px;min-width:28px;display:flex;justify-content:center;align-items:flex-start;padding-top:2px}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,sans-serif!important;word-break:break-word;line-height:1.4;flex:1}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#ffe9e9;border-color:#e16d6d}.notification-block .notification.success{background:#e3f4dc;border-color:#b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:6px;right:6px;width:28px;height:28px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{right:12px;left:12px;width:auto}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1641
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationsComponent, decorators: [{
1642
+ type: Component,
1643
+ args: [{ selector: 'app-notification', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\n <div\n class=\"notification\"\n *ngFor=\"let notification of list\"\n [ngClass]=\"{\n error: notification.isError(),\n success: notification.isSuccess(),\n }\"\n >\n <div class=\"flex-box\">\n <div class=\"notification-icons-block\">\n <i\n *ngIf=\"notification.isError()\"\n class=\"fa fa-exclamation-triangle\"\n ></i>\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\n </div>\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n <div *ngIf=\"isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n </div>\n <div\n class=\"read-more-error link clickable\"\n *ngIf=\"notification.message && notification.message.length > 93\"\n (click)=\"readMore()\"\n >\n {{ isReadMore ? \"Collapse\" : \"Read more\" }}\n </div>\n <button\n class=\"close\"\n mat-icon-button\n matTooltip=\"Close notification\"\n (click)=\"removeNotification(notification)\"\n >\n <img\n class=\"notification-icon-close\"\n src=\"assets/icons/close_icon_modal.svg\"\n alt=\"\"\n />\n </button>\n </div>\n</div>\n", styles: [".notification-block{position:absolute;top:96px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px;width:360px;pointer-events:none}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 14px 12px;color:#333;border-radius:8px;border:1px solid #e5e1cd;background:#fcf8e3;box-shadow:0 10px 24px #091e4229;width:100%;position:relative;pointer-events:auto}.notification-block .notification .notification-icons-block{width:28px;min-width:28px;display:flex;justify-content:center;align-items:flex-start;padding-top:2px}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,sans-serif!important;word-break:break-word;line-height:1.4;flex:1}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#ffe9e9;border-color:#e16d6d}.notification-block .notification.success{background:#e3f4dc;border-color:#b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:6px;right:6px;width:28px;height:28px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{right:12px;left:12px;width:auto}}\n"] }]
1644
+ }], ctorParameters: function () { return [{ type: NotificationService }, { type: i0.ChangeDetectorRef }]; } });
1645
+
1646
+ const DISPLAYED_COLS = [
1647
+ 'name',
1648
+ 'email',
1649
+ 'status',
1650
+ 'last-active-time',
1651
+ 'role',
1652
+ 'source',
1653
+ 'actions',
1654
+ ];
1655
+ const LOCAL_STORAGE = {
1656
+ USER_IN_MIGRATION: 'userIdInMigration',
1657
+ MIGRATION_FORM_ID: 'migrationFormId',
1658
+ };
1659
+ class UsersListComponent {
1660
+ getTodayShortDate() {
1661
+ const now = new Date();
1662
+ const month = now.getMonth() + 1;
1663
+ const day = now.getDate();
1664
+ const year = now.getFullYear() % 100;
1665
+ return `${month}/${day}/${year.toString().padStart(2, '0')}`;
1666
+ }
1667
+ isMigrationStatusCompleted(status) {
1668
+ const normalized = (status || '').toUpperCase();
1669
+ return normalized === 'COMPLETED';
1670
+ }
1671
+ isMigrationStatusCompletedWithErrors(status) {
1672
+ const normalized = (status || '').toUpperCase();
1673
+ return normalized === 'COMPLETED_WITH_ERRORS';
1674
+ }
1675
+ refreshUsersAfterOperation(delayMs = 0) {
1676
+ if (delayMs > 0) {
1677
+ window.setTimeout(() => this.getMigratedUsers(), delayMs);
1678
+ return;
1679
+ }
1680
+ this.getMigratedUsers();
1681
+ }
1682
+ handleCompletedWithErrorsByUserId(userId) {
1683
+ const index = this.getUserIndexById(userId);
1684
+ this.removeUserInMigrationProgress();
1685
+ if (index > -1) {
1686
+ this.setStatusToUser(index, 'Completed with errors');
1687
+ window.setTimeout(() => this.setStatusToUser(index, 'Inactive'), 5000);
1688
+ this.refreshUsersAfterOperation(5000);
1689
+ }
1690
+ }
1691
+ isMigrationStatusFailed(status) {
1692
+ const normalized = (status || '').toUpperCase();
1693
+ return normalized === 'FAILED' || normalized === 'ERROR';
1694
+ }
1695
+ get form() {
1696
+ var _a, _b;
1697
+ return (_b = (_a = this.userService) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.form;
1698
+ }
1699
+ constructor(userService, apiService, apiWebexService, notifications, usersSearchService, dialog) {
1700
+ this.userService = userService;
1701
+ this.apiService = apiService;
1702
+ this.apiWebexService = apiWebexService;
1703
+ this.notifications = notifications;
1704
+ this.usersSearchService = usersSearchService;
1705
+ this.dialog = dialog;
1706
+ this.openUser = new EventEmitter();
1707
+ this.userMoved = new EventEmitter();
1708
+ this.switchToWizard = new EventEmitter();
1709
+ this.createUserRequested = new EventEmitter();
1710
+ this.baseUsers = [];
1711
+ this.displayedColumns = DISPLAYED_COLS;
1712
+ this.showMoveUserWizard = false;
1713
+ this.moveUserPending = false;
1714
+ this.subscriptions = [];
1715
+ this.activeSearchToken = '';
1716
+ this.activeUserType = null;
1717
+ this.ON_PREM_ID = ON_PREM_ID;
1718
+ this.totalUsersCount = 0;
1719
+ this.destroy$ = new Subject();
1720
+ }
1721
+ ngOnInit() {
1722
+ this.usersSearchService.setDefaultValues();
1723
+ this.usersSearchService.customerId = this.customerId;
1724
+ this.usersSearchService.siteId = this.siteId;
1725
+ this.apiService.token = this.token;
1726
+ this.apiWebexService.token = this.token;
1727
+ this.apiService.apiUrl = this.host + '/dcp';
1728
+ this.apiWebexService.apiUrl = this.host + '/webex';
1729
+ /*this.usersSearchService.getUsersUpgradeStatus(this.usersSearchService.customerId)
1730
+ .pipe(takeUntil(this.destroy$))
1731
+ .subscribe();*/
1732
+ this.getMigratedUsers();
1733
+ const subscription = this.usersSearchService.foundUsers$
1734
+ .pipe(takeUntil(this.destroy$))
1735
+ .subscribe((users) => {
1736
+ var _a;
1737
+ if ((_a = this.usersSearchService.usersUpgradeStatus) === null || _a === void 0 ? void 0 : _a.length) {
1738
+ this.initializeDataSource(users);
1739
+ }
1740
+ else {
1741
+ this.subscribeToUpgradeUsersStatus(users);
1742
+ }
1743
+ });
1744
+ this.subscriptions.push(subscription);
1745
+ console.log('users list paris 7773');
1746
+ }
1747
+ ngOnDestroy() {
1748
+ var _a;
1749
+ this.usersSearchService.usersUpgradeStatus = null;
1750
+ if ((_a = this.subscriptions) === null || _a === void 0 ? void 0 : _a.length) {
1751
+ this.subscriptions.forEach((subscription) => subscription.unsubscribe());
1752
+ }
1753
+ this.destroy$.next();
1754
+ this.destroy$.complete();
1755
+ }
1756
+ pageNumberChangeEvent(perPageNumber) {
1757
+ this.usersSearchService.pageSize = perPageNumber;
1758
+ this.usersSearchService.pageIndex = 0;
1759
+ this.runSearch();
1760
+ }
1761
+ closeMoveUserWizard(afterUserMove) {
1762
+ this.moveUser = null;
1763
+ this.moveUserIndex = null;
1764
+ localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
1765
+ localStorage.removeItem(LOCAL_STORAGE.MIGRATION_FORM_ID);
1766
+ this.showMoveUserWizard = false;
1767
+ this.switchToWizard.emit(false);
1768
+ if (afterUserMove) {
1769
+ this.getMigratedUsers();
1770
+ }
1771
+ }
1772
+ pageEvent(event) {
1773
+ this.usersSearchService.pageSize = event.pageSize;
1774
+ this.usersSearchService.pageIndex = event.pageIndex;
1775
+ this.runSearch();
1776
+ }
1777
+ onUserClick(user) {
1778
+ localStorage.setItem('isWebex', String(!!user.webexUUID));
1779
+ localStorage.setItem('webexUUID', 'null');
1780
+ if (user.webexUUID) {
1781
+ localStorage.setItem('webexUUID', String(user.webexUUID));
1782
+ }
1783
+ this.openUser.emit(user);
1784
+ }
1785
+ moveUserToMT(user) {
1786
+ if (user && user.siteId && user.userid) {
1787
+ this.moveUserPending = true;
1788
+ this.moveInProgressUserId = user.userid;
1789
+ const currentIndex = this.getUserIndexById(user.userid);
1790
+ if (currentIndex > -1) {
1791
+ this.setStatusToUser(currentIndex, 'In Progress');
1792
+ }
1793
+ localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
1794
+ const subscription = this.userService
1795
+ .moveUserToMT(this.customerId, user)
1796
+ .subscribe((formId) => {
1797
+ this.moveUser = null;
1798
+ this.moveUserIndex = null;
1799
+ if (formId) {
1800
+ localStorage.setItem(LOCAL_STORAGE.MIGRATION_FORM_ID, String(formId));
1801
+ this.pollMigrationFormStatusByUserId(formId, user.userid, () => {
1802
+ this.notifications.success(`${user.userid} successfully upgraded`);
1803
+ this.getMigratedUsers();
1804
+ });
1805
+ }
1806
+ else {
1807
+ this.notifications.success(`${user.userid} successfully upgraded`);
1808
+ this.getMigratedUsers();
1809
+ }
1810
+ }, () => {
1811
+ this.removeUserInMigrationProgress();
1812
+ this.setStatusToUser(this.getUserIndexById(user.userid), 'Migration Error');
1813
+ this.refreshUsersAfterOperation();
1814
+ });
1815
+ this.subscriptions.push(subscription);
1816
+ }
1817
+ }
1818
+ moveUserToDI(user, index) {
1819
+ if (user && user.siteId && user.webexUUID) {
1820
+ this.moveUserPending = true;
1821
+ this.moveInProgressUserId = user.userid;
1822
+ this.users[index].status = 'In Progress';
1823
+ localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
1824
+ const subscription = this.userService
1825
+ .moveUserToDI(this.customerId, user)
1826
+ .subscribe(() => {
1827
+ this.removeUserInMigrationProgress();
1828
+ this.setStatusToUser(index, 'Active');
1829
+ this.users[index].webexUUID = '';
1830
+ if (this.usersSearchService.migratedUsers &&
1831
+ this.usersSearchService.migratedUsers.length) {
1832
+ this.usersSearchService.migratedUsers =
1833
+ this.usersSearchService.migratedUsers.filter((migratedUser) => migratedUser.userid !== user.email);
1834
+ }
1835
+ this.getMigratedUsers();
1836
+ }, () => {
1837
+ this.removeUserInMigrationProgress();
1838
+ this.setStatusToUser(index, 'Migration Error');
1839
+ this.refreshUsersAfterOperation();
1840
+ });
1841
+ this.subscriptions.push(subscription);
1842
+ }
1843
+ }
1844
+ removeUserInMigrationProgress() {
1845
+ localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
1846
+ localStorage.removeItem(LOCAL_STORAGE.MIGRATION_FORM_ID);
1847
+ this.moveInProgressUserId = '';
1848
+ this.moveUserPending = false;
1849
+ }
1850
+ setStatusToUser(index, status) {
1851
+ if (this.users && this.users[index]) {
1852
+ this.users[index].status = status;
1853
+ // if (status === 'Migrated') {
1854
+ // this.users[index].roleName = '';
1855
+ // this.users[index].isMigrated = true;
1856
+ // this.users[index].status = status;
1857
+ // } else {
1858
+ // this.users[index].roleName = 'Dedicated Instance Calling user';
1859
+ // this.users[index].isMigrated = false;
1860
+ // this.users[index].status = status;
1861
+ // }
1862
+ }
1863
+ this.dataSource = new MatTableDataSource(this.users);
1864
+ }
1865
+ initializeDataSource(users) {
1866
+ var _a;
1867
+ const safeUsers = Array.isArray(users) ? users : [];
1868
+ // this.setRandomUserRole(users);
1869
+ this.baseUsers = safeUsers;
1870
+ this.users = safeUsers;
1871
+ // set total rows count for toolbar/pagination from server-side pagination when available
1872
+ this.totalUsersCount = ((_a = this.usersSearchService) === null || _a === void 0 ? void 0 : _a.total) || safeUsers.length;
1873
+ this.setUserMigrationProgress();
1874
+ this.usersSearchService.setMigratedPropToUsers(this.users);
1875
+ // this.usersSearchService.setUpgradeStatusToUsers(this.users, this.usersSearchService.usersUpgradeStatus);
1876
+ this.dataSource = new MatTableDataSource(this.users);
1877
+ this.applyActiveFilter();
1878
+ }
1879
+ setUserRole() {
1880
+ var _a;
1881
+ if ((_a = this.users) === null || _a === void 0 ? void 0 : _a.length) {
1882
+ this.users.forEach((user) => {
1883
+ if (!user.isMigrated) {
1884
+ user.roleName = 'Dedicated Instance Calling user';
1885
+ }
1886
+ });
1887
+ }
1888
+ }
1889
+ setRandomUserRole(users) {
1890
+ const max = Math.round(this.usersSearchService.pageSize - this.usersSearchService.pageSize / 4);
1891
+ const min = Math.round(this.usersSearchService.pageSize / 2);
1892
+ const randomAmount = Math.round(Math.random() * (max - min) + min);
1893
+ const indexes = this.getArrayOfRandomUserIndexes(randomAmount);
1894
+ indexes.forEach((index) => {
1895
+ if (users[index]) {
1896
+ users[index].roleName = 'Dedicated Instance Calling user';
1897
+ }
1898
+ });
1899
+ }
1900
+ getArrayOfRandomUserIndexes(randomAmount) {
1901
+ const indexes = [];
1902
+ while (randomAmount > 0) {
1903
+ const index = Math.round(Math.random() * (this.usersSearchService.pageSize - 1));
1904
+ indexes.push(index);
1905
+ randomAmount--;
1906
+ }
1907
+ return indexes;
1908
+ }
1909
+ runSearch() {
1910
+ this.dataPending = true;
1911
+ this.usersSearchService.quickRegularUsersSearch().subscribe(() => {
1912
+ this.dataPending = false;
1913
+ }, () => {
1914
+ this.dataPending = false;
1915
+ this.notifications.error('The data can not be received');
1916
+ });
1917
+ }
1918
+ setUserMigrationProgress() {
1919
+ const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
1920
+ const migrationFormId = localStorage.getItem(LOCAL_STORAGE.MIGRATION_FORM_ID);
1921
+ if (userIdInMigration) {
1922
+ const index = this.users.findIndex((user) => user.userid === userIdInMigration);
1923
+ this.moveInProgressUserId = index > -1 ? this.users[index].userid : '';
1924
+ this.moveUserPending = index > -1;
1925
+ if (index > -1) {
1926
+ this.setStatusToUser(index, 'In Progress');
1927
+ }
1928
+ if (migrationFormId) {
1929
+ this.pollMigrationFormStatus(Number(migrationFormId), index, () => this.getMigratedUsers());
1930
+ }
1931
+ }
1932
+ }
1933
+ getMigratedUsers() {
1934
+ this.dataPending = true;
1935
+ const searchParams = {
1936
+ customerid: this.customerId,
1937
+ siteid: this.siteId,
1938
+ 'cloud-only': 'true',
1939
+ };
1940
+ // this.usersSearchService.quickWebexUsersSearch(searchParams, true, MAX_INTEGER)
1941
+ this.usersSearchService
1942
+ .getMigratedUsers(this.customerId)
1943
+ // this.usersSearchService.getMigratedWebexUsers(this.customerId)
1944
+ .subscribe(() => {
1945
+ const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
1946
+ if (userIdInMigration &&
1947
+ this.usersSearchService.migratedUsers.filter((migratedUser) => migratedUser.userid === userIdInMigration)) {
1948
+ localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
1949
+ localStorage.removeItem(LOCAL_STORAGE.MIGRATION_FORM_ID);
1950
+ }
1951
+ this.runSearch();
1952
+ }, () => {
1953
+ this.dataPending = false;
1954
+ this.notifications.error('The data can not be received');
1955
+ });
1956
+ }
1957
+ onMoveUser(user, index, type, title) {
1958
+ const dialogRef = this.dialog.open(UserListConfirmDialogComponent, {
1959
+ data: {
1960
+ title: `Upgrade user ${user.userid} to Multi Tenant?`,
1961
+ message: `<p>Upgrading this user will prepare the account for migration to Multi Tenant.</p>
1962
+ <p>During this process, the user configuration will be copied to the Multi Tenant environment.
1963
+ The user will remain active on the current system until the Activate step is completed.</p>
1964
+ <p>Do you want to continue?</p>`,
1965
+ confirmButtonText: 'Yes, upgrade',
1966
+ },
1967
+ });
1968
+ dialogRef.beforeClosed().subscribe((result) => {
1969
+ if (result) {
1970
+ switch (type) {
1971
+ case 'QuickMove':
1972
+ this.moveUserToMT(user);
1973
+ break;
1974
+ case 'MT':
1975
+ this.moveUser = user;
1976
+ this.moveUserIndex = index;
1977
+ this.showMoveUserWizard = true;
1978
+ this.switchToWizard.emit(true);
1979
+ break;
1980
+ case 'DI':
1981
+ this.moveUserToDI(user, index);
1982
+ break;
1983
+ }
1984
+ }
1985
+ });
1986
+ }
1987
+ runMoveUserToMT() {
1988
+ if (this.moveUser && this.moveUser.siteId && this.moveUser.userid) {
1989
+ this.userService.moveUserPending = true;
1990
+ this.moveInProgressUserId = this.moveUser.userid;
1991
+ this.setStatusToUser(this.moveUserIndex, 'In Progress');
1992
+ localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, this.moveUser.userid);
1993
+ }
1994
+ const subscription = this.userService
1995
+ .moveUserToMT(this.customerId, this.moveUser)
1996
+ .subscribe((formId) => {
1997
+ if (formId) {
1998
+ localStorage.setItem(LOCAL_STORAGE.MIGRATION_FORM_ID, String(formId));
1999
+ this.pollMigrationFormStatus(formId, this.moveUserIndex, () => {
2000
+ this.userService.userMoved$.next(true);
2001
+ });
2002
+ }
2003
+ else {
2004
+ this.userService.userMoved$.next(true);
2005
+ }
2006
+ }, () => {
2007
+ this.removeUserInMigrationProgress();
2008
+ this.setStatusToUser(this.moveUserIndex, 'Migration Error');
2009
+ this.refreshUsersAfterOperation();
2010
+ });
2011
+ this.subscriptions.push(subscription);
2012
+ }
2013
+ searchUsers(token, type) {
2014
+ var _a;
2015
+ const normalizedToken = (token || '').trim();
2016
+ const normalizedType = type || null;
2017
+ // if token is empty — restore current page datasource
2018
+ if (!normalizedToken && !normalizedType) {
2019
+ this.activeSearchToken = '';
2020
+ this.activeUserType = null;
2021
+ this.users = this.baseUsers;
2022
+ this.dataSource = new MatTableDataSource(this.users);
2023
+ this.totalUsersCount = ((_a = this.usersSearchService) === null || _a === void 0 ? void 0 : _a.total) || this.users.length;
2024
+ return;
2025
+ }
2026
+ if (normalizedType) {
2027
+ this.activeUserType = normalizedType;
2028
+ this.activeSearchToken = '';
2029
+ }
2030
+ else {
2031
+ this.activeSearchToken = normalizedToken;
2032
+ this.activeUserType = null;
2033
+ }
2034
+ // fetch all users (server-side) and filter locally across the whole dataset
2035
+ this.dataPending = true;
2036
+ const subscription = this.usersSearchService.getAllRegularUsers()
2037
+ .subscribe((allUsers) => {
2038
+ let filtered;
2039
+ if (normalizedType === null) {
2040
+ filtered = this.filterByToken(allUsers, normalizedToken);
2041
+ }
2042
+ else {
2043
+ filtered = this.filterByType(allUsers, normalizedType);
2044
+ }
2045
+ this.users = filtered;
2046
+ this.dataSource = new MatTableDataSource(this.users);
2047
+ this.totalUsersCount = filtered.length;
2048
+ this.dataPending = false;
2049
+ }, () => {
2050
+ this.dataPending = false;
2051
+ this.notifications.error('The data can not be received');
2052
+ });
2053
+ this.subscriptions.push(subscription);
2054
+ }
2055
+ searchByType(userType) {
2056
+ const normalizedType = userType || null;
2057
+ if (!normalizedType) {
2058
+ this.searchUsers('');
2059
+ return;
2060
+ }
2061
+ this.searchUsers('', normalizedType);
2062
+ }
2063
+ applyActiveFilter() {
2064
+ if (this.activeSearchToken) {
2065
+ this.searchUsers(this.activeSearchToken);
2066
+ return;
2067
+ }
2068
+ if (this.activeUserType) {
2069
+ this.searchUsers('', this.activeUserType);
2070
+ }
2071
+ }
2072
+ onCreateUserRequested() {
2073
+ this.createUserRequested.emit();
2074
+ }
2075
+ filterByToken(users, token) {
2076
+ const tok = (token || '').toLowerCase();
2077
+ const filtered = (users || []).filter((user) => {
2078
+ const firstName = ((user === null || user === void 0 ? void 0 : user.firstName) || '').toLowerCase();
2079
+ const lastName = ((user === null || user === void 0 ? void 0 : user.lastName) || '').toLowerCase();
2080
+ const fullName = `${firstName} ${lastName}`.trim();
2081
+ const email = ((user === null || user === void 0 ? void 0 : user.email) || '').toLowerCase();
2082
+ return (firstName.includes(tok) ||
2083
+ lastName.includes(tok) ||
2084
+ fullName.includes(tok) ||
2085
+ email.includes(tok));
2086
+ });
2087
+ return filtered;
2088
+ }
2089
+ filterByType(users, userType) {
2090
+ let filteredUsers;
2091
+ if (userType === USER_TYPES_MAP.CUCM) {
2092
+ filteredUsers = users.filter((user) => !user.webexUUID && user.cucmId != ON_PREM_ID);
2093
+ }
2094
+ else if (userType === USER_TYPES_MAP.WEBEX) {
2095
+ filteredUsers = users.filter((user) => user.webexUUID !== null && user.webexUUID !== undefined);
2096
+ }
2097
+ else if (userType === USER_TYPES_MAP.ONPREM) {
2098
+ filteredUsers = users.filter((user) => !user.webexUUID && user.cucmId == ON_PREM_ID);
2099
+ }
2100
+ else {
2101
+ filteredUsers = [];
2102
+ }
2103
+ return filteredUsers;
2104
+ }
2105
+ isValidWebexUuid(user) {
2106
+ const value = user === null || user === void 0 ? void 0 : user.webexUUID;
2107
+ return value !== null && value !== undefined && String(value).trim().length > 0;
2108
+ }
2109
+ buildFirmwareDeviceMap(entity, user, cucmIdBySiteId) {
2110
+ var _a, _b, _c;
2111
+ const deviceMap = {};
2112
+ const mappedDevices = this.getActivationDevices(entity, user);
2113
+ console.log(mappedDevices);
2114
+ const devices = [];
2115
+ const siteId = Number((_c = (_b = (_a = entity === null || entity === void 0 ? void 0 : entity.sourceSite) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : user === null || user === void 0 ? void 0 : user.siteId) !== null && _c !== void 0 ? _c : 0);
2116
+ const cucmId = cucmIdBySiteId.get(siteId) || 0;
2117
+ mappedDevices.forEach((rawDevice) => {
2118
+ const device = rawDevice;
2119
+ // @ts-ignore
2120
+ const isEligible = device.isRegistered || device.deviceToUpgrade || device.isEligible;
2121
+ devices.push({
2122
+ userId: user.userid,
2123
+ deviceName: device.name.includes('SEP') ? device.name : 'SEP' + device.name || '',
2124
+ deviceType: device.product || device.model || '',
2125
+ status: isEligible ? 'ELIGIBLE_TO_UPGRADE' : 'UNREGISTERED',
2126
+ errorDescription: '',
2127
+ cucmId,
2128
+ feature: 'PERSON',
2129
+ selectable: true,
2130
+ disabledReason: false ? 'FIRMWARE_UPGRADE.DEVICE_NOT_MIGRATED' : '',
2131
+ });
2132
+ });
2133
+ if (!Object.keys(deviceMap).length) {
2134
+ console.debug('Firmware activation: no usable devices found to build deviceMap.');
2135
+ }
2136
+ devices.forEach((device) => {
2137
+ if (!deviceMap[device.cucmId]) {
2138
+ deviceMap[device.cucmId] = {};
2139
+ }
2140
+ if (!deviceMap[device.cucmId][device.feature]) {
2141
+ deviceMap[device.cucmId][device.feature] = [];
2142
+ }
2143
+ deviceMap[device.cucmId][device.feature].push(device.deviceName);
2144
+ });
2145
+ console.log("dev map ==> ", deviceMap);
2146
+ return deviceMap;
2147
+ }
2148
+ fetchCucmIdBySiteId() {
2149
+ const sitesUrl = API.SITES.replace(':customerId', String(this.customerId));
2150
+ return this.apiService.fetchPagination(sitesUrl, 10000, 0, {}, false).pipe(map$1((sitesRes) => {
2151
+ const sites = (sitesRes === null || sitesRes === void 0 ? void 0 : sitesRes.pageData) || [];
2152
+ const cucmIdBySiteId = new Map();
2153
+ sites.forEach((site) => {
2154
+ var _a;
2155
+ const siteId = Number(site === null || site === void 0 ? void 0 : site.id);
2156
+ const cucmId = Number((_a = site === null || site === void 0 ? void 0 : site.cucm) === null || _a === void 0 ? void 0 : _a.id);
2157
+ if (Number.isFinite(siteId) && Number.isFinite(cucmId)) {
2158
+ cucmIdBySiteId.set(siteId, cucmId);
2159
+ }
2160
+ });
2161
+ return cucmIdBySiteId;
2162
+ }));
2163
+ }
2164
+ getActivationDevices(entity, user) {
2165
+ var _a, _b;
2166
+ const migratedEntityDevices = Array.isArray(entity === null || entity === void 0 ? void 0 : entity.devices)
2167
+ ? ((_a = entity === null || entity === void 0 ? void 0 : entity.devices) !== null && _a !== void 0 ? _a : [])
2168
+ : [];
2169
+ const entityDevices = Array.isArray(entity === null || entity === void 0 ? void 0 : entity.webexMigrationDevices)
2170
+ ? ((_b = entity === null || entity === void 0 ? void 0 : entity.webexMigrationDevices) !== null && _b !== void 0 ? _b : [])
2171
+ : [];
2172
+ const allEntityDevices = [...migratedEntityDevices, ...entityDevices];
2173
+ if (allEntityDevices.length) {
2174
+ return allEntityDevices;
2175
+ }
2176
+ // Fallback for partial responses where only list-user devices are available.
2177
+ return [
2178
+ ...(Array.isArray(user === null || user === void 0 ? void 0 : user.devices) ? user.devices : []),
2179
+ ...(Array.isArray(user === null || user === void 0 ? void 0 : user.deviceProfiles) ? user.deviceProfiles : []),
2180
+ ];
2181
+ }
2182
+ unwrapMigratedDevice(rawDevice) {
2183
+ const candidate = rawDevice;
2184
+ if (candidate === null || candidate === void 0 ? void 0 : candidate.device) {
2185
+ return Object.assign(Object.assign({}, candidate.device), candidate);
2186
+ }
2187
+ return candidate || {};
2188
+ }
2189
+ isMigratedDeviceEligible(device) {
2190
+ const hasEligibilitySignal = (device === null || device === void 0 ? void 0 : device.isRegistered) !== undefined
2191
+ || (device === null || device === void 0 ? void 0 : device.deviceToUpgrade) !== undefined
2192
+ || (device === null || device === void 0 ? void 0 : device.isEligible) !== undefined;
2193
+ if (!hasEligibilitySignal) {
2194
+ return true;
2195
+ }
2196
+ return !!((device === null || device === void 0 ? void 0 : device.isRegistered) || (device === null || device === void 0 ? void 0 : device.deviceToUpgrade) || (device === null || device === void 0 ? void 0 : device.isEligible));
2197
+ }
2198
+ extractCucmId(entity, device, user) {
2199
+ const deviceCucmId = Number(device === null || device === void 0 ? void 0 : device.cucmId);
2200
+ if (Number.isFinite(deviceCucmId) && deviceCucmId > 0) {
2201
+ return deviceCucmId;
2202
+ }
2203
+ const userCucmId = Number(user === null || user === void 0 ? void 0 : user.cucmId);
2204
+ if (Number.isFinite(userCucmId)) {
2205
+ return userCucmId;
2206
+ }
2207
+ const entityCucmId = Number(entity === null || entity === void 0 ? void 0 : entity.cucmId);
2208
+ if (Number.isFinite(entityCucmId)) {
2209
+ return entityCucmId;
2210
+ }
2211
+ return null;
2212
+ }
2213
+ resolveMigratedDeviceKey(device) {
2214
+ return String((device === null || device === void 0 ? void 0 : device.name) ||
2215
+ (device === null || device === void 0 ? void 0 : device.mac) ||
2216
+ (device === null || device === void 0 ? void 0 : device.deviceId) ||
2217
+ (device === null || device === void 0 ? void 0 : device.cisUuid) ||
2218
+ (device === null || device === void 0 ? void 0 : device.id) ||
2219
+ '').trim();
2220
+ }
2221
+ extractMigratedDeviceLines(device) {
2222
+ const values = new Set();
2223
+ const lineAssociations = Array.isArray(device === null || device === void 0 ? void 0 : device.lineAssociations) ? device.lineAssociations : [];
2224
+ lineAssociations.forEach((lineAssociation) => {
2225
+ var _a, _b;
2226
+ const directoryNumber = (_a = lineAssociation === null || lineAssociation === void 0 ? void 0 : lineAssociation.directoryNumber) === null || _a === void 0 ? void 0 : _a.directoryNumber;
2227
+ const templateDirectoryNumber = (_b = lineAssociation === null || lineAssociation === void 0 ? void 0 : lineAssociation.directoryNumber) === null || _b === void 0 ? void 0 : _b.templateDirectoryNumber;
2228
+ const e164Mask = lineAssociation === null || lineAssociation === void 0 ? void 0 : lineAssociation.e164Mask;
2229
+ [directoryNumber, templateDirectoryNumber, e164Mask].forEach((value) => {
2230
+ const normalized = String(value || '').trim();
2231
+ if (normalized) {
2232
+ values.add(normalized);
2233
+ }
2234
+ });
2235
+ });
2236
+ const lines = Array.isArray(device === null || device === void 0 ? void 0 : device.lines) ? device.lines : [];
2237
+ lines.forEach((line) => {
2238
+ var _a, _b;
2239
+ const directoryNumber = (_a = line === null || line === void 0 ? void 0 : line.directoryNumber) === null || _a === void 0 ? void 0 : _a.directoryNumber;
2240
+ const templateDirectoryNumber = (_b = line === null || line === void 0 ? void 0 : line.directoryNumber) === null || _b === void 0 ? void 0 : _b.templateDirectoryNumber;
2241
+ [directoryNumber, templateDirectoryNumber].forEach((value) => {
2242
+ const normalized = String(value || '').trim();
2243
+ if (normalized) {
2244
+ values.add(normalized);
2245
+ }
2246
+ });
2247
+ });
2248
+ return Array.from(values);
2249
+ }
2250
+ onFirmwareUpgradeClicked(user) {
2251
+ if (!this.isValidWebexUuid(user) || user.status !== 'Inactive') {
2252
+ return;
2253
+ }
2254
+ const dialogRef = this.dialog.open(UserListConfirmDialogComponent, {
2255
+ data: {
2256
+ title: `Activate user ${user.userid} on Multi Tenant?`,
2257
+ message: `<p>Activating this user will perform the cutover to Multi Tenant and complete the migration process.</p>
2258
+ <p>After activation, the user will become active on Multi Tenant and the original user will become inactive.</p>
2259
+ <p>Do you want to continue?</p>`,
2260
+ confirmButtonText: 'Activate',
2261
+ },
2262
+ });
2263
+ dialogRef.beforeClosed().subscribe((result) => {
2264
+ if (result) {
2265
+ this.setUserPendingStatus(user, 'Pending Activation');
2266
+ this.userService
2267
+ .getMigratedMigrationFormEntities(this.customerId, user.webexUUID || '', 'PERSON')
2268
+ .pipe(takeUntil(this.destroy$), map$1((entities) => {
2269
+ return Array.isArray(entities) ? entities[0] : entities || null;
2270
+ }), switchMap((entity) => {
2271
+ var _a, _b;
2272
+ const formId = (_b = (_a = entity === null || entity === void 0 ? void 0 : entity.migrationFormId) !== null && _a !== void 0 ? _a : entity === null || entity === void 0 ? void 0 : entity.id) !== null && _b !== void 0 ? _b : null;
2273
+ if (!formId) {
2274
+ this.setUserPendingStatus(user, 'Inactive');
2275
+ this.notifications.error('Activation failed. Migration form not found.');
2276
+ return EMPTY;
2277
+ }
2278
+ return this.fetchCucmIdBySiteId().pipe(map$1((cucmIdBySiteId) => ({
2279
+ formId,
2280
+ deviceMap: this.buildFirmwareDeviceMap(entity, user, cucmIdBySiteId)
2281
+ })));
2282
+ }), switchMap(({ formId, deviceMap }) => {
2283
+ console.log('device map ==> ', deviceMap);
2284
+ return this.userService
2285
+ .triggerFirmwareUpgrade(this.customerId, Number(formId), deviceMap)
2286
+ .pipe(map$1(() => formId));
2287
+ }))
2288
+ .subscribe({
2289
+ next: (formId) => {
2290
+ this.pollMigrationFormStatusByUserId(formId, user.userid, () => {
2291
+ this.setUserPendingStatus(user, 'Active');
2292
+ this.setOriginalUserStatus(user.email, 'Inactive');
2293
+ // this.notifications.success(`${user.userid} successfully activated`);
2294
+ this.refreshUsersAfterOperation();
2295
+ });
2296
+ },
2297
+ error: () => {
2298
+ this.setUserPendingStatus(user, 'Inactive');
2299
+ this.notifications.error('Activation failed. Please try again.');
2300
+ this.refreshUsersAfterOperation();
2301
+ }
2302
+ });
2303
+ }
2304
+ });
2305
+ }
2306
+ onRevertClicked(user) {
2307
+ if (user === null || user === void 0 ? void 0 : user.webexUUID) {
2308
+ this.setUserPendingStatus(user, 'Pending Deactivation');
2309
+ this.userService.revertMigration(this.customerId, user.webexUUID)
2310
+ .pipe(takeUntil(this.destroy$), switchMap(() => timer(2000)))
2311
+ .subscribe({
2312
+ next: () => {
2313
+ this.setUserPendingStatus(user, 'Inactive');
2314
+ this.setOriginalUserStatus(user.email, 'Active');
2315
+ // this.notifications.success(`${user.userid} successfully deactivated`);
2316
+ this.refreshUsersAfterOperation();
2317
+ },
2318
+ error: () => {
2319
+ this.setUserPendingStatus(user, 'Active');
2320
+ this.refreshUsersAfterOperation();
2321
+ }
2322
+ });
2323
+ }
2324
+ }
2325
+ setUserPendingStatus(user, status) {
2326
+ user.status = status;
2327
+ }
2328
+ pollMigrationFormStatus(formId, index, onCompleted) {
2329
+ const subscription = timer(0, 5000)
2330
+ .pipe(switchMap(() => this.userService.getMigrationFormStatus(this.customerId, formId)), takeUntil(this.destroy$), takeWhile((response) => {
2331
+ const status = response === null || response === void 0 ? void 0 : response.status;
2332
+ return !this.isMigrationStatusCompleted(status)
2333
+ && !this.isMigrationStatusFailed(status)
2334
+ && !this.isMigrationStatusCompletedWithErrors(status);
2335
+ }, true))
2336
+ .subscribe({
2337
+ next: (response) => {
2338
+ var _a, _b;
2339
+ const status = response === null || response === void 0 ? void 0 : response.status;
2340
+ const userId = ((_b = (_a = this.users) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.userid) || '';
2341
+ if (this.isMigrationStatusCompletedWithErrors(status) && userId) {
2342
+ this.handleCompletedWithErrorsByUserId(userId);
2343
+ return;
2344
+ }
2345
+ if (this.isMigrationStatusFailed(status)) {
2346
+ this.removeUserInMigrationProgress();
2347
+ this.setStatusToUser(index, 'Migration Error');
2348
+ this.refreshUsersAfterOperation();
2349
+ return;
2350
+ }
2351
+ if (this.isMigrationStatusCompleted(status)) {
2352
+ this.removeUserInMigrationProgress();
2353
+ this.setStatusToUser(index, 'Active');
2354
+ this.refreshUsersAfterOperation();
2355
+ onCompleted();
2356
+ }
2357
+ },
2358
+ error: () => {
2359
+ this.removeUserInMigrationProgress();
2360
+ this.setStatusToUser(index, 'Migration Error');
2361
+ this.refreshUsersAfterOperation();
2362
+ },
2363
+ });
2364
+ this.subscriptions.push(subscription);
2365
+ }
2366
+ pollMigrationFormStatusByUserId(formId, userId, onCompleted) {
2367
+ const subscription = timer(0, 5000)
2368
+ .pipe(switchMap(() => this.userService.getMigrationFormStatus(this.customerId, formId)), takeUntil(this.destroy$), takeWhile((response) => {
2369
+ const status = response === null || response === void 0 ? void 0 : response.status;
2370
+ return !this.isMigrationStatusCompleted(status)
2371
+ && !this.isMigrationStatusFailed(status)
2372
+ && !this.isMigrationStatusCompletedWithErrors(status);
2373
+ }, true))
2374
+ .subscribe({
2375
+ next: (response) => {
2376
+ const status = response === null || response === void 0 ? void 0 : response.status;
2377
+ const index = this.getUserIndexById(userId);
2378
+ if (this.isMigrationStatusCompletedWithErrors(status)) {
2379
+ this.handleCompletedWithErrorsByUserId(userId);
2380
+ return;
2381
+ }
2382
+ if (this.isMigrationStatusFailed(status)) {
2383
+ this.removeUserInMigrationProgress();
2384
+ if (index > -1) {
2385
+ this.setStatusToUser(index, 'Migration Error');
2386
+ }
2387
+ this.refreshUsersAfterOperation();
2388
+ return;
2389
+ }
2390
+ if (this.isMigrationStatusCompleted(status)) {
2391
+ this.removeUserInMigrationProgress();
2392
+ if (index > -1) {
2393
+ this.setStatusToUser(index, 'Active');
2394
+ }
2395
+ this.refreshUsersAfterOperation();
2396
+ onCompleted();
2397
+ }
2398
+ },
2399
+ error: () => {
2400
+ const index = this.getUserIndexById(userId);
2401
+ this.removeUserInMigrationProgress();
2402
+ if (index > -1) {
2403
+ this.setStatusToUser(index, 'Migration Error');
2404
+ }
2405
+ this.refreshUsersAfterOperation();
2406
+ },
2407
+ });
2408
+ this.subscriptions.push(subscription);
2409
+ }
2410
+ getUserIndexById(userId) {
2411
+ var _a, _b;
2412
+ return (_b = (_a = this.users) === null || _a === void 0 ? void 0 : _a.findIndex((user) => user.userid === userId)) !== null && _b !== void 0 ? _b : -1;
2413
+ }
2414
+ setOriginalUserStatus(email = '', status) {
2415
+ const originalUser = this.users.find((user) => user.email === email && !user.webexUUID);
2416
+ if (originalUser) {
2417
+ originalUser.status = status;
2418
+ }
2419
+ }
2420
+ subscribeToUpgradeUsersStatus(users) {
2421
+ this.usersSearchService.quickUpgradeStatusUsers$
2422
+ .pipe(takeUntil(this.destroy$))
2423
+ .subscribe(() => {
2424
+ this.initializeDataSource(users);
2425
+ });
2426
+ }
2427
+ }
2428
+ UsersListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, deps: [{ token: UserService }, { token: APIService }, { token: ApiWebexService }, { token: NotificationService }, { token: UsersSearchService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
2429
+ UsersListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UsersListComponent, selector: "app-users-list", inputs: { token: "token", customerId: "customerId", siteId: "siteId", host: "host" }, outputs: { openUser: "openUser", userMoved: "userMoved", switchToWizard: "switchToWizard", createUserRequested: "createUserRequested" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<app-notification></app-notification>\r\n<div *ngIf=\"!showMoveUserWizard\" id=\"users-list\">\r\n <tk-users-table-toolbar\r\n [totalUsersCount]=\"totalUsersCount\"\r\n [searchValue]=\"activeSearchToken\"\r\n [selectedUserType]=\"activeUserType\"\r\n (searchChange)=\"searchUsers($event)\"\r\n (searchByType)=\"searchByType($event)\"\r\n (addUser)=\"onCreateUserRequested()\"\r\n ></tk-users-table-toolbar>\r\n <table\r\n class=\"webex-table\"\r\n mat-table\r\n *ngIf=\"users?.length\"\r\n #table\r\n [dataSource]=\"dataSource\"\r\n >\r\n <!-- <ng-container matColumnDef=\"user-icon\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\r\n </td>\r\n </ng-container> -->\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"webex-table-th\"\r\n style=\"padding-left: 60px\"\r\n >\r\n Display name\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n <div class=\"display-name-wrapper\">\r\n <span\r\n class=\"user-name-text\"\r\n [ngClass]=\"{ 'inactive-user-row': user.status !== 'Active' }\"\r\n >\r\n {{ user.firstName }} {{ user.lastName }}\r\n </span>\r\n <span class=\"icon-webex-box\"\r\n ><span class=\"icon-webex icon-webex-user\"></span\r\n ></span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n {{ user.email }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n <span class=\"header-with-info\">\r\n Status\r\n <img src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\" />\r\n </span>\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n [matTooltip]=\"\r\n user.status !== 'Active' && user.webexUUID\r\n ? 'Pending cutover to MT. Please contact your administrator for details.'\r\n : ''\r\n \"\r\n matTooltipPosition=\"above\"\r\n >\r\n <span\r\n class=\"icon-user-status\"\r\n [ngClass]=\"{ 'icon-user-status-active': user.status === 'Active' }\"\r\n ></span\r\n >{{ user.status }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"webex-table-th\"\r\n style=\"padding-left: 24px; padding-top: 4px\"\r\n >\r\n <img src=\"assets/icons/settings-regular.svg\" width=\"16\" alt=\"\" />\r\n </th>\r\n <td\r\n class=\"user-site actions-cell\"\r\n mat-cell\r\n *matCellDef=\"let user; let i = index\"\r\n style=\"position: relative\"\r\n >\r\n <mat-progress-spinner\r\n class=\"field-spinner\"\r\n [diameter]=\"30\"\r\n strokeWidth=\"3\"\r\n mode=\"indeterminate\"\r\n *ngIf=\"\r\n user.status === 'In Progress' ||\r\n user.status === 'Pending Activation' ||\r\n user.status === 'Pending Deactivation'\r\n \"\r\n ></mat-progress-spinner>\r\n <button\r\n *ngIf=\"\r\n !(\r\n user.status === 'In Progress' ||\r\n user.status === 'Pending Activation' ||\r\n user.status === 'Pending Deactivation'\r\n ) &&\r\n !(\r\n moveUserPending &&\r\n moveInProgressUserId &&\r\n moveInProgressUserId === user?.userid\r\n )\r\n \"\r\n class=\"button-action-dot\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n >\r\n <div class=\"icon-actions-dots\">\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n </div>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\r\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\r\n <button\r\n *ngIf=\"!user.webexUUID && user.cucmId == ON_PREM_ID\"\r\n mat-menu-item\r\n [disabled]=\"true\"\r\n matTooltip=\"Coming soon\"\r\n matTooltipPosition=\"right\"\r\n >\r\n Enable AI Transcribe\r\n </button>\r\n <button\r\n [disabled]=\"user.webexUUID || user.status !== 'Active'\"\r\n *ngIf=\"!user.isMigrated\"\r\n mat-menu-item\r\n (click)=\"onMoveUser(user, i, 'QuickMove', 'MT')\"\r\n >\r\n<!-- for TU-4960 !user.isReadyToUpgrade ||-->\r\n Quick Upgrade User to MT\r\n </button>\r\n <button\r\n [disabled]=\"user.webexUUID || user.status !== 'Active'\"\r\n *ngIf=\"!user.isMigrated\"\r\n mat-menu-item\r\n (click)=\"onMoveUser(user, i, 'MT', 'MT')\"\r\n >\r\n Upgrade User to MT\r\n </button>\r\n <button\r\n *ngIf=\"user.isMigrated\"\r\n mat-menu-item\r\n (click)=\"onMoveUser(user, i, 'DI', 'DI')\"\r\n >\r\n Revert User to UCM/DI\r\n </button>\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!isValidWebexUuid(user) || user.status !== 'Inactive'\"\r\n (click)=\"onFirmwareUpgradeClicked(user)\"\r\n >\r\n Activate User\r\n </button>\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!user.webexUUID || user.status !== 'Active'\"\r\n (click)=\"onRevertClicked(user)\"\r\n >\r\n Revert\r\n </button>\r\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n Admin roles\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n [ngClass]=\"{ 'inactive-user-row': user.status !== 'Active' }\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n {{ user.roleName || \"-\" }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"source\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n Provisioning Type\r\n </th>\r\n <td\r\n class=\"user-provisioning-type\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n <ng-container *ngIf=\"user.webexUUID\">\r\n <span class=\"icon-wrapper\"\r\n ><img\r\n src=\"assets/icons/webex.svg\"\r\n [matTooltip]=\"'Webex Calling'\"\r\n matTooltipPosition=\"right\"\r\n width=\"20\"\r\n alt=\"\"\r\n /></span>\r\n </ng-container>\r\n <ng-container *ngIf=\"!user.webexUUID\">\r\n <span *ngIf=\"user.cucmId == ON_PREM_ID\" class=\"icon-wrapper\"\r\n ><img\r\n src=\"assets/icons/local_24.svg\"\r\n width=\"20\"\r\n alt=\"\"\r\n [matTooltip]=\"'UCM'\"\r\n matTooltipPosition=\"right\"\r\n /></span>\r\n <span *ngIf=\"user.cucmId != ON_PREM_ID\" class=\"icon-wrapper\"\r\n ><img\r\n src=\"assets/icons/di_cloud_24.svg\"\r\n [matTooltip]=\"'Webex Calling DI'\"\r\n matTooltipPosition=\"right\"\r\n width=\"20\"\r\n alt=\"\"\r\n /></span>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"last-active-time\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n <span class=\"header-with-info\">\r\n Last active time\r\n <!-- <mat-icon class=\"info-icon\">info</mat-icon> -->\r\n <img src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\" />\r\n </span>\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n [ngClass]=\"{ 'inactive-user-row': user.status !== 'Active' }\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n {{ getTodayShortDate() }}\r\n </td>\r\n /\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n [ngClass]=\"{\r\n 'disabled-user-row':\r\n moveUserPending &&\r\n moveInProgressUserId &&\r\n moveInProgressUserId === row?.userid,\r\n 'inactive-user-row': row.status !== 'Active',\r\n }\"\r\n ></tr>\r\n </table>\r\n\r\n <app-pagination\r\n [pagination]=\"usersSearchService.getPagination()\"\r\n [showPageSizeOptions]=\"true\"\r\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\r\n (pageEmitter)=\"pageEvent($event)\"\r\n >\r\n </app-pagination>\r\n</div>\r\n\r\n<app-move-user-wizard\r\n *ngIf=\"showMoveUserWizard\"\r\n [user]=\"moveUser\"\r\n (done)=\"closeMoveUserWizard(true)\"\r\n [customerId]=\"customerId\"\r\n (runMoveUser)=\"runMoveUserToMT()\"\r\n (closeMoveUserWizard)=\"closeMoveUserWizard(false)\"\r\n></app-move-user-wizard>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";#users-list{letter-spacing:.5px;position:relative}::ng-deep app-notification{position:absolute;top:96px;right:24px;z-index:1000;width:360px;display:block}::ng-deep app-notification .notification-block{display:flex;flex-direction:column;gap:12px;width:100%;pointer-events:none}::ng-deep app-notification .notification{display:flex;align-items:center;gap:12px;padding:14px 16px;color:#111;border-radius:10px;border:1px solid rgba(17,17,17,.08);background:#ffffff;box-shadow:0 14px 32px #1118271f,0 2px 6px #11182714;width:100%;position:relative;pointer-events:auto}::ng-deep app-notification .notification.success{border-color:#10b98140}::ng-deep app-notification .notification.error{border-color:#ef444440}::ng-deep app-notification .notification-icons-block{width:32px;min-width:32px;display:flex;justify-content:center;align-items:center}::ng-deep app-notification .flex-box{display:flex;align-items:center;gap:12px;width:100%}::ng-deep app-notification .message-block{font-size:14px;font-family:Poppins,Poppins,sans-serif!important;color:#111;word-break:break-word;line-height:1.5;flex:1}::ng-deep app-notification .notification-icon-close{height:24px}::ng-deep app-notification .close{position:absolute;top:8px;right:8px;width:28px;height:28px}::ng-deep app-notification .fa{font-size:18px}::ng-deep app-notification .notification.success .fa{color:#16a34a}::ng-deep app-notification .notification.error .fa{color:#dc2626}@media screen and (max-width: 600px){::ng-deep app-notification{right:12px;left:12px;width:auto}}.header-with-info{display:flex;align-items:center;gap:.5rem}.header-with-info .info-icon{font-size:16px;color:#c3c3c3;cursor:pointer}table.mat-table{border-spacing:0;width:100%}::ng-deep .mat-paginator{background:none}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;font-size:.7rem;line-height:1rem;background:#545454;border-radius:2rem;line-height:40px;text-align:center;flex-shrink:0}.icon-webex{filter:brightness(0) invert(1);background-repeat:no-repeat;background-position:center;display:inline-block;height:20px;width:20px;background-size:contain}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M23.23 16.757a5.746 5.746 0 1 0-7.041-9.048 5 5 0 0 0 .071-.705 4.75 4.75 0 1 0-7.705 3.689 8.43 8.43 0 0 0-6.305 7.84c0 1.052.543 2.521 3.13 3.55 1.643.595 3.371.92 5.118.965a7.8 7.8 0 0 0-.248 1.926c0 1.1.57 2.636 3.285 3.716a18.1 18.1 0 0 0 6.463 1.06c4.853 0 9.75-1.476 9.75-4.776a8.86 8.86 0 0 0-6.517-8.217M20 7.755a4.25 4.25 0 0 1 .006 8.499h-.013a4.25 4.25 0 0 1 .007-8.5M8.26 7.004a3.25 3.25 0 1 1 6.5 0 3.25 3.25 0 0 1-6.5 0m2.76 14.574c-4.177-.093-7.27-1.368-7.27-3.045 0-3.737 3.478-6.778 7.752-6.778a8.7 8.7 0 0 1 2.757.45 5.75 5.75 0 0 0 2.508 4.552 9.43 9.43 0 0 0-5.747 4.82m8.978 6.672c-4.703 0-8.249-1.408-8.249-3.276 0-3.982 3.7-7.22 8.25-7.22s8.248 3.238 8.248 7.22c0 1.868-3.546 3.276-8.25 3.276%22%2F%3E%3C%2Fsvg%3E\")}.icon-webex-info{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%2211%22 stroke%3D%22currentColor%22 stroke-width%3D%221.5%22%2F%3E%0D %3Ccircle cx%3D%2212%22 cy%3D%227.5%22 r%3D%221%22 fill%3D%22currentColor%22%2F%3E%0D %3Crect x%3D%2211%22 y%3D%2210%22 width%3D%222%22 height%3D%227%22 rx%3D%221%22 fill%3D%22currentColor%22%2F%3E%0D%3C%2Fsvg%3E\")}.icon-webex-cogs{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%223.5%22 stroke%3D%22currentColor%22 stroke-width%3D%221.2%22%2F%3E%0D %0D %3Cpath d%3D%22M12 2C12.8 2 13.5 2.5 13.8 3.2L14.2 4.2C14.4 4.8 15 5.2 15.7 5.1L16.8 4.9C17.8 4.7 18.8 5.2 19.3 6.1L20.5 8.2C21 9.1 20.9 10.2 20.1 11L19.4 11.6C18.9 12 18.9 12.7 19.4 13.1L20.1 13.7C20.9 14.5 21 15.6 20.5 16.5L19.3 18.6C18.8 19.5 17.8 20 16.8 19.8L15.7 19.6C15 19.5 14.4 19.9 14.2 20.5L13.8 21.5C13.5 22.2 12.8 22.7 12 22.7C11.2 22.7 10.5 22.2 10.2 21.5L9.8 20.5C9.6 19.9 9 19.5 8.3 19.6L7.2 19.8C6.2 20 5.2 19.5 4.7 18.6L3.5 16.5C3 15.6 3.1 14.5 3.9 13.7L4.6 13.1C5.1 12.7 5.1 12 4.6 11.6L3.9 11C3.1 10.2 3 9.1 3.5 8.2L4.7 6.1C5.2 5.2 6.2 4.7 7.2 4.9L8.3 5.1C9 5.2 9.6 4.8 9.8 4.2L10.2 3.2C10.5 2.5 11.2 2 12 2Z%22 %0D stroke%3D%22currentColor%22 %0D stroke-width%3D%221.2%22 %0D stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;font-style:normal}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}:host .mat-progress-spinner circle,:host .mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-size:14px}.user-info-box h3{display:block;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#ededed;color:#636363;font-size:12px}.webex-table th:hover{background-color:#dedede}.webex-table th ::ng-deep .mat-icon{font-size:16px;display:flex;align-items:center}.webex-table tr{background:#fff;color:#000000f2;font-size:14px}.webex-table tr:hover:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table tr.inactive-user-row{opacity:.35}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{padding:0 24px 0 12px;border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.webex-table .display-name-wrapper{display:flex;align-items:center;justify-content:left;flex-flow:row-reverse;gap:1rem}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#f3f6f6;border:1px solid #e2e9ef;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}:host ::ng-deep .mat-form-field-wrapper{height:30px}:host ::ng-deep .mat-form-field-flex{height:30px}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:host ::ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}:host ::ng-deep .mat-select{line-height:20px}:host ::ng-deep .mat-form-field-infix{border-top:0px!important}:host ::ng-deep .mat-paginator{background:transparent!important}:host ::ng-deep .mat-paginator-container{min-height:30px!important}:host ::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}:host ::ng-deep .pagination{font-size:13px;color:#0000008a}:host ::ng-deep .per-page-block{display:flex;line-height:42px!important}:host ::ng-deep .item_per_page{line-height:42px!important}:host ::ng-deep .select-page-size{line-height:42px!important}:host ::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}:host ::ng-deep mat-progress-spinner.field-spinner{position:absolute;margin:-15px -29px}:host ::ng-deep mat-progress-spinner.tab-spinner{position:relative;margin:0 auto auto}.icon-dot{display:block;color:#4f4f4f;font-size:16px;line-height:5px}.button-action-dot:hover{background:#dfdfdf}.button-action-dot{padding:0 5px 5px;border-radius:.25rem}.actions-cell .field-spinner{position:absolute;right:32px;top:50%;transform:translateY(-50%);margin:0}.user-provisioning-type{text-align:start}.user-provisioning-type .icon-wrapper{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i12$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i12$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: PaginationComponent, selector: "app-pagination", inputs: ["pagination", "showPageSizeOptions", "showRefreshButton", "lengthPending"], outputs: ["pageEmitter", "pageNumberChangeEmitter"] }, { kind: "component", type: AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: ["user", "customerId"], outputs: ["closeMoveUserWizard", "done", "runMoveUser"] }, { kind: "component", type: TableToolbarComponent, selector: "tk-users-table-toolbar", inputs: ["totalUsersCount", "searchValue", "selectedUserType"], outputs: ["searchChange", "searchByType", "addUser"] }, { kind: "component", type: NotificationsComponent, selector: "app-notification" }] });
2430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, decorators: [{
2431
+ type: Component,
2432
+ args: [{ selector: 'app-users-list', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<app-notification></app-notification>\r\n<div *ngIf=\"!showMoveUserWizard\" id=\"users-list\">\r\n <tk-users-table-toolbar\r\n [totalUsersCount]=\"totalUsersCount\"\r\n [searchValue]=\"activeSearchToken\"\r\n [selectedUserType]=\"activeUserType\"\r\n (searchChange)=\"searchUsers($event)\"\r\n (searchByType)=\"searchByType($event)\"\r\n (addUser)=\"onCreateUserRequested()\"\r\n ></tk-users-table-toolbar>\r\n <table\r\n class=\"webex-table\"\r\n mat-table\r\n *ngIf=\"users?.length\"\r\n #table\r\n [dataSource]=\"dataSource\"\r\n >\r\n <!-- <ng-container matColumnDef=\"user-icon\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\r\n </td>\r\n </ng-container> -->\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"webex-table-th\"\r\n style=\"padding-left: 60px\"\r\n >\r\n Display name\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n <div class=\"display-name-wrapper\">\r\n <span\r\n class=\"user-name-text\"\r\n [ngClass]=\"{ 'inactive-user-row': user.status !== 'Active' }\"\r\n >\r\n {{ user.firstName }} {{ user.lastName }}\r\n </span>\r\n <span class=\"icon-webex-box\"\r\n ><span class=\"icon-webex icon-webex-user\"></span\r\n ></span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n {{ user.email }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n <span class=\"header-with-info\">\r\n Status\r\n <img src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\" />\r\n </span>\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n [matTooltip]=\"\r\n user.status !== 'Active' && user.webexUUID\r\n ? 'Pending cutover to MT. Please contact your administrator for details.'\r\n : ''\r\n \"\r\n matTooltipPosition=\"above\"\r\n >\r\n <span\r\n class=\"icon-user-status\"\r\n [ngClass]=\"{ 'icon-user-status-active': user.status === 'Active' }\"\r\n ></span\r\n >{{ user.status }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"webex-table-th\"\r\n style=\"padding-left: 24px; padding-top: 4px\"\r\n >\r\n <img src=\"assets/icons/settings-regular.svg\" width=\"16\" alt=\"\" />\r\n </th>\r\n <td\r\n class=\"user-site actions-cell\"\r\n mat-cell\r\n *matCellDef=\"let user; let i = index\"\r\n style=\"position: relative\"\r\n >\r\n <mat-progress-spinner\r\n class=\"field-spinner\"\r\n [diameter]=\"30\"\r\n strokeWidth=\"3\"\r\n mode=\"indeterminate\"\r\n *ngIf=\"\r\n user.status === 'In Progress' ||\r\n user.status === 'Pending Activation' ||\r\n user.status === 'Pending Deactivation'\r\n \"\r\n ></mat-progress-spinner>\r\n <button\r\n *ngIf=\"\r\n !(\r\n user.status === 'In Progress' ||\r\n user.status === 'Pending Activation' ||\r\n user.status === 'Pending Deactivation'\r\n ) &&\r\n !(\r\n moveUserPending &&\r\n moveInProgressUserId &&\r\n moveInProgressUserId === user?.userid\r\n )\r\n \"\r\n class=\"button-action-dot\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n >\r\n <div class=\"icon-actions-dots\">\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n </div>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\r\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\r\n <button\r\n *ngIf=\"!user.webexUUID && user.cucmId == ON_PREM_ID\"\r\n mat-menu-item\r\n [disabled]=\"true\"\r\n matTooltip=\"Coming soon\"\r\n matTooltipPosition=\"right\"\r\n >\r\n Enable AI Transcribe\r\n </button>\r\n <button\r\n [disabled]=\"user.webexUUID || user.status !== 'Active'\"\r\n *ngIf=\"!user.isMigrated\"\r\n mat-menu-item\r\n (click)=\"onMoveUser(user, i, 'QuickMove', 'MT')\"\r\n >\r\n<!-- for TU-4960 !user.isReadyToUpgrade ||-->\r\n Quick Upgrade User to MT\r\n </button>\r\n <button\r\n [disabled]=\"user.webexUUID || user.status !== 'Active'\"\r\n *ngIf=\"!user.isMigrated\"\r\n mat-menu-item\r\n (click)=\"onMoveUser(user, i, 'MT', 'MT')\"\r\n >\r\n Upgrade User to MT\r\n </button>\r\n <button\r\n *ngIf=\"user.isMigrated\"\r\n mat-menu-item\r\n (click)=\"onMoveUser(user, i, 'DI', 'DI')\"\r\n >\r\n Revert User to UCM/DI\r\n </button>\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!isValidWebexUuid(user) || user.status !== 'Inactive'\"\r\n (click)=\"onFirmwareUpgradeClicked(user)\"\r\n >\r\n Activate User\r\n </button>\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!user.webexUUID || user.status !== 'Active'\"\r\n (click)=\"onRevertClicked(user)\"\r\n >\r\n Revert\r\n </button>\r\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n Admin roles\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n [ngClass]=\"{ 'inactive-user-row': user.status !== 'Active' }\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n {{ user.roleName || \"-\" }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"source\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n Provisioning Type\r\n </th>\r\n <td\r\n class=\"user-provisioning-type\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n <ng-container *ngIf=\"user.webexUUID\">\r\n <span class=\"icon-wrapper\"\r\n ><img\r\n src=\"assets/icons/webex.svg\"\r\n [matTooltip]=\"'Webex Calling'\"\r\n matTooltipPosition=\"right\"\r\n width=\"20\"\r\n alt=\"\"\r\n /></span>\r\n </ng-container>\r\n <ng-container *ngIf=\"!user.webexUUID\">\r\n <span *ngIf=\"user.cucmId == ON_PREM_ID\" class=\"icon-wrapper\"\r\n ><img\r\n src=\"assets/icons/local_24.svg\"\r\n width=\"20\"\r\n alt=\"\"\r\n [matTooltip]=\"'UCM'\"\r\n matTooltipPosition=\"right\"\r\n /></span>\r\n <span *ngIf=\"user.cucmId != ON_PREM_ID\" class=\"icon-wrapper\"\r\n ><img\r\n src=\"assets/icons/di_cloud_24.svg\"\r\n [matTooltip]=\"'Webex Calling DI'\"\r\n matTooltipPosition=\"right\"\r\n width=\"20\"\r\n alt=\"\"\r\n /></span>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"last-active-time\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">\r\n <span class=\"header-with-info\">\r\n Last active time\r\n <!-- <mat-icon class=\"info-icon\">info</mat-icon> -->\r\n <img src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\" />\r\n </span>\r\n </th>\r\n <td\r\n class=\"user-site\"\r\n mat-cell\r\n *matCellDef=\"let user\"\r\n [ngClass]=\"{ 'inactive-user-row': user.status !== 'Active' }\"\r\n (click)=\"onUserClick(user)\"\r\n >\r\n {{ getTodayShortDate() }}\r\n </td>\r\n /\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n [ngClass]=\"{\r\n 'disabled-user-row':\r\n moveUserPending &&\r\n moveInProgressUserId &&\r\n moveInProgressUserId === row?.userid,\r\n 'inactive-user-row': row.status !== 'Active',\r\n }\"\r\n ></tr>\r\n </table>\r\n\r\n <app-pagination\r\n [pagination]=\"usersSearchService.getPagination()\"\r\n [showPageSizeOptions]=\"true\"\r\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\r\n (pageEmitter)=\"pageEvent($event)\"\r\n >\r\n </app-pagination>\r\n</div>\r\n\r\n<app-move-user-wizard\r\n *ngIf=\"showMoveUserWizard\"\r\n [user]=\"moveUser\"\r\n (done)=\"closeMoveUserWizard(true)\"\r\n [customerId]=\"customerId\"\r\n (runMoveUser)=\"runMoveUserToMT()\"\r\n (closeMoveUserWizard)=\"closeMoveUserWizard(false)\"\r\n></app-move-user-wizard>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";#users-list{letter-spacing:.5px;position:relative}::ng-deep app-notification{position:absolute;top:96px;right:24px;z-index:1000;width:360px;display:block}::ng-deep app-notification .notification-block{display:flex;flex-direction:column;gap:12px;width:100%;pointer-events:none}::ng-deep app-notification .notification{display:flex;align-items:center;gap:12px;padding:14px 16px;color:#111;border-radius:10px;border:1px solid rgba(17,17,17,.08);background:#ffffff;box-shadow:0 14px 32px #1118271f,0 2px 6px #11182714;width:100%;position:relative;pointer-events:auto}::ng-deep app-notification .notification.success{border-color:#10b98140}::ng-deep app-notification .notification.error{border-color:#ef444440}::ng-deep app-notification .notification-icons-block{width:32px;min-width:32px;display:flex;justify-content:center;align-items:center}::ng-deep app-notification .flex-box{display:flex;align-items:center;gap:12px;width:100%}::ng-deep app-notification .message-block{font-size:14px;font-family:Poppins,Poppins,sans-serif!important;color:#111;word-break:break-word;line-height:1.5;flex:1}::ng-deep app-notification .notification-icon-close{height:24px}::ng-deep app-notification .close{position:absolute;top:8px;right:8px;width:28px;height:28px}::ng-deep app-notification .fa{font-size:18px}::ng-deep app-notification .notification.success .fa{color:#16a34a}::ng-deep app-notification .notification.error .fa{color:#dc2626}@media screen and (max-width: 600px){::ng-deep app-notification{right:12px;left:12px;width:auto}}.header-with-info{display:flex;align-items:center;gap:.5rem}.header-with-info .info-icon{font-size:16px;color:#c3c3c3;cursor:pointer}table.mat-table{border-spacing:0;width:100%}::ng-deep .mat-paginator{background:none}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;font-size:.7rem;line-height:1rem;background:#545454;border-radius:2rem;line-height:40px;text-align:center;flex-shrink:0}.icon-webex{filter:brightness(0) invert(1);background-repeat:no-repeat;background-position:center;display:inline-block;height:20px;width:20px;background-size:contain}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M23.23 16.757a5.746 5.746 0 1 0-7.041-9.048 5 5 0 0 0 .071-.705 4.75 4.75 0 1 0-7.705 3.689 8.43 8.43 0 0 0-6.305 7.84c0 1.052.543 2.521 3.13 3.55 1.643.595 3.371.92 5.118.965a7.8 7.8 0 0 0-.248 1.926c0 1.1.57 2.636 3.285 3.716a18.1 18.1 0 0 0 6.463 1.06c4.853 0 9.75-1.476 9.75-4.776a8.86 8.86 0 0 0-6.517-8.217M20 7.755a4.25 4.25 0 0 1 .006 8.499h-.013a4.25 4.25 0 0 1 .007-8.5M8.26 7.004a3.25 3.25 0 1 1 6.5 0 3.25 3.25 0 0 1-6.5 0m2.76 14.574c-4.177-.093-7.27-1.368-7.27-3.045 0-3.737 3.478-6.778 7.752-6.778a8.7 8.7 0 0 1 2.757.45 5.75 5.75 0 0 0 2.508 4.552 9.43 9.43 0 0 0-5.747 4.82m8.978 6.672c-4.703 0-8.249-1.408-8.249-3.276 0-3.982 3.7-7.22 8.25-7.22s8.248 3.238 8.248 7.22c0 1.868-3.546 3.276-8.25 3.276%22%2F%3E%3C%2Fsvg%3E\")}.icon-webex-info{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%2211%22 stroke%3D%22currentColor%22 stroke-width%3D%221.5%22%2F%3E%0D %3Ccircle cx%3D%2212%22 cy%3D%227.5%22 r%3D%221%22 fill%3D%22currentColor%22%2F%3E%0D %3Crect x%3D%2211%22 y%3D%2210%22 width%3D%222%22 height%3D%227%22 rx%3D%221%22 fill%3D%22currentColor%22%2F%3E%0D%3C%2Fsvg%3E\")}.icon-webex-cogs{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%223.5%22 stroke%3D%22currentColor%22 stroke-width%3D%221.2%22%2F%3E%0D %0D %3Cpath d%3D%22M12 2C12.8 2 13.5 2.5 13.8 3.2L14.2 4.2C14.4 4.8 15 5.2 15.7 5.1L16.8 4.9C17.8 4.7 18.8 5.2 19.3 6.1L20.5 8.2C21 9.1 20.9 10.2 20.1 11L19.4 11.6C18.9 12 18.9 12.7 19.4 13.1L20.1 13.7C20.9 14.5 21 15.6 20.5 16.5L19.3 18.6C18.8 19.5 17.8 20 16.8 19.8L15.7 19.6C15 19.5 14.4 19.9 14.2 20.5L13.8 21.5C13.5 22.2 12.8 22.7 12 22.7C11.2 22.7 10.5 22.2 10.2 21.5L9.8 20.5C9.6 19.9 9 19.5 8.3 19.6L7.2 19.8C6.2 20 5.2 19.5 4.7 18.6L3.5 16.5C3 15.6 3.1 14.5 3.9 13.7L4.6 13.1C5.1 12.7 5.1 12 4.6 11.6L3.9 11C3.1 10.2 3 9.1 3.5 8.2L4.7 6.1C5.2 5.2 6.2 4.7 7.2 4.9L8.3 5.1C9 5.2 9.6 4.8 9.8 4.2L10.2 3.2C10.5 2.5 11.2 2 12 2Z%22 %0D stroke%3D%22currentColor%22 %0D stroke-width%3D%221.2%22 %0D stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;font-style:normal}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}:host .mat-progress-spinner circle,:host .mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-size:14px}.user-info-box h3{display:block;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#ededed;color:#636363;font-size:12px}.webex-table th:hover{background-color:#dedede}.webex-table th ::ng-deep .mat-icon{font-size:16px;display:flex;align-items:center}.webex-table tr{background:#fff;color:#000000f2;font-size:14px}.webex-table tr:hover:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table tr.inactive-user-row{opacity:.35}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{padding:0 24px 0 12px;border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.webex-table .display-name-wrapper{display:flex;align-items:center;justify-content:left;flex-flow:row-reverse;gap:1rem}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#f3f6f6;border:1px solid #e2e9ef;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}:host ::ng-deep .mat-form-field-wrapper{height:30px}:host ::ng-deep .mat-form-field-flex{height:30px}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:host ::ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}:host ::ng-deep .mat-select{line-height:20px}:host ::ng-deep .mat-form-field-infix{border-top:0px!important}:host ::ng-deep .mat-paginator{background:transparent!important}:host ::ng-deep .mat-paginator-container{min-height:30px!important}:host ::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}:host ::ng-deep .pagination{font-size:13px;color:#0000008a}:host ::ng-deep .per-page-block{display:flex;line-height:42px!important}:host ::ng-deep .item_per_page{line-height:42px!important}:host ::ng-deep .select-page-size{line-height:42px!important}:host ::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}:host ::ng-deep mat-progress-spinner.field-spinner{position:absolute;margin:-15px -29px}:host ::ng-deep mat-progress-spinner.tab-spinner{position:relative;margin:0 auto auto}.icon-dot{display:block;color:#4f4f4f;font-size:16px;line-height:5px}.button-action-dot:hover{background:#dfdfdf}.button-action-dot{padding:0 5px 5px;border-radius:.25rem}.actions-cell .field-spinner{position:absolute;right:32px;top:50%;transform:translateY(-50%);margin:0}.user-provisioning-type{text-align:start}.user-provisioning-type .icon-wrapper{display:flex;align-items:center}\n"] }]
2433
+ }], ctorParameters: function () { return [{ type: UserService }, { type: APIService }, { type: ApiWebexService }, { type: NotificationService }, { type: UsersSearchService }, { type: i1.MatDialog }]; }, propDecorators: { token: [{
2434
+ type: Input
2435
+ }], customerId: [{
2436
+ type: Input
2437
+ }], siteId: [{
2438
+ type: Input
2439
+ }], openUser: [{
2440
+ type: Output
2441
+ }], userMoved: [{
2442
+ type: Output
2443
+ }], switchToWizard: [{
2444
+ type: Output
2445
+ }], createUserRequested: [{
2446
+ type: Output
2447
+ }], host: [{
2448
+ type: Input
2449
+ }] } });
2450
+
2451
+ class EventsCommunicationService {
2452
+ constructor() {
2453
+ this.onSuccessfulLoginEvent = new Subject();
2454
+ }
2455
+ }
2456
+ EventsCommunicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2457
+ EventsCommunicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService });
2458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, decorators: [{
2459
+ type: Injectable
2460
+ }], ctorParameters: function () { return []; } });
2461
+
2462
+ class MaterialModule {
2463
+ }
2464
+ MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2465
+ MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [DragDropModule,
2466
+ MatButtonModule,
2467
+ MatListModule,
2468
+ MatProgressSpinnerModule,
2469
+ MatExpansionModule,
2470
+ MatInputModule,
2471
+ MatInputModule,
2472
+ MatListModule,
2473
+ MatTreeModule,
2474
+ MatTreeModule,
2475
+ MatNativeDateModule,
2476
+ MatDatepickerModule,
2477
+ MatTooltipModule,
2478
+ MatAutocompleteModule,
2479
+ MatChipsModule,
2480
+ MatSidenavModule,
2481
+ MatFormFieldModule,
2482
+ MatStepperModule,
2483
+ MatTabsModule,
2484
+ MatCardModule,
2485
+ MatSelectModule,
2486
+ MatCheckboxModule,
2487
+ MatSlideToggleModule,
2488
+ MatTableModule,
2489
+ MatPaginatorModule,
2490
+ MatMenuModule,
2491
+ MatDialogModule,
2492
+ MatRadioModule,
2493
+ MatIconModule], exports: [DragDropModule,
2494
+ MatButtonModule,
2495
+ MatListModule,
2496
+ MatProgressSpinnerModule,
2497
+ MatExpansionModule,
2498
+ MatInputModule,
2499
+ MatInputModule,
2500
+ MatListModule,
2501
+ MatTreeModule,
2502
+ MatTreeModule,
2503
+ MatNativeDateModule,
2504
+ MatDatepickerModule,
2505
+ MatTooltipModule,
2506
+ MatAutocompleteModule,
2507
+ MatChipsModule,
2508
+ MatSidenavModule,
2509
+ MatFormFieldModule,
2510
+ MatStepperModule,
2511
+ MatTabsModule,
2512
+ MatCardModule,
2513
+ MatCheckboxModule,
2514
+ MatSelectModule,
2515
+ MatSlideToggleModule,
2516
+ MatProgressSpinnerModule,
2517
+ MatTableModule,
2518
+ MatPaginatorModule,
2519
+ MatMenuModule,
2520
+ MatDialogModule,
2521
+ MatRadioModule,
2522
+ MatIconModule] });
2523
+ MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [DragDropModule,
2524
+ MatButtonModule,
2525
+ MatListModule,
2526
+ MatProgressSpinnerModule,
2527
+ MatExpansionModule,
2528
+ MatInputModule,
2529
+ MatInputModule,
2530
+ MatListModule,
2531
+ MatTreeModule,
2532
+ MatTreeModule,
2533
+ MatNativeDateModule,
2534
+ MatDatepickerModule,
2535
+ MatTooltipModule,
2536
+ MatAutocompleteModule,
2537
+ MatChipsModule,
2538
+ MatSidenavModule,
2539
+ MatFormFieldModule,
2540
+ MatStepperModule,
2541
+ MatTabsModule,
2542
+ MatCardModule,
2543
+ MatSelectModule,
2544
+ MatCheckboxModule,
2545
+ MatSlideToggleModule,
2546
+ MatTableModule,
2547
+ MatPaginatorModule,
2548
+ MatMenuModule,
2549
+ MatDialogModule,
2550
+ MatRadioModule,
2551
+ MatIconModule, DragDropModule,
2552
+ MatButtonModule,
2553
+ MatListModule,
2554
+ MatProgressSpinnerModule,
2555
+ MatExpansionModule,
2556
+ MatInputModule,
2557
+ MatInputModule,
2558
+ MatListModule,
2559
+ MatTreeModule,
2560
+ MatTreeModule,
2561
+ MatNativeDateModule,
2562
+ MatDatepickerModule,
2563
+ MatTooltipModule,
2564
+ MatAutocompleteModule,
2565
+ MatChipsModule,
2566
+ MatSidenavModule,
2567
+ MatFormFieldModule,
2568
+ MatStepperModule,
2569
+ MatTabsModule,
2570
+ MatCardModule,
2571
+ MatCheckboxModule,
2572
+ MatSelectModule,
2573
+ MatSlideToggleModule,
2574
+ MatProgressSpinnerModule,
2575
+ MatTableModule,
2576
+ MatPaginatorModule,
2577
+ MatMenuModule,
2578
+ MatDialogModule,
2579
+ MatRadioModule,
2580
+ MatIconModule] });
2581
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, decorators: [{
2582
+ type: NgModule,
2583
+ args: [{
2584
+ imports: [
2585
+ DragDropModule,
2586
+ MatButtonModule,
2587
+ MatListModule,
2588
+ MatProgressSpinnerModule,
2589
+ MatExpansionModule,
2590
+ MatInputModule,
2591
+ MatInputModule,
2592
+ MatListModule,
2593
+ MatTreeModule,
2594
+ MatTreeModule,
2595
+ MatNativeDateModule,
2596
+ MatDatepickerModule,
2597
+ MatTooltipModule,
2598
+ MatAutocompleteModule,
2599
+ MatChipsModule,
2600
+ MatSidenavModule,
2601
+ MatFormFieldModule,
2602
+ MatStepperModule,
2603
+ MatTabsModule,
2604
+ MatCardModule,
2605
+ MatSelectModule,
2606
+ MatCheckboxModule,
2607
+ MatSlideToggleModule,
2608
+ MatTableModule,
2609
+ MatPaginatorModule,
2610
+ MatMenuModule,
2611
+ MatDialogModule,
2612
+ MatRadioModule,
2613
+ MatIconModule
2614
+ ],
2615
+ exports: [
2616
+ DragDropModule,
2617
+ MatButtonModule,
2618
+ MatListModule,
2619
+ MatProgressSpinnerModule,
2620
+ MatExpansionModule,
2621
+ MatInputModule,
2622
+ MatInputModule,
2623
+ MatListModule,
2624
+ MatTreeModule,
2625
+ MatTreeModule,
2626
+ MatNativeDateModule,
2627
+ MatDatepickerModule,
2628
+ MatTooltipModule,
2629
+ MatAutocompleteModule,
2630
+ MatChipsModule,
2631
+ MatSidenavModule,
2632
+ MatFormFieldModule,
2633
+ MatStepperModule,
2634
+ MatTabsModule,
2635
+ MatCardModule,
2636
+ MatCheckboxModule,
2637
+ MatSelectModule,
2638
+ MatSlideToggleModule,
2639
+ MatProgressSpinnerModule,
2640
+ MatTableModule,
2641
+ MatPaginatorModule,
2642
+ MatMenuModule,
2643
+ MatDialogModule,
2644
+ MatRadioModule,
2645
+ MatIconModule
2646
+ ],
2647
+ }]
2648
+ }] });
2649
+
2650
+ class UsersListModule {
2651
+ }
2652
+ UsersListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2653
+ UsersListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, declarations: [UsersListComponent,
2654
+ PaginationComponent,
2655
+ AppLoaderComponent,
2656
+ MoveUserWizardComponent,
2657
+ MoveUserStepperComponent,
2658
+ UserListConfirmDialogComponent,
2659
+ DevicesMoveUserWizardTabComponent,
2660
+ DeviceMoveUserWizardComponent,
2661
+ TableToolbarComponent,
2662
+ NotificationsComponent], imports: [BrowserModule,
2663
+ FormsModule,
2664
+ ReactiveFormsModule,
2665
+ HttpClientModule,
2666
+ MaterialModule], exports: [UsersListComponent] });
2667
+ UsersListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, providers: [
2668
+ UserService,
2669
+ APIService,
2670
+ EventsCommunicationService,
2671
+ UsersSearchService,
2672
+ NotificationService,
2673
+ RemoveKynFromIBMService,
2674
+ ApiWebexService,
2675
+ DnsService,
2676
+ SiteSettingsService,
2677
+ MoveUserService
2678
+ ], imports: [BrowserModule,
2679
+ FormsModule,
2680
+ ReactiveFormsModule,
2681
+ HttpClientModule,
2682
+ MaterialModule] });
2683
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, decorators: [{
2684
+ type: NgModule,
2685
+ args: [{
2686
+ declarations: [
2687
+ UsersListComponent,
2688
+ PaginationComponent,
2689
+ AppLoaderComponent,
2690
+ MoveUserWizardComponent,
2691
+ MoveUserStepperComponent,
2692
+ UserListConfirmDialogComponent,
2693
+ DevicesMoveUserWizardTabComponent,
2694
+ DeviceMoveUserWizardComponent,
2695
+ TableToolbarComponent,
2696
+ NotificationsComponent
2697
+ ],
2698
+ imports: [
2699
+ BrowserModule,
2700
+ FormsModule,
2701
+ ReactiveFormsModule,
2702
+ HttpClientModule,
2703
+ MaterialModule
2704
+ ],
2705
+ providers: [
2706
+ UserService,
2707
+ APIService,
2708
+ EventsCommunicationService,
2709
+ UsersSearchService,
2710
+ NotificationService,
2711
+ RemoveKynFromIBMService,
2712
+ ApiWebexService,
2713
+ DnsService,
2714
+ SiteSettingsService,
2715
+ MoveUserService
2716
+ ],
2717
+ exports: [UsersListComponent]
2718
+ }]
2719
+ }] });
2720
+
2721
+ /**
2722
+ * Generated bundle index. Do not edit.
2723
+ */
2724
+
2725
+ export { APIService, EventsCommunicationService, NotificationService, RemoveKynFromIBMService, UserService, UsersListComponent, UsersListModule, UsersSearchService };
2726
+ //# sourceMappingURL=tuki-io-tuki-widgets-users-list.mjs.map