@tuki-io/tuki-widgets 0.0.72 → 0.0.74

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 (350) hide show
  1. package/.editorconfig +16 -0
  2. package/.hintrc +14 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +25 -24
  7. package/angular.json +141 -0
  8. package/package.json +42 -7
  9. package/projects/tuki/widgets/README.md +24 -0
  10. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +26 -0
  11. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +3 -0
  12. package/{di2mt → projects/tuki/widgets/di2mt}/public-api.ts +1 -0
  13. package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/summary-card/summary-card.component.html +2 -2
  14. package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/summary-card/summary-card.component.scss +4 -1
  15. package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/table-filters/table-filters.component.html +3 -3
  16. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +244 -0
  17. package/{user-device-manage/src → projects/tuki/widgets/di2mt/shared/constants}/app.constants.ts +96 -96
  18. package/{di2mt → projects/tuki/widgets/di2mt}/shared/types/constants.ts +2 -1
  19. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +3 -0
  20. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +37 -0
  21. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +40 -0
  22. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +158 -0
  23. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +430 -0
  24. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +362 -0
  25. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +33 -0
  26. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +102 -0
  27. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +22 -0
  28. package/{di2mt → projects/tuki/widgets/di2mt}/widgets/user-upgrade/types/user-upgrade.ts +2 -1
  29. package/{di2mt → projects/tuki/widgets/di2mt}/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +68 -13
  30. package/{di2mt → projects/tuki/widgets/di2mt}/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +73 -3
  31. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +313 -0
  32. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +34 -0
  33. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +79 -0
  34. package/{karma.conf.js → projects/tuki/widgets/karma.conf.js} +44 -44
  35. package/projects/tuki/widgets/package.json +13 -0
  36. package/{src → projects/tuki/widgets/src}/lib/widgets.component.spec.ts +23 -23
  37. package/{src → projects/tuki/widgets/src}/lib/widgets.component.ts +20 -20
  38. package/{src → projects/tuki/widgets/src}/lib/widgets.module.ts +16 -16
  39. package/{src → projects/tuki/widgets/src}/lib/widgets.service.spec.ts +16 -16
  40. package/{src → projects/tuki/widgets/src}/lib/widgets.service.ts +9 -9
  41. package/{src → projects/tuki/widgets/src}/public-api.ts +7 -7
  42. package/{src → projects/tuki/widgets/src}/test.ts +27 -27
  43. package/{users-list/src/styles → projects/tuki/widgets}/styles.scss +572 -572
  44. package/{tsconfig.lib.json → projects/tuki/widgets/tsconfig.lib.json} +36 -36
  45. package/{tsconfig.lib.prod.json → projects/tuki/widgets/tsconfig.lib.prod.json} +10 -10
  46. package/{tsconfig.spec.json → projects/tuki/widgets/tsconfig.spec.json} +17 -17
  47. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/public-api.ts +8 -8
  48. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +96 -0
  49. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/arrow-left.svg +5 -5
  50. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/arrow-right.svg +5 -5
  51. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/close_icon_x.svg +3 -3
  52. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/delete_icon.svg +5 -5
  53. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/dragger-vertical-icon.svg +3 -3
  54. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/vartical_divider_icon.svg +3 -3
  55. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/device.ts +292 -292
  56. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-association-interface.ts +50 -50
  57. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-association.ts +177 -177
  58. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-call-info-display.ts +21 -21
  59. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/line-directory.ts +41 -41
  60. package/{users-list → projects/tuki/widgets/user-device-manage}/src/classes/line.ts +144 -144
  61. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/notification.ts +40 -39
  62. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/recording-options.ts +6 -6
  63. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/simplified-user.ts +169 -169
  64. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/site-defaults.ts +167 -167
  65. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/translation-pattern.ts +50 -50
  66. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/classes/types.ts +19 -19
  67. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/user-interface.ts +225 -225
  68. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/classes/user.ts +8 -8
  69. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/common-functions.ts +16 -16
  70. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/confirm-dialog/info-dialog.component.html +14 -14
  71. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/confirm-dialog/info-dialog.component.scss +80 -80
  72. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/confirm-dialog/info-dialog.component.ts +35 -35
  73. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -21
  74. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/associated-line-row/associated-line-row.component.scss +97 -97
  75. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -28
  76. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +5 -5
  77. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +19 -19
  78. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +13 -13
  79. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -6
  80. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -4
  81. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -63
  82. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line.component.html +241 -241
  83. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line.component.scss +500 -500
  84. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-associated-line/device-associated-line.component.ts +194 -194
  85. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/device-list/device-list.component.html +27 -27
  86. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-list/device-list.component.scss +131 -131
  87. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-list/device-list.component.ts +25 -25
  88. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-manage-widget.component.html +209 -209
  89. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-manage-widget.component.scss +502 -502
  90. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/device-manage-widget.component.ts +354 -354
  91. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/environments/environment.prod.ts +9 -9
  92. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/environments/environment.ts +10 -10
  93. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/interseptors/auth.interceptor.ts +35 -35
  94. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/lazy-loading-select/lazy-loading-select.component.html +50 -50
  95. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/lazy-loading-select/lazy-loading-select.component.scss +8 -8
  96. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/lazy-loading-select/lazy-loading-select.component.ts +81 -81
  97. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/material.module.ts +87 -87
  98. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/notifications/notification.component.html +33 -33
  99. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/notifications/notification.component.scss +84 -84
  100. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/notifications/notification.component.ts +46 -46
  101. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/removeKynFromIBM.service.ts +25 -25
  102. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/api.service.ts +87 -87
  103. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/common-functions.ts +17 -17
  104. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/device.service.ts +95 -95
  105. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/dns.service.ts +111 -111
  106. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/line.service.ts +89 -89
  107. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/notification.service.ts +68 -68
  108. package/{users-list → projects/tuki/widgets/user-device-manage}/src/services/removeKynFromIBM.service.ts +25 -25
  109. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/site-settings.service.ts +82 -82
  110. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/sorting-utils.service.ts +203 -203
  111. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/user.service.ts +283 -283
  112. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/utils.service.ts +87 -87
  113. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/services/validation.service.ts +829 -829
  114. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/styles/_variables.scss +90 -90
  115. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/styles/form.scss +231 -231
  116. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/styles/icons.scss +32 -32
  117. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/styles/styles.scss +110 -110
  118. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/styles/tables.scss +30 -30
  119. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/user-device-manage.module.ts +73 -73
  120. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/utils/app-loader/app-loader.component.html +6 -6
  121. package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/utils/app-loader/app-loader.component.scss +11 -11
  122. package/{user-manage → projects/tuki/widgets/user-device-manage}/src/utils/app-loader/app-loader.ts +13 -13
  123. package/{user-manage → projects/tuki/widgets/user-manage}/public-api.ts +6 -6
  124. package/{user-manage → projects/tuki/widgets/user-manage}/src/app.constants.ts +50 -50
  125. package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/arrow-left.svg +5 -5
  126. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/assets/icons/arrow-right.svg +5 -5
  127. package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/delete_icon.svg +5 -5
  128. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/assets/icons/dragger-vertical-icon.svg +3 -3
  129. package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/vartical_divider_icon.svg +3 -3
  130. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/device.ts +232 -232
  131. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line-association-interface.ts +43 -43
  132. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line-association.ts +161 -161
  133. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/classes/line-call-info-display.ts +21 -21
  134. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line-directory.ts +42 -42
  135. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/line.ts +144 -144
  136. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/classes/notification.ts +39 -40
  137. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/pagination.ts +1 -1
  138. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/recording-options.ts +6 -6
  139. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/simplified-user.ts +165 -165
  140. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/table-data.ts +6 -6
  141. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/translation-pattern.ts +49 -49
  142. package/{users-list → projects/tuki/widgets/user-manage}/src/classes/user-interface.ts +225 -225
  143. package/{user-manage → projects/tuki/widgets/user-manage}/src/classes/user-list.ts +42 -42
  144. package/{users-list → projects/tuki/widgets/user-manage}/src/classes/user.ts +8 -8
  145. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/common-functions.ts +16 -16
  146. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/device-list/device-list.component.html +27 -27
  147. package/{user-manage → projects/tuki/widgets/user-manage}/src/device-list/device-list.component.scss +131 -131
  148. package/{user-manage → projects/tuki/widgets/user-manage}/src/device-list/device-list.component.ts +25 -25
  149. package/{user-manage → projects/tuki/widgets/user-manage}/src/environments/environment.prod.ts +9 -9
  150. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/environments/environment.ts +10 -10
  151. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/interseptors/auth.interceptor.ts +35 -35
  152. package/{user-manage → projects/tuki/widgets/user-manage}/src/lazy-loading-select/lazy-loading-select.component.html +50 -50
  153. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/lazy-loading-select/lazy-loading-select.component.scss +8 -8
  154. package/{user-manage → projects/tuki/widgets/user-manage}/src/lazy-loading-select/lazy-loading-select.component.ts +81 -81
  155. package/{user-manage → projects/tuki/widgets/user-manage}/src/material.module.ts +85 -85
  156. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/notifications/notification.component.html +33 -33
  157. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/notifications/notification.component.scss +84 -84
  158. package/{user-manage → projects/tuki/widgets/user-manage}/src/notifications/notification.component.ts +46 -46
  159. package/{user-manage → projects/tuki/widgets/user-manage}/src/removeKynFromIBM.service.ts +25 -25
  160. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/api.service.ts +90 -90
  161. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/dns.service.ts +116 -116
  162. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/line.service.ts +31 -31
  163. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/notification.service.ts +68 -68
  164. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/services/removeKynFromIBM.service.ts +25 -25
  165. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/site-settings.service.ts +35 -35
  166. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/sorting-utils.service.ts +203 -203
  167. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/user.service.ts +242 -242
  168. package/{user-manage → projects/tuki/widgets/user-manage}/src/services/users-search.service.ts +59 -59
  169. package/{users-list/src/utils → projects/tuki/widgets/user-manage/src/services}/utils.service.ts +71 -71
  170. package/{user-manage → projects/tuki/widgets/user-manage}/src/styles/_variables.scss +90 -90
  171. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/styles/form.scss +231 -231
  172. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/styles/icons.scss +32 -32
  173. package/{user-manage → projects/tuki/widgets/user-manage}/src/styles/styles.scss +110 -110
  174. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/styles/tables.scss +30 -30
  175. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -10
  176. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling-extension/user-calling-extension.component.scss +429 -429
  177. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -63
  178. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling.component.html +32 -32
  179. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling.component.scss +444 -444
  180. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-calling/user-calling.component.ts +89 -89
  181. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-details/notification.service.ts +68 -68
  182. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-info/user-info.component.html +29 -29
  183. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-info/user-info.component.scss +64 -64
  184. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-info/user-info.component.ts +19 -19
  185. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage-widget.component.html +290 -290
  186. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage-widget.component.scss +463 -463
  187. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage-widget.component.ts +212 -212
  188. package/{user-manage → projects/tuki/widgets/user-manage}/src/user-manage.module.ts +63 -63
  189. package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/app-loader/app-loader.component.html +6 -6
  190. package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/app-loader/app-loader.component.scss +11 -11
  191. package/{user-device-manage → projects/tuki/widgets/user-manage}/src/utils/app-loader/app-loader.ts +13 -13
  192. package/{users-list → projects/tuki/widgets/user-manage}/src/utils/pagination/pagination.component.html +26 -26
  193. package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/pagination/pagination.component.scss +41 -41
  194. package/{user-manage → projects/tuki/widgets/user-manage}/src/utils/pagination/pagination.component.ts +41 -41
  195. package/{users-list → projects/tuki/widgets/users-list}/public-api.ts +8 -8
  196. package/{users-list → projects/tuki/widgets/users-list}/src/app.constants.ts +54 -54
  197. package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/close_icon_modal.svg +3 -3
  198. package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/move_user_to_another_location.svg +14 -14
  199. package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/white-close-icon.svg +3 -3
  200. package/{users-list → projects/tuki/widgets/users-list}/src/classes/app-location.ts +36 -36
  201. package/{users-list → projects/tuki/widgets/users-list}/src/classes/device.ts +225 -225
  202. package/{user-device-manage → projects/tuki/widgets/users-list}/src/classes/line.ts +144 -144
  203. package/{users-list → projects/tuki/widgets/users-list}/src/classes/move-user.ts +225 -225
  204. package/{users-list → projects/tuki/widgets/users-list}/src/classes/notification.ts +38 -38
  205. package/{users-list → projects/tuki/widgets/users-list}/src/classes/pagination.ts +18 -18
  206. package/{users-list → projects/tuki/widgets/users-list}/src/classes/simlified-user.ts +74 -74
  207. package/{users-list → projects/tuki/widgets/users-list}/src/classes/table-data.ts +6 -6
  208. package/{user-device-manage → projects/tuki/widgets/users-list}/src/classes/user-interface.ts +225 -225
  209. package/{users-list → projects/tuki/widgets/users-list}/src/classes/user-list.ts +47 -47
  210. package/{user-device-manage → projects/tuki/widgets/users-list}/src/classes/user.ts +8 -8
  211. package/{users-list → projects/tuki/widgets/users-list}/src/material.module.ts +94 -94
  212. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +37 -37
  213. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +129 -129
  214. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +46 -46
  215. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +31 -31
  216. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +20 -20
  217. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +26 -26
  218. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +222 -222
  219. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +239 -239
  220. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +206 -206
  221. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-wizard.component.html +12 -12
  222. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-wizard.component.scss +41 -41
  223. package/{users-list → projects/tuki/widgets/users-list}/src/move-user-wizard/move-user-wizard.component.ts +36 -36
  224. package/{users-list → projects/tuki/widgets/users-list}/src/services/api-webex.service.ts +14 -14
  225. package/{users-list → projects/tuki/widgets/users-list}/src/services/api.service.ts +90 -90
  226. package/{users-list → projects/tuki/widgets/users-list}/src/services/dns.service.ts +128 -128
  227. package/{users-list → projects/tuki/widgets/users-list}/src/services/events-communication.service.ts +11 -11
  228. package/{users-list → projects/tuki/widgets/users-list}/src/services/move-user.service.ts +59 -59
  229. package/{users-list → projects/tuki/widgets/users-list}/src/services/notification.service.ts +68 -68
  230. package/{user-manage → projects/tuki/widgets/users-list}/src/services/removeKynFromIBM.service.ts +25 -25
  231. package/{users-list → projects/tuki/widgets/users-list}/src/services/site-settings.service.ts +26 -26
  232. package/{users-list → projects/tuki/widgets/users-list}/src/services/user.service.ts +159 -159
  233. package/{users-list → projects/tuki/widgets/users-list}/src/services/users-search.service.ts +139 -137
  234. package/{styles.scss → projects/tuki/widgets/users-list/src/styles/styles.scss} +572 -572
  235. package/{users-list → projects/tuki/widgets/users-list}/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +15 -15
  236. package/{users-list → projects/tuki/widgets/users-list}/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +103 -103
  237. package/{users-list → projects/tuki/widgets/users-list}/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -35
  238. package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.html +86 -86
  239. package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.scss +572 -572
  240. package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.ts +312 -312
  241. package/{users-list → projects/tuki/widgets/users-list}/src/users-list.module.ts +63 -63
  242. package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.html +6 -6
  243. package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.scss +11 -11
  244. package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.ts +13 -13
  245. package/{users-list → projects/tuki/widgets/users-list}/src/utils/common-functions.ts +32 -32
  246. package/{users-list → projects/tuki/widgets/users-list}/src/utils/notifications/notification.component.html +33 -33
  247. package/{users-list → projects/tuki/widgets/users-list}/src/utils/notifications/notification.component.scss +84 -84
  248. package/{users-list → projects/tuki/widgets/users-list}/src/utils/notifications/notification.component.ts +46 -46
  249. package/{user-manage → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.html +26 -26
  250. package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.scss +41 -41
  251. package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.ts +41 -41
  252. package/{user-manage/src/services → projects/tuki/widgets/users-list/src/utils}/utils.service.ts +71 -71
  253. package/projects/widgets-playground/src/app/app.component.html +109 -0
  254. package/projects/widgets-playground/src/app/app.component.scss +15 -0
  255. package/projects/widgets-playground/src/app/app.component.spec.ts +31 -0
  256. package/projects/widgets-playground/src/app/app.component.ts +31 -0
  257. package/projects/widgets-playground/src/app/app.module.ts +43 -0
  258. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  259. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  260. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  261. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  262. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  263. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  264. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  265. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  266. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  267. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  268. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  269. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  270. package/projects/widgets-playground/src/favicon.ico +0 -0
  271. package/projects/widgets-playground/src/index.html +13 -0
  272. package/projects/widgets-playground/src/main.ts +7 -0
  273. package/projects/widgets-playground/src/styles.scss +23 -0
  274. package/projects/widgets-playground/tsconfig.app.json +14 -0
  275. package/projects/widgets-playground/tsconfig.spec.json +14 -0
  276. package/proxy.conf.js +23 -0
  277. package/tsconfig.json +46 -0
  278. package/di2mt/api/api.endpoints.ts +0 -20
  279. package/di2mt/shared/components/table-filters/table-filters.component.scss +0 -52
  280. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -92
  281. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -187
  282. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -205
  283. package/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -24
  284. package/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -45
  285. package/di2mt/widgets/site-upgrade/types/user-upgrade.ts +0 -15
  286. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -218
  287. package/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -24
  288. package/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -73
  289. /package/{di2mt → projects/tuki/widgets/di2mt}/README.md +0 -0
  290. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/already_upgraded.png +0 -0
  291. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/check2_icon.png +0 -0
  292. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/check_icon.png +0 -0
  293. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/expand_icon.png +0 -0
  294. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/issue_icon.png +0 -0
  295. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/menu_icon.png +0 -0
  296. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/ready_to_upgrade.png +0 -0
  297. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/search_icon.png +0 -0
  298. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/site.png +0 -0
  299. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/user.png +0 -0
  300. /package/{di2mt → projects/tuki/widgets/di2mt}/assets/icons/warning_icon.png +0 -0
  301. /package/{di2mt → projects/tuki/widgets/di2mt}/ng-package.json +0 -0
  302. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/card/card.component.html +0 -0
  303. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/card/card.component.scss +0 -0
  304. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/card/card.component.ts +0 -0
  305. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/chart-card/chart-card.component.html +0 -0
  306. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/chart-card/chart-card.component.scss +0 -0
  307. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/chart-card/chart-card.component.ts +0 -0
  308. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/index.ts +0 -0
  309. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/stat-card/stat-card.component.html +0 -0
  310. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/stat-card/stat-card.component.scss +0 -0
  311. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/stat-card/stat-card.component.ts +0 -0
  312. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/status-list-card/status-list-card.component.html +0 -0
  313. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/status-list-card/status-list-card.component.scss +0 -0
  314. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/status-list-card/status-list-card.component.ts +0 -0
  315. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/summary-card/summary-card.component.ts +0 -0
  316. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/components/table-filters/table-filters.component.ts +0 -0
  317. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/material.module.ts +0 -0
  318. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/services/api.service.ts +0 -0
  319. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/shared.module.ts +0 -0
  320. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/types/data-table.ts +0 -0
  321. /package/{di2mt → projects/tuki/widgets/di2mt}/shared/types/table/filter.ts +0 -0
  322. /package/{di2mt → projects/tuki/widgets/di2mt}/styles/tuki-widgets-theme.scss +0 -0
  323. /package/{di2mt → projects/tuki/widgets/di2mt}/styles/variables.scss +0 -0
  324. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -0
  325. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -0
  326. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -0
  327. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -0
  328. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  329. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -0
  330. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -0
  331. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  332. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -0
  333. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -0
  334. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -0
  335. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/types/upgrade-overview.ts +0 -0
  336. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/upgrade-overview.module.ts +0 -0
  337. /package/{di2mt → projects/tuki/widgets/di2mt}/widgets/upgrade-overview/upgrade-overview.service.ts +0 -0
  338. /package/{ng-package.json → projects/tuki/widgets/ng-package.json} +0 -0
  339. /package/{user-device-manage → projects/tuki/widgets/user-device-manage}/ng-package.json +0 -0
  340. /package/{user-device-manage → projects/tuki/widgets/user-device-manage}/src/assets/icons/icon_user.svg +0 -0
  341. /package/{user-manage → projects/tuki/widgets/user-manage}/ng-package.json +0 -0
  342. /package/{user-manage → projects/tuki/widgets/user-manage}/src/assets/icons/icon_user.svg +0 -0
  343. /package/{users-list → projects/tuki/widgets/users-list}/ng-package.json +0 -0
  344. /package/{users-list → projects/tuki/widgets/users-list}/src/assets/icons/icon_user.svg +0 -0
  345. /package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.css +0 -0
  346. /package/{users-list → projects/tuki/widgets/users-list}/src/users-list.component.css.map +0 -0
  347. /package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.css +0 -0
  348. /package/{users-list → projects/tuki/widgets/users-list}/src/utils/app-loader/app-loader.component.css.map +0 -0
  349. /package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.css +0 -0
  350. /package/{users-list → projects/tuki/widgets/users-list}/src/utils/pagination/pagination.component.css.map +0 -0
@@ -1,4 +1,74 @@
1
- @import "../../../styles/variables.scss";
1
+ @import url('https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900');
2
+ //@import '../../../../node_modules/font-awesome/scss/font-awesome';
3
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
4
+
5
+ .app-pagination {
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: stretch;
9
+
10
+ .page-indexes-box,
11
+ .per-page-block {
12
+ justify-self: center;
13
+ }
14
+
15
+ mat-select {
16
+ width: 100px;
17
+ }
18
+ }
19
+
20
+ .overlay {
21
+ position: fixed;
22
+ width: 100%;
23
+ height: 100%;
24
+ top: 0;
25
+ left: 0;
26
+ right: 0;
27
+ bottom: 0;
28
+ background-color: rgba(255, 255, 255, 0.4);
29
+ z-index: 200;
30
+ }
31
+ .mat-progress-spinner {
32
+ position: absolute;
33
+ top: 50%;
34
+ left: 50%;
35
+ margin-top: -20px;
36
+ margin-left: -25px;
37
+ width: 50px;
38
+ height: 40px;
39
+ text-align: center;
40
+ font-size: 10px;
41
+ }
42
+ .mat-progress-spinner-td {
43
+ position: relative;
44
+ }
45
+ .status-ready {
46
+ color: #1170CF;
47
+ }
48
+
49
+
50
+ ::ng-deep {
51
+ .mat-cell {
52
+ border-bottom: 1px solid #d6d6d6;
53
+ font-family: "Inter", sans-serif !important;
54
+ }
55
+ .mat-header-cell {
56
+ border-bottom: 1px solid #afafaf;
57
+ font-family: "Inter", sans-serif !important;
58
+ }
59
+ .progress-spinner-td {
60
+ position: relative;
61
+ }
62
+ #userUpgradeDataTable .mat-progress-spinner-td {
63
+
64
+ .mat-progress-spinner {
65
+ top: 28%;
66
+ left: 0;
67
+ margin: 0;
68
+ }
69
+ }
70
+
71
+ }
2
72
 
3
73
  .wrapper {
4
74
  display: flex;
@@ -15,7 +85,6 @@
15
85
  }
16
86
 
17
87
  .user-upgrade-table {
18
- font-family: $main-font;
19
88
  width: 100%;
20
89
  background: white;
21
90
  border-radius: 8px;
@@ -190,12 +259,13 @@
190
259
  gap: 1rem;
191
260
  }
192
261
 
193
- .action-wrapper {
262
+ ::ng-deep .action-wrapper {
194
263
  display: flex;
195
264
  flex: 1;
196
265
  align-items: center;
197
266
  justify-content: space-between;
198
267
  gap: 1rem;
268
+ color: #555555;
199
269
  }
200
270
 
201
271
  .upgrade-bulk-button {
@@ -0,0 +1,313 @@
1
+ import { SelectionModel } from "@angular/cdk/collections";
2
+ import { Component, OnInit, OnDestroy, inject, Input, ViewEncapsulation } from "@angular/core";
3
+ import { MatTableDataSource } from "@angular/material/table";
4
+ import { TableColumn } from "../../../shared/types/data-table";
5
+ import { TableFilter } from "../../../shared/types/table/filter";
6
+ import { catchError, of, Subject, Subscription } from "rxjs";
7
+ import { takeUntil } from "rxjs";
8
+ import { UserUpgradeService } from "../user-upgrade.service";
9
+ import { DEPENDENCIES_STATUS, Status, STATUS_ENTRIES } from "../../../shared/types/constants";
10
+ import { UserUpgradeRecord } from "../types/user-upgrade";
11
+ import { APIService } from "../../../shared/services/api.service";
12
+ import { PAGINATION_SIZE_OPTIONS } from "../../../shared/constants/app.constants";
13
+ import { PageEvent } from '@angular/material/paginator';
14
+
15
+ @Component({
16
+ selector: 'tk-user-upgrade-data-table',
17
+ templateUrl: './user-upgrade-data-table.component.html',
18
+ styleUrls: ['./user-upgrade-data-table.component.scss'],
19
+ // encapsulation: ViewEncapsulation.ShadowDom
20
+ })
21
+ export class UserUpgradeDataTableComponent implements OnInit, OnDestroy {
22
+ private destroy$ = new Subject<void>();
23
+ private userUpgradeService = inject(UserUpgradeService);
24
+ private apiService = inject(APIService);
25
+ readonly STATUS_ENTRIES = STATUS_ENTRIES;
26
+ readonly DEPENDENCIES_STATUS = DEPENDENCIES_STATUS;
27
+
28
+ @Input() token!: string;
29
+ @Input() customerId!: string;
30
+
31
+ columns!: TableColumn[];
32
+ dataPending = false;
33
+ data!: MatTableDataSource<UserUpgradeRecord>;
34
+ displayedColumns: string[] = ['select', 'user', 'site', 'device', 'dialPlanStatus', 'dependencies', 'userUpgradeStatus', 'userUpgradeLoader'];
35
+ selection = new SelectionModel<UserUpgradeRecord>(true, []);
36
+ filters: TableFilter[] = [];
37
+ pagination = new PaginationDataDto();
38
+ private subscriptions = new Subscription();
39
+
40
+ statusCounts: any = {};
41
+
42
+ private activeFilters: { [key: string]: any } = {};
43
+
44
+ ngOnInit(): void {
45
+ this.dataPending = true;
46
+ this.apiService.token = this.token;
47
+ this.userUpgradeService.customerId = this.customerId;
48
+
49
+ const subsc1 = this.userUpgradeService.getUserUpgradeRecords(this.pagination.pageSize, this.pagination.pageIndex)
50
+ .pipe(takeUntil(this.destroy$))
51
+ .subscribe((results: any) => {
52
+ const records = results.content as UserUpgradeRecord[]
53
+ this.data = new MatTableDataSource(records);
54
+ this.pagination.total = results.totalElements;
55
+ this.dataPending = false;
56
+ this.setupCustomFilter();
57
+ this.initializeFilters(records);
58
+ });
59
+ this.subscriptions.add(subsc1);
60
+
61
+ const subsc2 = this.userUpgradeService.getUserUpgradeStatusCounts()
62
+ .pipe(takeUntil(this.destroy$))
63
+ .subscribe((statusCounts) => {
64
+ this.statusCounts['Ready'] = statusCounts['READY'] || 0;
65
+ this.statusCounts['Not Ready'] = statusCounts['NOT_READY'] || 0;
66
+ this.statusCounts['Completed'] = statusCounts['COMPLETED'] || 0;
67
+ this.statusCounts['Failed'] = statusCounts['FAILED'] || 0;
68
+ });
69
+ this.subscriptions.add(subsc2);
70
+ }
71
+
72
+ ngOnDestroy(): void {
73
+ this.destroy$.next();
74
+ this.destroy$.complete();
75
+ this.dataPending = false;
76
+
77
+ if (this.subscriptions) {
78
+ this.subscriptions.unsubscribe();
79
+ }
80
+ }
81
+
82
+ pageEvent (event: PageEvent): void {
83
+ this.pagination.pageIndex = event.pageIndex;
84
+ this.pagination.pageSize = event.pageSize;
85
+ this.getData();
86
+ }
87
+
88
+ changePerPageNumber(pageSizeEvent: any): void {
89
+ this.pagination.pageSize = pageSizeEvent.value;
90
+ this.pagination.pageIndex = 0;
91
+ this.getData();
92
+ }
93
+
94
+ private getData(): void {
95
+ this.dataPending = true;
96
+ const subsc1 = this.userUpgradeService.getUserUpgradeRecords(this.pagination.pageSize, this.pagination.pageIndex)
97
+ .pipe(takeUntil(this.destroy$))
98
+ .subscribe((result) => {
99
+
100
+ this.data = new MatTableDataSource(result.content);
101
+ this.pagination.total = result.totalElements;
102
+ this.dataPending = false;
103
+ });
104
+ this.subscriptions.add(subsc1);
105
+ }
106
+
107
+ private initializeFilters(records: any[]): void {
108
+ if (records?.length) {
109
+ // Extract unique sites from actual data
110
+ const uniqueSites = [...new Set(records.map(record => record.siteName))];
111
+ const siteOptions = uniqueSites.map(site => ({
112
+ label: site,
113
+ value: site.toLowerCase().replace(/\s+/g, '-')
114
+ }));
115
+
116
+ // Extract unique statuses from actual data
117
+ const uniqueStatuses = [...new Set(records.map(record => record.upgradeStatus))];
118
+ const statusOptions = uniqueStatuses.map(status => ({
119
+ label: STATUS_ENTRIES[status],
120
+ value: status.toLowerCase().replace(/\s+/g, '-')
121
+ }));
122
+
123
+ this.filters = [
124
+ {
125
+ id: 'userName',
126
+ type: 'search',
127
+ columnKey: 'User',
128
+ placeholder: 'Search users...',
129
+ options: []
130
+ },
131
+ {
132
+ id: 'sites',
133
+ type: 'select',
134
+ columnKey: 'Site',
135
+ placeholder: 'Sites',
136
+ options: siteOptions
137
+ },
138
+ {
139
+ id: 'status',
140
+ type: 'select',
141
+ columnKey: 'User Upgrade Status',
142
+ placeholder: 'Upgrade Status',
143
+ options: statusOptions
144
+ }
145
+ ];
146
+ }
147
+ }
148
+
149
+ /** Whether the number of selected elements matches the total number of rows. */
150
+ isAllSelected() {
151
+ const numSelected = this.selection.selected.length;
152
+ const numRows = this.data?.data.length ?? 0;
153
+ return numSelected === numRows;
154
+ }
155
+
156
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
157
+ masterToggle() {
158
+ this.isAllSelected() ?
159
+ this.selection.clear() :
160
+ this.data?.data.forEach(row => this.selection.select(row));
161
+ }
162
+
163
+ upgradeUser(user: UserUpgradeRecord): void {
164
+ if (user && STATUS_ENTRIES[user.upgradeStatus] && STATUS_ENTRIES[user.upgradeStatus] === 'Ready')
165
+ user.pending = true;
166
+
167
+ this.userUpgradeService.collectUsers([user])
168
+ .pipe(takeUntil(this.destroy$))
169
+ .subscribe(() => {
170
+ this.userUpgradeService.bulkUpgrade([user])
171
+ .pipe(takeUntil(this.destroy$))
172
+ .subscribe(() => {
173
+ user.pending = false;
174
+ })
175
+ });
176
+ }
177
+
178
+ upgradeSelectedUsers(): void {
179
+ if (this.selection.selected && this.selection.selected.length) {
180
+ this.dataPending = true;
181
+
182
+ this.userUpgradeService.collectUsers(this.selection.selected)
183
+ .pipe(takeUntil(this.destroy$))
184
+ .subscribe(() => {
185
+ this.userUpgradeService.bulkUpgrade(this.selection.selected)
186
+ .pipe(takeUntil(this.destroy$))
187
+ .subscribe(() => {
188
+ this.dataPending = false;
189
+ })
190
+ });
191
+
192
+ }
193
+ this.userUpgradeService.bulkUpgrade(this.selection.selected);
194
+ }
195
+
196
+ onFilter(filterEvent: { key: string, value: any }) {
197
+ const {key, value} = filterEvent;
198
+
199
+ let filterValue: any;
200
+ if (value && value.value !== undefined) {
201
+ filterValue = value.value;
202
+ } else if (value && value.target) {
203
+ filterValue = value.target.value;
204
+ } else {
205
+ filterValue = value;
206
+ }
207
+
208
+ // Handle "All" option or empty values - remove the filter
209
+ if (filterValue === 'all' || !filterValue || filterValue === '') {
210
+ delete this.activeFilters[key];
211
+ } else {
212
+ this.activeFilters[key] = filterValue;
213
+ }
214
+
215
+ this.applyFilters();
216
+ }
217
+
218
+ private setupCustomFilter() {
219
+ this.data.filterPredicate = (data: any, filter: string) => {
220
+ const filters = JSON.parse(filter || '{}');
221
+
222
+ for (const [key, value] of Object.entries(filters)) {
223
+ if (!value) continue;
224
+
225
+ switch (key) {
226
+ case 'User':
227
+ const searchTerm = (value as string).toLowerCase();
228
+ if (!data.userName.toLowerCase().includes(searchTerm)) {
229
+ return false;
230
+ }
231
+ break;
232
+ case 'Site':
233
+ if (data.siteName !== this.getSiteNameFromValue(value as string)) {
234
+ return false;
235
+ }
236
+ break;
237
+ case 'User Upgrade Status':
238
+ if (!this.matchesUpgradeStatus(data.upgradeStatus, value as string)) {
239
+ return false;
240
+ }
241
+ break;
242
+ }
243
+ }
244
+
245
+ return true;
246
+ };
247
+ }
248
+
249
+ private applyFilters() {
250
+ this.data.filter = JSON.stringify(this.activeFilters);
251
+ }
252
+
253
+ get filteredDataCount(): number {
254
+ return this.data?.filteredData?.length || 0;
255
+ }
256
+
257
+ private getSiteNameFromValue(value: string): string {
258
+ // Since we're now using actual site names, just convert back from slug format
259
+ return value.split('-').map(word =>
260
+ word.charAt(0).toUpperCase() + word.slice(1)
261
+ ).join(' ');
262
+ }
263
+
264
+ private matchesUpgradeStatus(status: string, filterValue: string): boolean {
265
+ // Handle direct status matching for cleaner implementation
266
+ return status.toLowerCase().replace(/\s+/g, '-') === filterValue.toLowerCase();
267
+ }
268
+
269
+ getStatusClass(status: string): string {
270
+ switch (status.toLowerCase()) {
271
+ case 'ready':
272
+ return 'ready';
273
+ case 'not ready':
274
+ return 'not-ready';
275
+ case 'partial ready':
276
+ return 'partial-ready';
277
+ case 'completed':
278
+ return 'completed';
279
+ case 'failed':
280
+ return 'failed';
281
+ default:
282
+ return 'not-ready';
283
+ }
284
+ }
285
+
286
+ protected readonly pageSizeOptions = PAGINATION_SIZE_OPTIONS;
287
+ }
288
+
289
+ interface PaginationDataDtoInterface {
290
+ total: number;
291
+ pageSizeOptions: number[];
292
+ pageSize: number;
293
+ pageIndex: number;
294
+ }
295
+ class PaginationDataDto {
296
+ total!: number;
297
+ pageSizeOptions!: number[];
298
+ pageSize!: number;
299
+ pageIndex!: number;
300
+
301
+ constructor(data?: PaginationDataDtoInterface) {
302
+ this.pageSizeOptions = data?.pageSizeOptions || PAGINATION_DATA_DEFAULTS.OPTIONS;
303
+ this.pageSize = data?.pageSize || PAGINATION_DATA_DEFAULTS.SIZE;
304
+ this.pageIndex = data?.pageIndex || PAGINATION_DATA_DEFAULTS.PAGE_INDEX;
305
+ this.total = data?.total || 0;
306
+ }
307
+ }
308
+
309
+ const PAGINATION_DATA_DEFAULTS = {
310
+ OPTIONS: [10, 20, 50, 100],
311
+ SIZE: 10,
312
+ PAGE_INDEX: 0
313
+ };
@@ -0,0 +1,34 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { UserUpgradeDataTableComponent } from "./user-upgrade-data-table/user-upgrade-data-table.component";
3
+ import { CommonModule } from "@angular/common";
4
+ import { MatButtonModule } from "@angular/material/button";
5
+ import { MatTableModule } from "@angular/material/table";
6
+ import { SharedModule } from "../../shared/shared.module";
7
+ import { MatCheckboxModule } from "@angular/material/checkbox";
8
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
9
+ import { MatOptionModule } from '@angular/material/core';
10
+ import { MatPaginatorModule } from '@angular/material/paginator';
11
+ import { MatSelectModule } from '@angular/material/select';
12
+
13
+ @NgModule({
14
+ declarations: [
15
+ UserUpgradeDataTableComponent
16
+ ],
17
+ imports: [
18
+ CommonModule,
19
+ SharedModule,
20
+ MatTableModule,
21
+ MatButtonModule,
22
+ MatCheckboxModule,
23
+ MatSelectModule,
24
+ MatProgressSpinnerModule,
25
+ MatOptionModule,
26
+ MatPaginatorModule,
27
+ MatSelectModule
28
+ ],
29
+ exports: [
30
+ UserUpgradeDataTableComponent
31
+ ]
32
+ })
33
+ export class UserUpgradeModule {
34
+ }
@@ -0,0 +1,79 @@
1
+ import { inject, Injectable } from "@angular/core";
2
+ import { MatTableDataSource } from "@angular/material/table";
3
+ import { UserUpgradeRecord } from "./types/user-upgrade";
4
+ import { catchError, map, Observable, of, throwError } from "rxjs";
5
+ import { API } from "../../api/api.endpoints";
6
+ import { APIService } from "../../shared/services/api.service";
7
+
8
+ @Injectable({
9
+ providedIn: 'root'
10
+ })
11
+ export class UserUpgradeService {
12
+ private apiService = inject(APIService);
13
+
14
+ customerId!: string;
15
+
16
+ usersDataSource!: UserUpgradeRecord[];
17
+ filteredUsersDataSource!: UserUpgradeRecord[];
18
+
19
+ // TODO: Impl the user upgrade logic here
20
+ bulkUpgrade(users: UserUpgradeRecord[]): Observable<unknown> {
21
+ const body = this.generateUserUpgradeBody(users);
22
+ console.log('bulkUpgrade', users);
23
+
24
+ console.log(body);
25
+
26
+ // This is not done yet...
27
+ return this.apiService.post(
28
+ API.USER_UPGRADE.SINGLE_MIGRATION.replace(':featureName', "PERSON"),
29
+ body,
30
+ {}
31
+ ).pipe(catchError((err) => of(err)));
32
+ }
33
+
34
+ collectUsers(users: UserUpgradeRecord[]): Observable<unknown> {
35
+ const body = this.generateUserUpgradeBody(users);
36
+
37
+ console.log('collectUsers', body);
38
+
39
+ // This is not done yet...
40
+ return this.apiService.post(
41
+ API.USER_UPGRADE.SINGLE_COLLECT.replace(':featureName', 'PERSON'),
42
+ body,
43
+ {}
44
+ ).pipe(catchError((err) => of(err)));
45
+ }
46
+
47
+ generateUserUpgradeBody(users: UserUpgradeRecord[]): UserUpgradeBody {
48
+ const entities = users.map(record => ({ cucmId: record.cucmId, entityId: record.userId }));
49
+ const customerId = users[0].customerId;
50
+ // const siteId = users[0].siteId;
51
+
52
+ return {
53
+ customerId,
54
+ entities: {
55
+ 'PERSON': entities
56
+ }
57
+ };
58
+ }
59
+
60
+ getUserUpgradeStatusCounts(): Observable<any> {
61
+ return this.apiService.fetch(
62
+ API.USER_UPGRADE.GET_USERS_UPGRADE_STATUS_COUNTS.replace(':customerId', this.customerId)
63
+ );
64
+ }
65
+
66
+ getUserUpgradeRecords(pageSize: number, pageIndex: number): Observable<any> {
67
+ return this.apiService.fetchPagination(
68
+ API.USER_UPGRADE.GET_USERS_UPGRADE_DATA.replace(':customerId', this.customerId),
69
+ pageSize,
70
+ pageIndex
71
+ );
72
+ }
73
+ }
74
+ export type UserUpgradeBody = {
75
+ customerId: string;
76
+ entities: {
77
+ PERSON: { cucmId: string; entityId: string }[];
78
+ };
79
+ };
@@ -1,44 +1,44 @@
1
- // Karma configuration file, see link for more information
2
- // https://karma-runner.github.io/1.0/config/configuration-file.html
3
-
4
- module.exports = function (config) {
5
- config.set({
6
- basePath: '',
7
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
- plugins: [
9
- require('karma-jasmine'),
10
- require('karma-chrome-launcher'),
11
- require('karma-jasmine-html-reporter'),
12
- require('karma-coverage'),
13
- require('@angular-devkit/build-angular/plugins/karma')
14
- ],
15
- client: {
16
- jasmine: {
17
- // you can add configuration options for Jasmine here
18
- // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19
- // for example, you can disable the random execution with `random: false`
20
- // or set a specific seed with `seed: 4321`
21
- },
22
- clearContext: false // leave Jasmine Spec Runner output visible in browser
23
- },
24
- jasmineHtmlReporter: {
25
- suppressAll: true // removes the duplicated traces
26
- },
27
- coverageReporter: {
28
- dir: require('path').join(__dirname, '../../../coverage/tuki/widgets'),
29
- subdir: '.',
30
- reporters: [
31
- { type: 'html' },
32
- { type: 'text-summary' }
33
- ]
34
- },
35
- reporters: ['progress', 'kjhtml'],
36
- port: 9876,
37
- colors: true,
38
- logLevel: config.LOG_INFO,
39
- autoWatch: true,
40
- browsers: ['Chrome'],
41
- singleRun: false,
42
- restartOnFileChange: true
43
- });
44
- };
1
+ // Karma configuration file, see link for more information
2
+ // https://karma-runner.github.io/1.0/config/configuration-file.html
3
+
4
+ module.exports = function (config) {
5
+ config.set({
6
+ basePath: '',
7
+ frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
+ plugins: [
9
+ require('karma-jasmine'),
10
+ require('karma-chrome-launcher'),
11
+ require('karma-jasmine-html-reporter'),
12
+ require('karma-coverage'),
13
+ require('@angular-devkit/build-angular/plugins/karma')
14
+ ],
15
+ client: {
16
+ jasmine: {
17
+ // you can add configuration options for Jasmine here
18
+ // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19
+ // for example, you can disable the random execution with `random: false`
20
+ // or set a specific seed with `seed: 4321`
21
+ },
22
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
23
+ },
24
+ jasmineHtmlReporter: {
25
+ suppressAll: true // removes the duplicated traces
26
+ },
27
+ coverageReporter: {
28
+ dir: require('path').join(__dirname, '../../../coverage/tuki/widgets'),
29
+ subdir: '.',
30
+ reporters: [
31
+ { type: 'html' },
32
+ { type: 'text-summary' }
33
+ ]
34
+ },
35
+ reporters: ['progress', 'kjhtml'],
36
+ port: 9876,
37
+ colors: true,
38
+ logLevel: config.LOG_INFO,
39
+ autoWatch: true,
40
+ browsers: ['Chrome'],
41
+ singleRun: false,
42
+ restartOnFileChange: true
43
+ });
44
+ };
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@tuki-io/tuki-widgets",
3
+ "version": "0.0.73",
4
+ "peerDependencies": {
5
+ "@angular/common": "^14.2.0",
6
+ "@angular/core": "^14.2.0",
7
+ "@angular/material": "14.2.7",
8
+ "@angular/cdk": "14.2.7"
9
+ },
10
+ "dependencies": {
11
+ "tslib": "^2.3.0"
12
+ }
13
+ }
@@ -1,23 +1,23 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { WidgetsComponent } from './widgets.component';
4
-
5
- describe('WidgetsComponent', () => {
6
- let component: WidgetsComponent;
7
- let fixture: ComponentFixture<WidgetsComponent>;
8
-
9
- beforeEach(async () => {
10
- await TestBed.configureTestingModule({
11
- declarations: [ WidgetsComponent ]
12
- })
13
- .compileComponents();
14
-
15
- fixture = TestBed.createComponent(WidgetsComponent);
16
- component = fixture.componentInstance;
17
- fixture.detectChanges();
18
- });
19
-
20
- it('should create', () => {
21
- expect(component).toBeTruthy();
22
- });
23
- });
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { WidgetsComponent } from './widgets.component';
4
+
5
+ describe('WidgetsComponent', () => {
6
+ let component: WidgetsComponent;
7
+ let fixture: ComponentFixture<WidgetsComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [ WidgetsComponent ]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(WidgetsComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });