@tuki-io/tuki-widgets 0.0.26 → 0.0.28

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 (374) hide show
  1. package/.editorconfig +16 -0
  2. package/.vscode/extensions.json +4 -0
  3. package/.vscode/launch.json +20 -0
  4. package/.vscode/tasks.json +42 -0
  5. package/README.md +10 -9
  6. package/angular.json +41 -0
  7. package/package.json +40 -43
  8. package/projects/tuki/widgets/README.md +24 -0
  9. package/projects/tuki/widgets/karma.conf.js +44 -0
  10. package/projects/tuki/widgets/ng-package.json +7 -0
  11. package/projects/tuki/widgets/package.json +13 -0
  12. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +23 -0
  13. package/projects/tuki/widgets/src/lib/widgets.component.ts +20 -0
  14. package/projects/tuki/widgets/src/lib/widgets.module.ts +16 -0
  15. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +16 -0
  16. package/projects/tuki/widgets/src/lib/widgets.service.ts +9 -0
  17. package/{public-api.d.ts → projects/tuki/widgets/src/public-api.ts} +4 -0
  18. package/projects/tuki/widgets/src/test.ts +27 -0
  19. package/projects/tuki/widgets/tsconfig.lib.json +36 -0
  20. package/projects/tuki/widgets/tsconfig.lib.prod.json +10 -0
  21. package/projects/tuki/widgets/tsconfig.spec.json +17 -0
  22. package/projects/tuki/widgets/user-device-manage/ng-package.json +7 -0
  23. package/projects/tuki/widgets/user-device-manage/public-api.ts +8 -0
  24. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +96 -0
  25. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +5 -0
  26. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +5 -0
  27. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +3 -0
  28. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +5 -0
  29. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  30. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +1 -0
  31. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  32. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +292 -0
  33. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +50 -0
  34. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +177 -0
  35. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +21 -0
  36. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +41 -0
  37. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +144 -0
  38. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +40 -0
  39. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +6 -0
  40. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +169 -0
  41. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +167 -0
  42. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +50 -0
  43. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +19 -0
  44. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +225 -0
  45. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +8 -0
  46. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +16 -0
  47. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +14 -0
  48. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +79 -0
  49. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +35 -0
  50. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.css +97 -0
  51. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -0
  52. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -0
  53. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.css +20 -0
  54. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +6 -0
  55. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +13 -0
  56. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -0
  57. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -0
  58. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -0
  59. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +241 -0
  60. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +500 -0
  61. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +194 -0
  62. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +27 -0
  63. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +131 -0
  64. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +25 -0
  65. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +209 -0
  66. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +502 -0
  67. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +354 -0
  68. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +9 -0
  69. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +10 -0
  70. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +35 -0
  71. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  72. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  73. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  74. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +87 -0
  75. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +33 -0
  76. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +84 -0
  77. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +46 -0
  78. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +25 -0
  79. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +87 -0
  80. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +17 -0
  81. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +95 -0
  82. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +111 -0
  83. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +89 -0
  84. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +68 -0
  85. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +25 -0
  86. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +82 -0
  87. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +203 -0
  88. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +283 -0
  89. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +87 -0
  90. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +829 -0
  91. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +90 -0
  92. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +231 -0
  93. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +32 -0
  94. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +110 -0
  95. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +30 -0
  96. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +73 -0
  97. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +6 -0
  98. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  99. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +13 -0
  100. package/projects/tuki/widgets/user-manage/ng-package.json +7 -0
  101. package/projects/tuki/widgets/user-manage/src/app.constants.ts +50 -0
  102. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +5 -0
  103. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +5 -0
  104. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +5 -0
  105. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  106. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +1 -0
  107. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  108. package/projects/tuki/widgets/user-manage/src/classes/device.ts +232 -0
  109. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +43 -0
  110. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +161 -0
  111. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +21 -0
  112. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +42 -0
  113. package/projects/tuki/widgets/user-manage/src/classes/line.ts +144 -0
  114. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +39 -0
  115. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +18 -0
  116. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +6 -0
  117. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +165 -0
  118. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +6 -0
  119. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +49 -0
  120. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +225 -0
  121. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +42 -0
  122. package/projects/tuki/widgets/user-manage/src/classes/user.ts +8 -0
  123. package/projects/tuki/widgets/user-manage/src/common-functions.ts +16 -0
  124. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +27 -0
  125. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +131 -0
  126. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +25 -0
  127. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +9 -0
  128. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +10 -0
  129. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +35 -0
  130. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  131. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  132. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  133. package/projects/tuki/widgets/user-manage/src/material.module.ts +85 -0
  134. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +33 -0
  135. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +84 -0
  136. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +46 -0
  137. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +25 -0
  138. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +90 -0
  139. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +116 -0
  140. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +31 -0
  141. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +68 -0
  142. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +25 -0
  143. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +35 -0
  144. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +203 -0
  145. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +242 -0
  146. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +58 -0
  147. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +71 -0
  148. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +90 -0
  149. package/projects/tuki/widgets/user-manage/src/styles/form.scss +231 -0
  150. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +32 -0
  151. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +110 -0
  152. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +30 -0
  153. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -0
  154. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +429 -0
  155. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -0
  156. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +32 -0
  157. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +444 -0
  158. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +89 -0
  159. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +68 -0
  160. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +29 -0
  161. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +64 -0
  162. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +19 -0
  163. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +292 -0
  164. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +463 -0
  165. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +212 -0
  166. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +63 -0
  167. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +6 -0
  168. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  169. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +13 -0
  170. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +26 -0
  171. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +41 -0
  172. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +41 -0
  173. package/projects/tuki/widgets/users-list/ng-package.json +6 -0
  174. package/projects/tuki/widgets/users-list/src/app.constants.ts +50 -0
  175. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +3 -0
  176. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +1 -0
  177. package/projects/tuki/widgets/users-list/src/classes/device.ts +225 -0
  178. package/projects/tuki/widgets/users-list/src/classes/line.ts +144 -0
  179. package/projects/tuki/widgets/users-list/src/classes/notification.ts +38 -0
  180. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +18 -0
  181. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +74 -0
  182. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +6 -0
  183. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +225 -0
  184. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +47 -0
  185. package/projects/tuki/widgets/users-list/src/classes/user.ts +8 -0
  186. package/projects/tuki/widgets/users-list/src/material.module.ts +94 -0
  187. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.css +183 -0
  188. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +93 -0
  189. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +95 -0
  190. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.css +38 -0
  191. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +11 -0
  192. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +34 -0
  193. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +13 -0
  194. package/projects/tuki/widgets/users-list/src/services/api.service.ts +90 -0
  195. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +128 -0
  196. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +11 -0
  197. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +68 -0
  198. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +25 -0
  199. package/projects/tuki/widgets/users-list/src/services/user.service.ts +168 -0
  200. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +135 -0
  201. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +14 -0
  202. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +79 -0
  203. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -0
  204. package/projects/tuki/widgets/users-list/src/users-list.component.css +4 -0
  205. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +1 -0
  206. package/projects/tuki/widgets/users-list/src/users-list.component.html +86 -0
  207. package/projects/tuki/widgets/users-list/src/users-list.component.scss +572 -0
  208. package/projects/tuki/widgets/users-list/src/users-list.component.ts +283 -0
  209. package/projects/tuki/widgets/users-list/src/users-list.module.ts +51 -0
  210. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +11 -0
  211. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +1 -0
  212. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +6 -0
  213. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +11 -0
  214. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +13 -0
  215. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +16 -0
  216. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +33 -0
  217. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +84 -0
  218. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +46 -0
  219. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +45 -0
  220. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +1 -0
  221. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +26 -0
  222. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +41 -0
  223. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +41 -0
  224. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +71 -0
  225. package/tsconfig.json +46 -0
  226. package/esm2020/lib/widgets.component.mjs +0 -22
  227. package/esm2020/lib/widgets.module.mjs +0 -21
  228. package/esm2020/lib/widgets.service.mjs +0 -14
  229. package/esm2020/public-api.mjs +0 -7
  230. package/esm2020/tuki-io-tuki-widgets.mjs +0 -5
  231. package/esm2020/user-manage/public-api.mjs +0 -7
  232. package/esm2020/user-manage/src/app.constants.mjs +0 -50
  233. package/esm2020/user-manage/src/classes/device.mjs +0 -24
  234. package/esm2020/user-manage/src/classes/line-association-interface.mjs +0 -2
  235. package/esm2020/user-manage/src/classes/line-association.mjs +0 -110
  236. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +0 -10
  237. package/esm2020/user-manage/src/classes/line-directory.mjs +0 -27
  238. package/esm2020/user-manage/src/classes/line.mjs +0 -18
  239. package/esm2020/user-manage/src/classes/notification.mjs +0 -32
  240. package/esm2020/user-manage/src/classes/pagination.mjs +0 -8
  241. package/esm2020/user-manage/src/classes/recording-options.mjs +0 -7
  242. package/esm2020/user-manage/src/classes/simplified-user.mjs +0 -109
  243. package/esm2020/user-manage/src/classes/table-data.mjs +0 -2
  244. package/esm2020/user-manage/src/classes/translation-pattern.mjs +0 -32
  245. package/esm2020/user-manage/src/classes/user-list.mjs +0 -10
  246. package/esm2020/user-manage/src/common-functions.mjs +0 -19
  247. package/esm2020/user-manage/src/environments/environment.mjs +0 -11
  248. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +0 -36
  249. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  250. package/esm2020/user-manage/src/material.module.mjs +0 -188
  251. package/esm2020/user-manage/src/notifications/notification.component.mjs +0 -35
  252. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +0 -25
  253. package/esm2020/user-manage/src/services/api.service.mjs +0 -79
  254. package/esm2020/user-manage/src/services/dns.service.mjs +0 -110
  255. package/esm2020/user-manage/src/services/line.service.mjs +0 -34
  256. package/esm2020/user-manage/src/services/notification.service.mjs +0 -62
  257. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  258. package/esm2020/user-manage/src/services/site-settings.service.mjs +0 -36
  259. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +0 -197
  260. package/esm2020/user-manage/src/services/user.service.mjs +0 -207
  261. package/esm2020/user-manage/src/services/users-search.service.mjs +0 -49
  262. package/esm2020/user-manage/src/services/utils.service.mjs +0 -73
  263. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +0 -65
  264. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +0 -78
  265. package/esm2020/user-manage/src/user-info/user-info.component.mjs +0 -20
  266. package/esm2020/user-manage/src/user-manage-widget.component.mjs +0 -193
  267. package/esm2020/user-manage/src/user-manage.module.mjs +0 -96
  268. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +0 -14
  269. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +0 -43
  270. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +0 -5
  271. package/esm2020/users-list/public-api.mjs +0 -9
  272. package/esm2020/users-list/src/app.constants.mjs +0 -46
  273. package/esm2020/users-list/src/classes/device.mjs +0 -7
  274. package/esm2020/users-list/src/classes/line.mjs +0 -18
  275. package/esm2020/users-list/src/classes/notification.mjs +0 -31
  276. package/esm2020/users-list/src/classes/pagination.mjs +0 -8
  277. package/esm2020/users-list/src/classes/simlified-user.mjs +0 -50
  278. package/esm2020/users-list/src/classes/table-data.mjs +0 -2
  279. package/esm2020/users-list/src/classes/user-list.mjs +0 -13
  280. package/esm2020/users-list/src/material.module.mjs +0 -195
  281. package/esm2020/users-list/src/services/api-webex.service.mjs +0 -17
  282. package/esm2020/users-list/src/services/api.service.mjs +0 -78
  283. package/esm2020/users-list/src/services/events-communication.service.mjs +0 -14
  284. package/esm2020/users-list/src/services/notification.service.mjs +0 -62
  285. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +0 -25
  286. package/esm2020/users-list/src/services/user.service.mjs +0 -129
  287. package/esm2020/users-list/src/services/users-search.service.mjs +0 -99
  288. package/esm2020/users-list/src/users-list.component.mjs +0 -187
  289. package/esm2020/users-list/src/users-list.module.mjs +0 -62
  290. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +0 -14
  291. package/esm2020/users-list/src/utils/common-functions.mjs +0 -19
  292. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +0 -43
  293. package/esm2020/users-list/src/utils/utils.service.mjs +0 -73
  294. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +0 -5
  295. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +0 -2074
  296. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  297. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +0 -1100
  298. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  299. package/fesm2015/tuki-io-tuki-widgets.mjs +0 -63
  300. package/fesm2015/tuki-io-tuki-widgets.mjs.map +0 -1
  301. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +0 -2057
  302. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  303. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +0 -1093
  304. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  305. package/fesm2020/tuki-io-tuki-widgets.mjs +0 -63
  306. package/fesm2020/tuki-io-tuki-widgets.mjs.map +0 -1
  307. package/index.d.ts +0 -5
  308. package/lib/widgets.component.d.ts +0 -8
  309. package/lib/widgets.module.d.ts +0 -7
  310. package/lib/widgets.service.d.ts +0 -6
  311. package/user-manage/index.d.ts +0 -5
  312. package/user-manage/src/app.constants.d.ts +0 -29
  313. package/user-manage/src/classes/device.d.ts +0 -186
  314. package/user-manage/src/classes/line-association-interface.d.ts +0 -40
  315. package/user-manage/src/classes/line-association.d.ts +0 -55
  316. package/user-manage/src/classes/line-call-info-display.d.ts +0 -11
  317. package/user-manage/src/classes/line-directory.d.ts +0 -16
  318. package/user-manage/src/classes/line.d.ts +0 -140
  319. package/user-manage/src/classes/notification.d.ts +0 -18
  320. package/user-manage/src/classes/pagination.d.ts +0 -13
  321. package/user-manage/src/classes/recording-options.d.ts +0 -5
  322. package/user-manage/src/classes/simplified-user.d.ts +0 -50
  323. package/user-manage/src/classes/table-data.d.ts +0 -5
  324. package/user-manage/src/classes/translation-pattern.d.ts +0 -18
  325. package/user-manage/src/classes/user-list.d.ts +0 -34
  326. package/user-manage/src/common-functions.d.ts +0 -1
  327. package/user-manage/src/environments/environment.d.ts +0 -9
  328. package/user-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  329. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  330. package/user-manage/src/material.module.d.ts +0 -28
  331. package/user-manage/src/notifications/notification.component.d.ts +0 -19
  332. package/user-manage/src/removeKynFromIBM.service.d.ts +0 -8
  333. package/user-manage/src/services/api.service.d.ts +0 -21
  334. package/user-manage/src/services/dns.service.d.ts +0 -14
  335. package/user-manage/src/services/line.service.d.ts +0 -17
  336. package/user-manage/src/services/notification.service.d.ts +0 -18
  337. package/user-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  338. package/user-manage/src/services/site-settings.service.d.ts +0 -9
  339. package/user-manage/src/services/sorting-utils.service.d.ts +0 -26
  340. package/user-manage/src/services/user.service.d.ts +0 -43
  341. package/user-manage/src/services/users-search.service.d.ts +0 -25
  342. package/user-manage/src/services/utils.service.d.ts +0 -9
  343. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +0 -24
  344. package/user-manage/src/user-calling/user-calling.component.d.ts +0 -30
  345. package/user-manage/src/user-info/user-info.component.d.ts +0 -9
  346. package/user-manage/src/user-manage-widget.component.d.ts +0 -39
  347. package/user-manage/src/user-manage.module.d.ts +0 -20
  348. package/user-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  349. package/user-manage/src/utils/pagination/pagination.component.d.ts +0 -18
  350. package/users-list/index.d.ts +0 -5
  351. package/users-list/src/app.constants.d.ts +0 -28
  352. package/users-list/src/classes/device.d.ts +0 -224
  353. package/users-list/src/classes/line.d.ts +0 -140
  354. package/users-list/src/classes/notification.d.ts +0 -18
  355. package/users-list/src/classes/pagination.d.ts +0 -13
  356. package/users-list/src/classes/simlified-user.d.ts +0 -25
  357. package/users-list/src/classes/table-data.d.ts +0 -5
  358. package/users-list/src/classes/user-list.d.ts +0 -36
  359. package/users-list/src/material.module.d.ts +0 -29
  360. package/users-list/src/services/api-webex.service.d.ts +0 -8
  361. package/users-list/src/services/api.service.d.ts +0 -21
  362. package/users-list/src/services/events-communication.service.d.ts +0 -8
  363. package/users-list/src/services/notification.service.d.ts +0 -18
  364. package/users-list/src/services/removeKynFromIBM.service.d.ts +0 -8
  365. package/users-list/src/services/user.service.d.ts +0 -32
  366. package/users-list/src/services/users-search.service.d.ts +0 -31
  367. package/users-list/src/users-list.component.d.ts +0 -49
  368. package/users-list/src/users-list.module.d.ts +0 -13
  369. package/users-list/src/utils/app-loader/app-loader.d.ts +0 -6
  370. package/users-list/src/utils/common-functions.d.ts +0 -1
  371. package/users-list/src/utils/pagination/pagination.component.d.ts +0 -18
  372. package/users-list/src/utils/utils.service.d.ts +0 -9
  373. /package/{user-manage/public-api.d.ts → projects/tuki/widgets/user-manage/public-api.ts} +0 -0
  374. /package/{users-list/public-api.d.ts → projects/tuki/widgets/users-list/public-api.ts} +0 -0
@@ -1,1093 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable, EventEmitter, Component, Input, Output, ViewEncapsulation, NgModule } from '@angular/core';
3
- import * as i9 from '@angular/material/table';
4
- import { MatTableDataSource, MatTableModule } from '@angular/material/table';
5
- import { of, forkJoin, Subject, BehaviorSubject } from 'rxjs';
6
- import * as i2 from '@angular/forms';
7
- import { FormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import { map } from 'rxjs/operators';
9
- import * as i1 from '@angular/common/http';
10
- import { HttpHeaders, HttpClientModule } from '@angular/common/http';
11
- import * as i1$1 from '@angular/common';
12
- import * as i7 from '@angular/material/button';
13
- import { MatButtonModule } from '@angular/material/button';
14
- import * as i3 from '@angular/material/progress-spinner';
15
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
16
- import * as i10 from '@angular/material/menu';
17
- import { MatMenuModule } from '@angular/material/menu';
18
- import * as i4 from '@angular/material/core';
19
- import { MatNativeDateModule } from '@angular/material/core';
20
- import * as i5 from '@angular/material/select';
21
- import { MatSelectModule } from '@angular/material/select';
22
- import * as i6 from '@angular/material/paginator';
23
- import { MatPaginatorModule } from '@angular/material/paginator';
24
- import { BrowserModule } from '@angular/platform-browser';
25
- import { MatExpansionModule } from '@angular/material/expansion';
26
- import { MatDatepickerModule } from '@angular/material/datepicker';
27
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
28
- import { MatChipsModule } from '@angular/material/chips';
29
- import { MatListModule } from '@angular/material/list';
30
- import { MatSidenavModule } from '@angular/material/sidenav';
31
- import { MatTreeModule } from '@angular/material/tree';
32
- import { DragDropModule } from '@angular/cdk/drag-drop';
33
- import { MatInputModule } from '@angular/material/input';
34
- import { MatTooltipModule } from '@angular/material/tooltip';
35
- import { MatFormFieldModule } from '@angular/material/form-field';
36
- import { MatStepperModule } from '@angular/material/stepper';
37
- import { MatTabsModule } from '@angular/material/tabs';
38
- import { MatCardModule } from '@angular/material/card';
39
- import { MatCheckboxModule } from '@angular/material/checkbox';
40
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
41
-
42
- const API = {
43
- USER_TOKEN: '/api/provision/:siteId/users/:userId/token',
44
- UPDATE_USER_FIELDS: '/api/provision/:siteId/userFields/:token',
45
- PERSIST_USER_CACHE: '/api/provision/:siteId/saveUser/:token',
46
- USER_BY_ID: '/api/provision/:siteId/users/:userId',
47
- QUICK_USERS_SEARCH: "/api/search/quickusers",
48
- DELETE_USER: "/api/search/quickusers",
49
- MOVE_USER: "/api/migration/webex/singlemigration/features/PERSON",
50
- AVAILABLE_DN_IN_RANGES: "/api/sites/:siteId/available-dn-in-ranges",
51
- DELETE_LINE: "/api/provision/:siteId/deleteLine/:pkid/:token",
52
- DISASSOCIATE_LINE: "/api/provision/:siteId/:deviceName/deleteLineAssociation/:linePkid/:token",
53
- CHECK_DELETE_LINE: "/api/provision/:siteId/checklinedeletion",
54
- ASSOCIATE_LINE: "/api/provision/:siteId/:deviceName/createLineAssociation/:token",
55
- CHECK_DESTINATION_NUMBER: "/api/provision/:siteId/check-dn",
56
- UPDATE_LINE_FIELDS: "/api/provision/:siteId/lineFields/:pkid/:token",
57
- UPDATE_DEVICE_FIELDS: "/api/provision/:siteId/deviceFields/:deviceName/:token"
58
- };
59
- const REGEX_PATTERN = {
60
- EMAIL: '^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))' +
61
- '@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,62}[a-zA-Z0-9])' +
62
- '?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?)*$'
63
- };
64
- const PAGINATION_DEFAULTS = {
65
- SIZE: 10,
66
- INDEX: 0
67
- };
68
- const PAGINATION_SIZE_OPTIONS = [
69
- 10,
70
- 50,
71
- 100,
72
- 500
73
- ];
74
- const CUCS_TO_IGNORE = [
75
- 189,
76
- 194,
77
- 191,
78
- 190
79
- ];
80
- const CUCMS_TO_IGNORE = [
81
- 249,
82
- 255,
83
- 251,
84
- 250
85
- ];
86
- const MAX_INTEGER = 2147483647;
87
-
88
- const getSavableData = (model, exclude) => {
89
- let result = Object.keys(model);
90
- if (exclude && exclude.length) {
91
- result = result.filter(key => !exclude.some(item => item === key));
92
- }
93
- return result.reduce((result, key) => {
94
- if (model[key] instanceof Array && model[key].length && model[key][0].getSavableData) {
95
- result[key] = model[key].map((item) => item.getSavableData());
96
- }
97
- else if (model[key] instanceof Object && model[key].getSavableData) {
98
- result[key] = model[key].getSavableData();
99
- }
100
- else {
101
- result[key] = model[key];
102
- }
103
- return result;
104
- }, {});
105
- };
106
-
107
- class SimplifiedUser {
108
- constructor(user) {
109
- if (user) {
110
- this.userid = user.userid;
111
- this.email = user.email;
112
- this.firstName = user.firstName;
113
- this.lastName = user.lastName;
114
- this.token = user.token;
115
- }
116
- this.initForm();
117
- }
118
- initForm() {
119
- const formBuilder = new FormBuilder();
120
- const formSettings = {
121
- userid: [{ value: this.userid || '', disabled: true }, [Validators.required, Validators.maxLength(128)]],
122
- email: [{ value: this.email || '', disabled: true }, [
123
- Validators.pattern(REGEX_PATTERN.EMAIL),
124
- Validators.required
125
- ]],
126
- firstName: [{ value: this.firstName || '', disabled: true }],
127
- lastName: [{ value: this.lastName || '', disabled: true }, Validators.required],
128
- };
129
- this.form = formBuilder.group(formSettings);
130
- }
131
- toggleEditMode() {
132
- this.editMode = !this.editMode;
133
- ['userid', 'email', 'firstName', 'lastName'].forEach(token => {
134
- if (this.editMode) {
135
- this.form.get(token)?.enable();
136
- }
137
- else {
138
- this.form.get(token)?.disable();
139
- }
140
- });
141
- }
142
- getSavableData() {
143
- const excludedFields = ['form', 'editMode', 'viewMode', 'token', 'hasModifiedCache'];
144
- return getSavableData(this, excludedFields);
145
- }
146
- equal(userToCompare) {
147
- if (!userToCompare) {
148
- return false;
149
- }
150
- return JSON.stringify(this.getSavableData()) === JSON.stringify(userToCompare.getSavableData());
151
- }
152
- }
153
-
154
- class UtilsService {
155
- static sortSortArrayByProperty(array, sortBy) {
156
- if (!array) {
157
- return null;
158
- }
159
- return array.sort((a, b) => {
160
- if (!a[sortBy] && !b[sortBy]) {
161
- return 0;
162
- }
163
- if (a[sortBy] && !b[sortBy]) {
164
- return 1;
165
- }
166
- if (!a[sortBy] && b[sortBy]) {
167
- return -1;
168
- }
169
- const positionA = a[sortBy];
170
- const positionB = b[sortBy];
171
- return (positionA < positionB) ? -1 : (positionA > positionB) ? 1 : 0;
172
- });
173
- }
174
- static diff(origObject, updatedObj, path, keysToIgnore) {
175
- let result = [];
176
- if (Object.is(origObject, updatedObj)) {
177
- return undefined;
178
- }
179
- if (!updatedObj || typeof updatedObj !== 'object') {
180
- return updatedObj;
181
- }
182
- const concat = Array.from(new Set([...Object.keys(origObject || {}), ...Object.keys(updatedObj || {})]));
183
- const filter = keysToIgnore ? concat.filter(key => !keysToIgnore.includes(key)) : concat;
184
- filter
185
- .forEach(key => {
186
- if (typeof updatedObj[key] === 'object' && typeof origObject[key] === 'object') {
187
- if (UtilsService.differs(updatedObj[key], origObject[key])) {
188
- const newPath = `${path}${path ? '.' : ''}${key}`;
189
- const values = UtilsService.diff(origObject[key], updatedObj[key], newPath, keysToIgnore);
190
- if (values !== undefined) {
191
- result = [...result, ...values];
192
- }
193
- }
194
- }
195
- else if (updatedObj && !origObject || updatedObj[key] !== origObject[key] && !Object.is(origObject[key], updatedObj[key])) {
196
- const value = updatedObj ? UtilsService.formatIfEmpty(updatedObj[key]) : null;
197
- result.push(`${path}${path ? '.' : ''}${key}=${value}`);
198
- }
199
- });
200
- return result;
201
- }
202
- static formatIfEmpty(value) {
203
- if (value) {
204
- return value;
205
- }
206
- switch (typeof value) {
207
- case 'boolean':
208
- return value;
209
- case 'string':
210
- return '';
211
- default:
212
- return null;
213
- }
214
- }
215
- static differs(obj1, obj2) {
216
- return JSON.stringify(obj1) !== JSON.stringify(obj2);
217
- }
218
- }
219
- UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
220
- UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService });
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, decorators: [{
222
- type: Injectable
223
- }] });
224
-
225
- class APIService {
226
- constructor(httpClient) {
227
- this.httpClient = httpClient;
228
- this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
229
- }
230
- fetch(url, params = {}, cache) {
231
- const headers = this.getHeaders(cache);
232
- return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
233
- }
234
- post(url, body, params = {}) {
235
- body = body || null;
236
- const headers = this.getHeaders();
237
- return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
238
- }
239
- // use when response extended data is necessary:
240
- postExtended(url, body = null, params = {}, headers = {}) {
241
- headers = headers || this.getHeaders();
242
- return this.httpClient.post(this.apiUrl + url, body, {
243
- headers,
244
- observe: 'response',
245
- params: this.prepareEncodedParams(params)
246
- });
247
- }
248
- put(url, body = null, params = {}) {
249
- const headers = this.getHeaders();
250
- return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
251
- }
252
- delete(url, params = {}) {
253
- const headers = this.getHeaders();
254
- return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
255
- }
256
- fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
257
- const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
258
- const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
259
- return this.fetch(url, params, cache);
260
- }
261
- prepareEncodedParams(params) {
262
- const result = {};
263
- if (!params) {
264
- return {};
265
- }
266
- for (const key of Object.keys(params)) {
267
- if (params[key]) {
268
- const stringParam = params[key].toString();
269
- result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
270
- }
271
- }
272
- return result;
273
- }
274
- getHeaders(cache) {
275
- let headers = new HttpHeaders();
276
- if (cache) {
277
- headers = headers.append('_Cache', 'true ');
278
- }
279
- const token = this.token || this.getParameterByName('token');
280
- headers = headers.append('Authorization', 'Bearer ' + token);
281
- return headers;
282
- }
283
- getParameterByName(name, url = window.location.href) {
284
- name = name.replace(/[\[\]]/g, '\\$&');
285
- var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
286
- if (!results)
287
- return null;
288
- if (!results[2])
289
- return '';
290
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
291
- }
292
- }
293
- APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
294
- APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService });
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
296
- type: Injectable
297
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
298
-
299
- class ApiWebexService extends APIService {
300
- constructor(httpClient) {
301
- super(httpClient);
302
- //this.apiUrl = window.location.protocol + "//"+ window.location.hostname + environment.apiAuthUrl;
303
- this.apiUrl = 'https://webex.car-west.net/webex';
304
- }
305
- }
306
- ApiWebexService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
307
- ApiWebexService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService });
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, decorators: [{
309
- type: Injectable
310
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
311
-
312
- class UserService {
313
- constructor(apiService, apiWebexService) {
314
- this.apiService = apiService;
315
- this.apiWebexService = apiWebexService;
316
- this.siteId = -1;
317
- this.userId = '';
318
- this.userIdExistPending = false;
319
- this.hasExistedUserId = false;
320
- }
321
- ngOnInit() {
322
- console.log(this.siteId);
323
- }
324
- fetchUserToken(siteId, userId) {
325
- this.siteId = siteId;
326
- this.userId = userId;
327
- return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
328
- .pipe(map((result) => {
329
- const token = Object.keys(result)[0];
330
- this.setSimplifiedUser(Object.values(result)[0], token);
331
- }));
332
- // .pipe(this.handleError(false, true));
333
- }
334
- updateUserFields(body) {
335
- if (!this.userId || !this.siteId || !this.user?.token) {
336
- return;
337
- }
338
- return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
339
- // .pipe(this.handleError(false, true));
340
- }
341
- moveUser(customerId, user) {
342
- // return new Observable<boolean>(observer => {
343
- // setTimeout(() => {
344
- // observer.next(true);
345
- //
346
- // }, 80000);
347
- // });
348
- return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
349
- // .pipe(this.handleError(true, true));
350
- }
351
- getMoveUserBody(customerId, user) {
352
- return {
353
- customerId: customerId,
354
- entities: {
355
- PERSON: [{ cucmId: user.cucmId, entityId: user.userid }]
356
- }
357
- };
358
- }
359
- deleteUser(siteId, userId) {
360
- return this.apiService.delete(API.DELETE_USER.replace(':siteId', String(siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))));
361
- // .pipe(this.handleError(true, true));
362
- }
363
- fetchUserById(id) {
364
- this.userIdExistPending = true;
365
- return this.apiService.fetch(API.USER_BY_ID.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))))
366
- .pipe(map(result => {
367
- this.userIdExistPending = false;
368
- return result;
369
- }));
370
- }
371
- persistCacheChanges() {
372
- const params = {
373
- excludeDeviceExtraOptions: true
374
- };
375
- return this.processUserChangesToCache()
376
- .pipe(map((result) => {
377
- return this.apiService.post(API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), {}, params)
378
- .subscribe(() => {
379
- });
380
- // .pipe(map((user) => {
381
- // // this.setUser(user, false, this.user.token);
382
- // this.user.hasModifiedCache = false;
383
- // }))
384
- // .pipe(this.handleError(true, true));
385
- }));
386
- }
387
- processUserChangesToCache() {
388
- const calls = [];
389
- const body = UtilsService.diff(this.originUser.getSavableData(), this.user.getSavableData(), 'user');
390
- if (body) {
391
- calls.push(this.updateUserFields(body));
392
- }
393
- if (!calls?.length) {
394
- return of(this.user);
395
- }
396
- return forkJoin(calls)
397
- .pipe(map((responses) => {
398
- // ApiUserResponse
399
- this.handleSaveUserResponse(responses);
400
- }));
401
- // .pipe(this.handleError(false, true));
402
- }
403
- hasUnsavedChanges() {
404
- return !this.user.equal(this.originUser);
405
- }
406
- setSimplifiedUser(user, token) {
407
- this.user = new SimplifiedUser(user);
408
- const copiedUser = JSON.parse(JSON.stringify(user));
409
- this.originUser = new SimplifiedUser(copiedUser);
410
- this.user.token = this.user.token || token;
411
- this.originUser.token = this.originUser.token || token;
412
- }
413
- handleSaveUserResponse(responses) {
414
- if (!responses?.length) {
415
- return;
416
- }
417
- for (let len = responses.length, i = len - 1; i >= 0; i--) {
418
- if (responses[i] && responses[i].currentUpdatedUser) {
419
- // this.setUser(responses[i].currentUpdatedUser, false, this.user.token);
420
- this.user.hasModifiedCache = true;
421
- return;
422
- }
423
- }
424
- }
425
- }
426
- 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 });
427
- UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService });
428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
429
- type: Injectable
430
- }], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
431
-
432
- const TTL_DEFAULT = 30000;
433
- const TTL_LONG_DEFAULT = 45000;
434
- var NotificationType;
435
- (function (NotificationType) {
436
- NotificationType["info"] = "info";
437
- NotificationType["error"] = "error";
438
- NotificationType["success"] = "success";
439
- NotificationType["warning"] = "warning";
440
- })(NotificationType || (NotificationType = {}));
441
- class Notification {
442
- constructor(data) {
443
- this.ttl = TTL_DEFAULT;
444
- Object.assign(this, data || {});
445
- if (this.ttl === undefined) {
446
- this.ttl = this.message && this.message.length && this.message.length < 80 ? TTL_DEFAULT : TTL_LONG_DEFAULT;
447
- }
448
- }
449
- isInfo() {
450
- return this.type === NotificationType.info;
451
- }
452
- isError() {
453
- return this.type === NotificationType.error;
454
- }
455
- isSuccess() {
456
- return this.type === NotificationType.success;
457
- }
458
- isWarning() {
459
- return this.type === NotificationType.warning;
460
- }
461
- }
462
-
463
- const SUCCESS_TIME = 5000;
464
- const INACTIVE_SESSION_MESSAGE = 'Your session was lost due to inactivity. Please login again';
465
- const INACTIVE_SESSION = 'SESSION_INACTIVE';
466
- class NotificationService {
467
- constructor() {
468
- this.listChange = new Subject();
469
- this.max = 0;
470
- this.list = [];
471
- }
472
- error(message, ttl) {
473
- this.notify('error', message, ttl);
474
- }
475
- success(message, ttl) {
476
- this.notify('success', message, (!ttl) ? SUCCESS_TIME : ttl);
477
- }
478
- warning(message, ttl) {
479
- this.notify('warning', message, ttl);
480
- }
481
- info(message, ttl) {
482
- this.notify('info', message, ttl);
483
- }
484
- notify(type, message, ttl) {
485
- const found = this.list.find((n) => n.message === message);
486
- if (found) {
487
- this.remove(found);
488
- }
489
- const notification = new Notification({
490
- id: ++this.max,
491
- type, message, ttl
492
- });
493
- if (notification.ttl > 0) {
494
- notification.timerId = setTimeout(() => this.remove(notification, true), notification.ttl);
495
- }
496
- this.list.push(notification);
497
- this.listChange.next(this.list);
498
- }
499
- remove(notification, auto) {
500
- if (!auto && notification.timerId) {
501
- // clear timeout in case of manual remove
502
- clearInterval(notification.timerId);
503
- }
504
- this.list = this.list.filter(n => n.id !== notification.id);
505
- this.listChange.next(this.list);
506
- }
507
- removeInactiveSessionError() {
508
- if (!this.list || !this.list.length) {
509
- return;
510
- }
511
- this.list = this.list.filter(n => n.message !== INACTIVE_SESSION_MESSAGE && n.message !== INACTIVE_SESSION);
512
- this.listChange.next(this.list);
513
- }
514
- }
515
- NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
516
- NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService });
517
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, decorators: [{
518
- type: Injectable
519
- }], ctorParameters: function () { return []; } });
520
-
521
- class ListUser {
522
- constructor(user, roleName) {
523
- this.devices = [];
524
- this.deviceProfiles = [];
525
- if (user) {
526
- Object.assign(this, user);
527
- }
528
- if (roleName) {
529
- this.roleName = roleName;
530
- }
531
- }
532
- }
533
-
534
- class RemoveKynFromIBMService {
535
- constructor() {
536
- }
537
- removeCUCMS(date, customerId) {
538
- if (customerId === 8) {
539
- return date.filter((val) => !CUCMS_TO_IGNORE.includes(Math.round(val.cucmId)));
540
- }
541
- return date;
542
- }
543
- removeCUCS(date, customerId) {
544
- if (customerId === 8) {
545
- return date.filter((val) => !CUCS_TO_IGNORE.includes(Math.round(val.cucId)));
546
- }
547
- return date;
548
- }
549
- }
550
- RemoveKynFromIBMService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
551
- RemoveKynFromIBMService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService });
552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, decorators: [{
553
- type: Injectable
554
- }], ctorParameters: function () { return []; } });
555
-
556
- class UsersSearchService {
557
- constructor(apiService, webexApiService, removeKynFromIBMService) {
558
- this.apiService = apiService;
559
- this.webexApiService = webexApiService;
560
- this.removeKynFromIBMService = removeKynFromIBMService;
561
- this.siteId = -1;
562
- this.userId = '';
563
- this.userIdExistPending = false;
564
- this.hasExistedUserId = false;
565
- this.pageSize = PAGINATION_DEFAULTS.SIZE;
566
- this.pageIndex = PAGINATION_DEFAULTS.SIZE;
567
- this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
568
- this.foundUsers$ = new BehaviorSubject(null);
569
- }
570
- getPagination() {
571
- return {
572
- total: this.total,
573
- pageSizeOptions: this.pageSizeOptions,
574
- pageSize: this.pageSize,
575
- pageIndex: this.pageIndex
576
- };
577
- }
578
- setDefaultValues() {
579
- this.total = 0;
580
- this.pageSize = PAGINATION_DEFAULTS.SIZE;
581
- this.pageIndex = PAGINATION_DEFAULTS.INDEX;
582
- this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
583
- }
584
- quickRegularUsersSearch(searchParams, isMigratedUsersOnly, pageSize) {
585
- console.log('searchParams = ', searchParams);
586
- this.searchParams = searchParams || { customerid: this.customerId, siteid: this.siteId };
587
- return this.apiService.fetchPagination(API.QUICK_USERS_SEARCH, this.pageSize, pageSize || this.pageIndex, this.searchParams)
588
- .pipe(map((res) => {
589
- // this.totals = this.totals || {};
590
- // this.totals['users'] = res.total;
591
- // this.foundUsers$.next(this.removeKynFromIBMService.removeCUCMS(users, this.customerId));
592
- if (!isMigratedUsersOnly) {
593
- const users = res.pageData && res.pageData.length ? res.pageData
594
- .map(user => new ListUser(user, 'Dedicated Instance Calling user')) : [];
595
- if (this.migratedUsersIds?.length) {
596
- this.setMigratedPropToUsers(users);
597
- }
598
- this.total = res.total;
599
- this.foundUsers$.next(users);
600
- }
601
- else {
602
- this.migratedUsersIds = res.pageData && res.pageData.length ? res.pageData
603
- .map(user => user.userid) : [];
604
- }
605
- }));
606
- // .pipe(this.handleError(true));
607
- }
608
- quickWebexUsersSearch(searchParams, isMigratedUsersOnly, pageSize) {
609
- this.searchParams = searchParams || { customerid: this.customerId, siteid: this.siteId };
610
- return this.webexApiService.fetchPagination(API.QUICK_USERS_SEARCH, this.pageSize, pageSize || this.pageIndex, this.searchParams)
611
- .pipe(map((res) => {
612
- if (!isMigratedUsersOnly) {
613
- const users = res.pageData && res.pageData.length ? res.pageData
614
- .map(user => new ListUser(user, 'Dedicated Instance Calling user')) : [];
615
- if (this.migratedUsersIds?.length) {
616
- this.setMigratedPropToUsers(users);
617
- }
618
- this.total = res.total;
619
- this.foundUsers$.next(users);
620
- }
621
- else {
622
- this.migratedUsersIds = res.pageData && res.pageData.length ? res.pageData
623
- .map(user => user.userid) : [];
624
- }
625
- }));
626
- // .pipe(this.handleError(true));
627
- }
628
- setMigratedPropToUsers(users) {
629
- users.forEach((user) => {
630
- if (!this.migratedUsersIds.includes(user.userid)) {
631
- user.isMigrated = false;
632
- }
633
- else {
634
- user.roleName = '';
635
- user.isMigrated = true;
636
- }
637
- });
638
- }
639
- }
640
- 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 });
641
- UsersSearchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService });
642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService, decorators: [{
643
- type: Injectable
644
- }], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }, { type: RemoveKynFromIBMService }]; } });
645
-
646
- class PaginationComponent {
647
- constructor() {
648
- this.pageEmitter = new EventEmitter();
649
- this.pageNumberChangeEmitter = new EventEmitter();
650
- this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
651
- }
652
- ngOnInit() {
653
- }
654
- pageEvent(event) {
655
- this.pageEmitter.emit(event);
656
- }
657
- changePerPageNumber(event) {
658
- this.pageNumberChangeEmitter.emit(event.value);
659
- }
660
- }
661
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
662
- 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\">\n <div class=\"page-indexes-box\">\n <mat-paginator\n [id]=\"'commonPagination'\"\n [hidePageSize]=\"true\"\n [length]=\"pagination.total\"\n [pageIndex]=\"pagination.pageIndex\"\n [pageSize]=\"pagination.pageSize\"\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\n (page)=\"pageEvent($event)\">\n </mat-paginator>\n <mat-spinner class=\"length-spinner\" [diameter]=\"20\" mode=\"indeterminate\" *ngIf=\"lengthPending\">\n </mat-spinner>\n </div>\n\n <div class=\"flex-box per-page-block\" *ngIf=\"showPageSizeOptions\">\n <div class=\"item_per_page\">Items per page:</div>\n <div class=\"select-box select-page-size\">\n <mat-select [(ngModel)]=\"pagination.pageSize\" (selectionChange)=\"changePerPageNumber($event)\" #page\n [id]=\"'commonPaginationSelect'\">\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\n </mat-select>\n </div>\n\n </div>\n</div>\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: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.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"] }] });
663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, decorators: [{
664
- type: Component,
665
- args: [{ selector: 'app-pagination', template: "<div class=\"flex-box pagination\">\n <div class=\"page-indexes-box\">\n <mat-paginator\n [id]=\"'commonPagination'\"\n [hidePageSize]=\"true\"\n [length]=\"pagination.total\"\n [pageIndex]=\"pagination.pageIndex\"\n [pageSize]=\"pagination.pageSize\"\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\n (page)=\"pageEvent($event)\">\n </mat-paginator>\n <mat-spinner class=\"length-spinner\" [diameter]=\"20\" mode=\"indeterminate\" *ngIf=\"lengthPending\">\n </mat-spinner>\n </div>\n\n <div class=\"flex-box per-page-block\" *ngIf=\"showPageSizeOptions\">\n <div class=\"item_per_page\">Items per page:</div>\n <div class=\"select-box select-page-size\">\n <mat-select [(ngModel)]=\"pagination.pageSize\" (selectionChange)=\"changePerPageNumber($event)\" #page\n [id]=\"'commonPaginationSelect'\">\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\n </mat-select>\n </div>\n\n </div>\n</div>\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"] }]
666
- }], ctorParameters: function () { return []; }, propDecorators: { pagination: [{
667
- type: Input
668
- }], showPageSizeOptions: [{
669
- type: Input
670
- }], showRefreshButton: [{
671
- type: Input
672
- }], lengthPending: [{
673
- type: Input
674
- }], pageEmitter: [{
675
- type: Output
676
- }], pageNumberChangeEmitter: [{
677
- type: Output
678
- }] } });
679
-
680
- class AppLoaderComponent {
681
- constructor() {
682
- }
683
- }
684
- AppLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
685
- 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]=\"120\"></mat-progress-spinner>\n</div>\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}\n"], dependencies: [{ kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None });
686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, decorators: [{
687
- type: Component,
688
- args: [{ selector: 'app-loader', encapsulation: ViewEncapsulation.None, template: "<div class=\"overlay\">\n <mat-progress-spinner\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"120\"></mat-progress-spinner>\n</div>\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}\n"] }]
689
- }], ctorParameters: function () { return []; } });
690
-
691
- const DISPLAYED_COLS = ['user-icon', 'name', 'email', 'status', 'role', 'actions'];
692
- const LOCAL_STORAGE = {
693
- USER_IN_MIGRATION: 'userIdInMigration'
694
- };
695
- class UsersListComponent {
696
- get form() {
697
- return this.userService?.user?.form;
698
- }
699
- constructor(userService, apiService, apiWebexService, notifications, usersSearchService) {
700
- this.userService = userService;
701
- this.apiService = apiService;
702
- this.apiWebexService = apiWebexService;
703
- this.notifications = notifications;
704
- this.usersSearchService = usersSearchService;
705
- this.openUser = new EventEmitter();
706
- this.userMoved = new EventEmitter();
707
- this.displayedColumns = DISPLAYED_COLS;
708
- }
709
- ngOnInit() {
710
- this.usersSearchService.setDefaultValues();
711
- this.usersSearchService.customerId = this.customerId;
712
- this.usersSearchService.siteId = this.siteId;
713
- this.apiService.token = this.token;
714
- this.apiWebexService.token = this.token;
715
- this.apiService.apiUrl = this.host + '/dcp';
716
- this.apiWebexService.apiUrl = this.host + '/webex';
717
- this.getMigratedUsers();
718
- this.searchSubscription = this.usersSearchService.foundUsers$
719
- .subscribe((users) => {
720
- this.initializeDataSource(users);
721
- });
722
- }
723
- pageNumberChangeEvent(perPageNumber) {
724
- this.usersSearchService.pageSize = perPageNumber;
725
- this.usersSearchService.pageIndex = 0;
726
- this.runSearch();
727
- }
728
- pageEvent(event) {
729
- this.usersSearchService.pageSize = event.pageSize;
730
- this.usersSearchService.pageIndex = event.pageIndex;
731
- this.runSearch();
732
- }
733
- onUserClick(user) {
734
- this.openUser.emit(user);
735
- }
736
- moveUser(user, index) {
737
- if (user && user.siteId && user.userid) {
738
- this.moveUserPending = true;
739
- this.moveInProgressUserId = user.userid;
740
- this.setStatusToUser(index, 'In Progress');
741
- localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
742
- const subscription = this.userService.moveUser(this.customerId, user)
743
- .subscribe(() => {
744
- this.removeUserInMigrationProgress();
745
- this.setStatusToUser(index, 'Migrated');
746
- this.usersSearchService.migratedUsersIds?.push(user.userid);
747
- }, () => {
748
- this.removeUserInMigrationProgress();
749
- this.setStatusToUser(index, 'Migration Error');
750
- });
751
- }
752
- }
753
- removeUserInMigrationProgress() {
754
- localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
755
- this.moveInProgressUserId = '';
756
- this.moveUserPending = false;
757
- }
758
- setStatusToUser(index, status) {
759
- if (this.users && this.users[index]) {
760
- this.users[index].status = status;
761
- if (status === 'Migrated') {
762
- this.users[index].roleName = '';
763
- this.users[index].isMigrated = true;
764
- }
765
- }
766
- this.dataSource = new MatTableDataSource(this.users);
767
- }
768
- initializeDataSource(users) {
769
- if (users?.length) {
770
- // this.setRandomUserRole(users);
771
- this.users = users;
772
- this.dataSource = new MatTableDataSource(users);
773
- }
774
- }
775
- setUserRole() {
776
- if (this.users?.length) {
777
- this.users.forEach(user => {
778
- if (!user.isMigrated) {
779
- user.roleName = 'Dedicated Instance Calling user';
780
- }
781
- });
782
- }
783
- }
784
- setRandomUserRole(users) {
785
- const max = Math.round(this.usersSearchService.pageSize - this.usersSearchService.pageSize / 4);
786
- const min = Math.round(this.usersSearchService.pageSize / 2);
787
- const randomAmount = Math.round(Math.random() * (max - min) + min);
788
- const indexes = this.getArrayOfRandomUserIndexes(randomAmount);
789
- indexes.forEach(index => {
790
- if (users[index]) {
791
- users[index].roleName = 'Dedicated Instance Calling user';
792
- }
793
- });
794
- }
795
- getArrayOfRandomUserIndexes(randomAmount) {
796
- const indexes = [];
797
- while (randomAmount > 0) {
798
- const index = Math.round(Math.random() * (this.usersSearchService.pageSize - 1));
799
- indexes.push(index);
800
- randomAmount--;
801
- }
802
- return indexes;
803
- }
804
- runSearch() {
805
- this.dataPending = true;
806
- this.usersSearchService.quickRegularUsersSearch()
807
- .subscribe(() => {
808
- this.setUserMigrationProgress();
809
- this.dataPending = false;
810
- }, () => {
811
- this.dataPending = false;
812
- this.notifications.error('The data can not be received');
813
- });
814
- }
815
- setUserMigrationProgress() {
816
- const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
817
- if (userIdInMigration) {
818
- const index = this.users.findIndex(user => user.userid === userIdInMigration);
819
- this.moveInProgressUserId = index > -1 ? this.users[index].userid : '';
820
- this.moveUserPending = index > -1;
821
- }
822
- }
823
- getMigratedUsers() {
824
- this.dataPending = true;
825
- const searchParams = {
826
- customerid: this.customerId,
827
- siteid: this.siteId,
828
- 'cloud-only': 'true'
829
- };
830
- this.usersSearchService.quickWebexUsersSearch(searchParams, true, MAX_INTEGER)
831
- .subscribe(() => {
832
- const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
833
- if (userIdInMigration && this.usersSearchService.migratedUsersIds.includes(userIdInMigration)) {
834
- localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
835
- }
836
- this.runSearch();
837
- }, () => {
838
- this.dataPending = false;
839
- this.notifications.error('The data can not be received');
840
- });
841
- }
842
- }
843
- 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 }], target: i0.ɵɵFactoryTarget.Component });
844
- 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" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\n<app-pagination\n [pagination]=\"usersSearchService.getPagination()\"\n [showPageSizeOptions]=\"true\"\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\n (pageEmitter)=\"pageEvent($event)\">\n</app-pagination>\n\n<table class=\"webex-table\" mat-table *ngIf=\"users?.length\" #table [dataSource]=\"dataSource\">\n\n <ng-container matColumnDef=\"user-icon\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n (click)=\"onUserClick(user)\">\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">First / Last Name</th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n (click)=\"onUserClick(user)\"> {{ user.firstName }} {{ user.lastName }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\n <td class=\"user-site\" [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">\n {{ user.email }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Status</th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n (click)=\"onUserClick(user)\">\n <span class=\"icon-user-status icon-user-status-active\"></span>{{user.status || user.webexUUID ? 'Migrated' : 'Active'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user, let i = index\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\">\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid\"></mat-progress-spinner>\n <button *ngIf=\"!(moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid)\"\n class=\"button-action-dot\" mat-icon-button [matMenuTriggerFor]=\"menu\">\n <div class=\"icon-actions-dots\">\n <span class=\"icon-dot\">.</span>\n <span class=\"icon-dot\">.</span>\n <span class=\"icon-dot\">.</span>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\n <button mat-menu-item (click)=\"moveUser(user, i)\">Move User</button>\n <button mat-menu-item [disabled]=\"true\">Deactivate User</button>\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\n </mat-menu>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"role\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Administrator Role</th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">{{ user.roleName || '' }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";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{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{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}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}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}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!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-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;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:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#000;font-size:14px}.webex-table tr:hover td:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.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,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}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-paginator{background:transparent!important}::ng-deep .mat-paginator-container{min-height:30px!important}::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}::ng-deep .pagination{font-size:13px;color:#0000008a}::ng-deep .per-page-block{display:flex;line-height:42px!important}::ng-deep .item_per_page{line-height:42px!important}::ng-deep .select-page-size{line-height:42px!important}::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}::ng-deep mat-progress-spinner.field-spinner{position:relative;margin:-20px auto auto}::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}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.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: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.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" }] });
845
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, decorators: [{
846
- type: Component,
847
- args: [{ selector: 'app-users-list', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\n<app-pagination\n [pagination]=\"usersSearchService.getPagination()\"\n [showPageSizeOptions]=\"true\"\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\n (pageEmitter)=\"pageEvent($event)\">\n</app-pagination>\n\n<table class=\"webex-table\" mat-table *ngIf=\"users?.length\" #table [dataSource]=\"dataSource\">\n\n <ng-container matColumnDef=\"user-icon\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n (click)=\"onUserClick(user)\">\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">First / Last Name</th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n (click)=\"onUserClick(user)\"> {{ user.firstName }} {{ user.lastName }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\n <td class=\"user-site\" [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">\n {{ user.email }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Status</th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\n (click)=\"onUserClick(user)\">\n <span class=\"icon-user-status icon-user-status-active\"></span>{{user.status || user.webexUUID ? 'Migrated' : 'Active'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user, let i = index\"\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\">\n <mat-progress-spinner class=\"field-spinner\"\n [diameter]=\"20\"\n mode=\"indeterminate\"\n *ngIf=\"moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid\"></mat-progress-spinner>\n <button *ngIf=\"!(moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid)\"\n class=\"button-action-dot\" mat-icon-button [matMenuTriggerFor]=\"menu\">\n <div class=\"icon-actions-dots\">\n <span class=\"icon-dot\">.</span>\n <span class=\"icon-dot\">.</span>\n <span class=\"icon-dot\">.</span>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\n <button mat-menu-item (click)=\"moveUser(user, i)\">Move User</button>\n <button mat-menu-item [disabled]=\"true\">Deactivate User</button>\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\n </mat-menu>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"role\">\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Administrator Role</th>\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">{{ user.roleName || '' }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";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{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{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}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}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}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!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-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;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:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#000;font-size:14px}.webex-table tr:hover td:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.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,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}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-paginator{background:transparent!important}::ng-deep .mat-paginator-container{min-height:30px!important}::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}::ng-deep .pagination{font-size:13px;color:#0000008a}::ng-deep .per-page-block{display:flex;line-height:42px!important}::ng-deep .item_per_page{line-height:42px!important}::ng-deep .select-page-size{line-height:42px!important}::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}::ng-deep mat-progress-spinner.field-spinner{position:relative;margin:-20px auto auto}::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}\n"] }]
848
- }], ctorParameters: function () { return [{ type: UserService }, { type: APIService }, { type: ApiWebexService }, { type: NotificationService }, { type: UsersSearchService }]; }, propDecorators: { token: [{
849
- type: Input
850
- }], customerId: [{
851
- type: Input
852
- }], siteId: [{
853
- type: Input
854
- }], openUser: [{
855
- type: Output
856
- }], userMoved: [{
857
- type: Output
858
- }], host: [{
859
- type: Input
860
- }] } });
861
-
862
- class EventsCommunicationService {
863
- constructor() {
864
- this.onSuccessfulLoginEvent = new Subject();
865
- }
866
- }
867
- EventsCommunicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
868
- EventsCommunicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService });
869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, decorators: [{
870
- type: Injectable
871
- }], ctorParameters: function () { return []; } });
872
-
873
- class MaterialModule {
874
- }
875
- MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
876
- MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [DragDropModule,
877
- MatButtonModule,
878
- MatListModule,
879
- MatProgressSpinnerModule,
880
- MatExpansionModule,
881
- MatInputModule,
882
- MatInputModule,
883
- MatListModule,
884
- MatTreeModule,
885
- MatTreeModule,
886
- MatNativeDateModule,
887
- MatDatepickerModule,
888
- MatTooltipModule,
889
- MatAutocompleteModule,
890
- MatChipsModule,
891
- MatSidenavModule,
892
- MatFormFieldModule,
893
- MatStepperModule,
894
- MatTabsModule,
895
- MatCardModule,
896
- MatSelectModule,
897
- MatCheckboxModule,
898
- MatSlideToggleModule,
899
- MatTableModule,
900
- MatPaginatorModule,
901
- MatMenuModule], exports: [DragDropModule,
902
- MatButtonModule,
903
- MatListModule,
904
- MatProgressSpinnerModule,
905
- MatExpansionModule,
906
- MatInputModule,
907
- MatInputModule,
908
- MatListModule,
909
- MatTreeModule,
910
- MatTreeModule,
911
- MatNativeDateModule,
912
- MatDatepickerModule,
913
- MatTooltipModule,
914
- MatAutocompleteModule,
915
- MatChipsModule,
916
- MatSidenavModule,
917
- MatFormFieldModule,
918
- MatStepperModule,
919
- MatTabsModule,
920
- MatCardModule,
921
- MatCheckboxModule,
922
- MatSelectModule,
923
- MatSlideToggleModule,
924
- MatProgressSpinnerModule,
925
- MatTableModule,
926
- MatPaginatorModule,
927
- MatMenuModule] });
928
- MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [DragDropModule,
929
- MatButtonModule,
930
- MatListModule,
931
- MatProgressSpinnerModule,
932
- MatExpansionModule,
933
- MatInputModule,
934
- MatInputModule,
935
- MatListModule,
936
- MatTreeModule,
937
- MatTreeModule,
938
- MatNativeDateModule,
939
- MatDatepickerModule,
940
- MatTooltipModule,
941
- MatAutocompleteModule,
942
- MatChipsModule,
943
- MatSidenavModule,
944
- MatFormFieldModule,
945
- MatStepperModule,
946
- MatTabsModule,
947
- MatCardModule,
948
- MatSelectModule,
949
- MatCheckboxModule,
950
- MatSlideToggleModule,
951
- MatTableModule,
952
- MatPaginatorModule,
953
- MatMenuModule, DragDropModule,
954
- MatButtonModule,
955
- MatListModule,
956
- MatProgressSpinnerModule,
957
- MatExpansionModule,
958
- MatInputModule,
959
- MatInputModule,
960
- MatListModule,
961
- MatTreeModule,
962
- MatTreeModule,
963
- MatNativeDateModule,
964
- MatDatepickerModule,
965
- MatTooltipModule,
966
- MatAutocompleteModule,
967
- MatChipsModule,
968
- MatSidenavModule,
969
- MatFormFieldModule,
970
- MatStepperModule,
971
- MatTabsModule,
972
- MatCardModule,
973
- MatCheckboxModule,
974
- MatSelectModule,
975
- MatSlideToggleModule,
976
- MatProgressSpinnerModule,
977
- MatTableModule,
978
- MatPaginatorModule,
979
- MatMenuModule] });
980
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, decorators: [{
981
- type: NgModule,
982
- args: [{
983
- imports: [
984
- DragDropModule,
985
- MatButtonModule,
986
- MatListModule,
987
- MatProgressSpinnerModule,
988
- MatExpansionModule,
989
- MatInputModule,
990
- MatInputModule,
991
- MatListModule,
992
- MatTreeModule,
993
- MatTreeModule,
994
- MatNativeDateModule,
995
- MatDatepickerModule,
996
- MatTooltipModule,
997
- MatAutocompleteModule,
998
- MatChipsModule,
999
- MatSidenavModule,
1000
- MatFormFieldModule,
1001
- MatStepperModule,
1002
- MatTabsModule,
1003
- MatCardModule,
1004
- MatSelectModule,
1005
- MatCheckboxModule,
1006
- MatSlideToggleModule,
1007
- MatTableModule,
1008
- MatPaginatorModule,
1009
- MatMenuModule
1010
- ],
1011
- exports: [
1012
- DragDropModule,
1013
- MatButtonModule,
1014
- MatListModule,
1015
- MatProgressSpinnerModule,
1016
- MatExpansionModule,
1017
- MatInputModule,
1018
- MatInputModule,
1019
- MatListModule,
1020
- MatTreeModule,
1021
- MatTreeModule,
1022
- MatNativeDateModule,
1023
- MatDatepickerModule,
1024
- MatTooltipModule,
1025
- MatAutocompleteModule,
1026
- MatChipsModule,
1027
- MatSidenavModule,
1028
- MatFormFieldModule,
1029
- MatStepperModule,
1030
- MatTabsModule,
1031
- MatCardModule,
1032
- MatCheckboxModule,
1033
- MatSelectModule,
1034
- MatSlideToggleModule,
1035
- MatProgressSpinnerModule,
1036
- MatTableModule,
1037
- MatPaginatorModule,
1038
- MatMenuModule
1039
- ],
1040
- }]
1041
- }] });
1042
-
1043
- class UsersListModule {
1044
- }
1045
- UsersListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1046
- UsersListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, declarations: [UsersListComponent, PaginationComponent, AppLoaderComponent], imports: [BrowserModule,
1047
- FormsModule,
1048
- ReactiveFormsModule,
1049
- HttpClientModule,
1050
- MaterialModule], exports: [UsersListComponent] });
1051
- UsersListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, providers: [
1052
- UserService,
1053
- APIService,
1054
- EventsCommunicationService,
1055
- UsersSearchService,
1056
- NotificationService,
1057
- RemoveKynFromIBMService,
1058
- ApiWebexService
1059
- ], imports: [BrowserModule,
1060
- FormsModule,
1061
- ReactiveFormsModule,
1062
- HttpClientModule,
1063
- MaterialModule] });
1064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, decorators: [{
1065
- type: NgModule,
1066
- args: [{
1067
- declarations: [UsersListComponent, PaginationComponent, AppLoaderComponent],
1068
- imports: [
1069
- BrowserModule,
1070
- FormsModule,
1071
- ReactiveFormsModule,
1072
- HttpClientModule,
1073
- MaterialModule
1074
- ],
1075
- providers: [
1076
- UserService,
1077
- APIService,
1078
- EventsCommunicationService,
1079
- UsersSearchService,
1080
- NotificationService,
1081
- RemoveKynFromIBMService,
1082
- ApiWebexService
1083
- ],
1084
- exports: [UsersListComponent]
1085
- }]
1086
- }] });
1087
-
1088
- /**
1089
- * Generated bundle index. Do not edit.
1090
- */
1091
-
1092
- export { APIService, EventsCommunicationService, NotificationService, RemoveKynFromIBMService, UserService, UsersListComponent, UsersListModule, UsersSearchService };
1093
- //# sourceMappingURL=tuki-io-tuki-widgets-users-list.mjs.map