@tuki-io/tuki-widgets 0.0.72 → 0.0.73

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 (619) hide show
  1. package/di2mt/api/api.endpoints.d.ts +20 -0
  2. package/di2mt/index.d.ts +5 -0
  3. package/di2mt/{public-api.ts → public-api.d.ts} +12 -26
  4. package/di2mt/shared/components/card/card.component.d.ts +6 -0
  5. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +22 -0
  6. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +14 -0
  7. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +7 -0
  8. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +9 -0
  9. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +14 -0
  10. package/di2mt/shared/material.module.d.ts +15 -0
  11. package/di2mt/shared/services/api.service.d.ts +20 -0
  12. package/di2mt/shared/shared.module.d.ts +16 -0
  13. package/di2mt/shared/types/constants.d.ts +7 -0
  14. package/di2mt/shared/types/data-table.d.ts +5 -0
  15. package/di2mt/shared/types/table/filter.d.ts +16 -0
  16. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +48 -0
  17. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +12 -0
  18. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +12 -0
  19. package/di2mt/widgets/site-upgrade/types/{user-upgrade.ts → user-upgrade.d.ts} +14 -15
  20. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +19 -0
  21. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +19 -0
  22. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +18 -0
  23. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +19 -0
  24. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +19 -0
  25. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +15 -0
  26. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +18 -0
  27. package/di2mt/widgets/upgrade-overview/types/{upgrade-overview.ts → upgrade-overview.d.ts} +56 -58
  28. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +15 -0
  29. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +17 -0
  30. package/di2mt/widgets/user-upgrade/types/{user-upgrade.ts → user-upgrade.d.ts} +16 -18
  31. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +49 -0
  32. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +12 -0
  33. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +14 -0
  34. package/esm2020/di2mt/api/api.endpoints.mjs +21 -0
  35. package/esm2020/di2mt/public-api.mjs +23 -0
  36. package/esm2020/di2mt/shared/components/card/card.component.mjs +13 -0
  37. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +62 -0
  38. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +47 -0
  39. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +17 -0
  40. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +36 -0
  41. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +37 -0
  42. package/esm2020/di2mt/shared/material.module.mjs +76 -0
  43. package/esm2020/di2mt/shared/services/api.service.mjs +86 -0
  44. package/esm2020/di2mt/shared/shared.module.mjs +61 -0
  45. package/esm2020/di2mt/shared/types/constants.mjs +12 -0
  46. package/esm2020/di2mt/shared/types/data-table.mjs +2 -0
  47. package/esm2020/di2mt/shared/types/table/filter.mjs +2 -0
  48. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +5 -0
  49. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +182 -0
  50. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +40 -0
  51. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +43 -0
  52. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +3 -0
  53. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +64 -0
  54. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +64 -0
  55. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +68 -0
  56. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +45 -0
  57. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +45 -0
  58. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +64 -0
  59. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +74 -0
  60. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +2 -0
  61. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +59 -0
  62. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +82 -0
  63. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +3 -0
  64. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +197 -0
  65. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +40 -0
  66. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +58 -0
  67. package/esm2020/lib/widgets.component.mjs +22 -0
  68. package/esm2020/lib/widgets.module.mjs +21 -0
  69. package/esm2020/lib/widgets.service.mjs +14 -0
  70. package/esm2020/public-api.mjs +7 -0
  71. package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
  72. package/esm2020/user-device-manage/public-api.mjs +9 -0
  73. package/esm2020/user-device-manage/src/app.constants.mjs +95 -0
  74. package/esm2020/user-device-manage/src/classes/device.mjs +85 -0
  75. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -0
  76. package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -0
  77. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -0
  78. package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -0
  79. package/esm2020/user-device-manage/src/classes/line.mjs +18 -0
  80. package/esm2020/user-device-manage/src/classes/notification.mjs +32 -0
  81. package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -0
  82. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -0
  83. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -0
  84. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -0
  85. package/esm2020/user-device-manage/src/classes/types.mjs +24 -0
  86. package/esm2020/user-device-manage/src/common-functions.mjs +19 -0
  87. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -0
  88. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -0
  89. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -0
  90. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +64 -0
  91. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -0
  92. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -0
  93. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +335 -0
  94. package/esm2020/user-device-manage/src/environments/environment.mjs +11 -0
  95. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -0
  96. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  97. package/esm2020/user-device-manage/src/material.module.mjs +192 -0
  98. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -0
  99. package/esm2020/user-device-manage/src/services/api.service.mjs +79 -0
  100. package/esm2020/user-device-manage/src/services/device.service.mjs +83 -0
  101. package/esm2020/user-device-manage/src/services/dns.service.mjs +104 -0
  102. package/esm2020/user-device-manage/src/services/line.service.mjs +76 -0
  103. package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -0
  104. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  105. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -0
  106. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -0
  107. package/esm2020/user-device-manage/src/services/user.service.mjs +243 -0
  108. package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -0
  109. package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -0
  110. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +107 -0
  111. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -0
  112. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +5 -0
  113. package/esm2020/user-manage/public-api.mjs +7 -0
  114. package/esm2020/user-manage/src/app.constants.mjs +50 -0
  115. package/esm2020/user-manage/src/classes/device.mjs +37 -0
  116. package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -0
  117. package/esm2020/user-manage/src/classes/line-association.mjs +110 -0
  118. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -0
  119. package/esm2020/user-manage/src/classes/line-directory.mjs +27 -0
  120. package/esm2020/user-manage/src/classes/line.mjs +18 -0
  121. package/esm2020/user-manage/src/classes/notification.mjs +32 -0
  122. package/esm2020/user-manage/src/classes/pagination.mjs +8 -0
  123. package/esm2020/user-manage/src/classes/recording-options.mjs +7 -0
  124. package/esm2020/user-manage/src/classes/simplified-user.mjs +109 -0
  125. package/esm2020/user-manage/src/classes/table-data.mjs +2 -0
  126. package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -0
  127. package/esm2020/user-manage/src/classes/user-list.mjs +10 -0
  128. package/esm2020/user-manage/src/common-functions.mjs +19 -0
  129. package/esm2020/user-manage/src/device-list/device-list.component.mjs +24 -0
  130. package/esm2020/user-manage/src/environments/environment.mjs +11 -0
  131. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -0
  132. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  133. package/esm2020/user-manage/src/material.module.mjs +188 -0
  134. package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -0
  135. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -0
  136. package/esm2020/user-manage/src/services/api.service.mjs +79 -0
  137. package/esm2020/user-manage/src/services/dns.service.mjs +110 -0
  138. package/esm2020/user-manage/src/services/line.service.mjs +34 -0
  139. package/esm2020/user-manage/src/services/notification.service.mjs +62 -0
  140. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  141. package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -0
  142. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -0
  143. package/esm2020/user-manage/src/services/user.service.mjs +207 -0
  144. package/esm2020/user-manage/src/services/users-search.service.mjs +50 -0
  145. package/esm2020/user-manage/src/services/utils.service.mjs +73 -0
  146. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -0
  147. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +78 -0
  148. package/esm2020/user-manage/src/user-info/user-info.component.mjs +20 -0
  149. package/esm2020/user-manage/src/user-manage-widget.component.mjs +208 -0
  150. package/esm2020/user-manage/src/user-manage.module.mjs +99 -0
  151. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -0
  152. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -0
  153. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +5 -0
  154. package/esm2020/users-list/public-api.mjs +9 -0
  155. package/esm2020/users-list/src/app.constants.mjs +54 -0
  156. package/esm2020/users-list/src/classes/app-location.mjs +32 -0
  157. package/esm2020/users-list/src/classes/device.mjs +7 -0
  158. package/esm2020/users-list/src/classes/line.mjs +18 -0
  159. package/esm2020/users-list/src/classes/move-user.mjs +178 -0
  160. package/esm2020/users-list/src/classes/notification.mjs +31 -0
  161. package/esm2020/users-list/src/classes/pagination.mjs +8 -0
  162. package/esm2020/users-list/src/classes/simlified-user.mjs +50 -0
  163. package/esm2020/users-list/src/classes/table-data.mjs +2 -0
  164. package/esm2020/users-list/src/classes/user-list.mjs +14 -0
  165. package/esm2020/users-list/src/material.module.mjs +209 -0
  166. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +38 -0
  167. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +23 -0
  168. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +189 -0
  169. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +38 -0
  170. package/esm2020/users-list/src/services/api-webex.service.mjs +18 -0
  171. package/esm2020/users-list/src/services/api.service.mjs +78 -0
  172. package/esm2020/users-list/src/services/dns.service.mjs +120 -0
  173. package/esm2020/users-list/src/services/events-communication.service.mjs +14 -0
  174. package/esm2020/users-list/src/services/move-user.service.mjs +53 -0
  175. package/esm2020/users-list/src/services/notification.service.mjs +62 -0
  176. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -0
  177. package/esm2020/users-list/src/services/site-settings.service.mjs +27 -0
  178. package/esm2020/users-list/src/services/user.service.mjs +142 -0
  179. package/esm2020/users-list/src/services/users-search.service.mjs +122 -0
  180. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -0
  181. package/esm2020/users-list/src/users-list.component.mjs +287 -0
  182. package/esm2020/users-list/src/users-list.module.mjs +92 -0
  183. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -0
  184. package/esm2020/users-list/src/utils/common-functions.mjs +32 -0
  185. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -0
  186. package/esm2020/users-list/src/utils/utils.service.mjs +73 -0
  187. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +5 -0
  188. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +1469 -0
  189. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  190. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3402 -0
  191. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  192. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2124 -0
  193. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  194. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +1994 -0
  195. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  196. package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
  197. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
  198. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +1460 -0
  199. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  200. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3364 -0
  201. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  202. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2107 -0
  203. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  204. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +1973 -0
  205. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  206. package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
  207. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
  208. package/index.d.ts +5 -0
  209. package/lib/widgets.component.d.ts +8 -0
  210. package/lib/widgets.module.d.ts +7 -0
  211. package/lib/widgets.service.d.ts +6 -0
  212. package/package.json +65 -13
  213. package/{src/public-api.ts → public-api.d.ts} +0 -4
  214. package/user-device-manage/index.d.ts +5 -0
  215. package/user-device-manage/src/app.constants.d.ts +74 -0
  216. package/user-device-manage/src/classes/device.d.ts +233 -0
  217. package/user-device-manage/src/classes/line-association-interface.d.ts +45 -0
  218. package/user-device-manage/src/classes/line-association.d.ts +62 -0
  219. package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -0
  220. package/user-device-manage/src/classes/line-directory.d.ts +15 -0
  221. package/user-device-manage/src/classes/line.d.ts +140 -0
  222. package/user-device-manage/src/classes/notification.d.ts +18 -0
  223. package/user-device-manage/src/classes/recording-options.d.ts +5 -0
  224. package/user-device-manage/src/classes/simplified-user.d.ts +52 -0
  225. package/user-device-manage/src/classes/site-defaults.d.ts +146 -0
  226. package/user-device-manage/src/classes/translation-pattern.d.ts +19 -0
  227. package/user-device-manage/src/classes/types.d.ts +19 -0
  228. package/user-device-manage/src/common-functions.d.ts +1 -0
  229. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -0
  230. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -0
  231. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -0
  232. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +24 -0
  233. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -0
  234. package/user-device-manage/src/device-list/device-list.component.d.ts +11 -0
  235. package/user-device-manage/src/device-manage-widget.component.d.ts +71 -0
  236. package/user-device-manage/src/environments/environment.d.ts +9 -0
  237. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  238. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  239. package/user-device-manage/src/material.module.d.ts +29 -0
  240. package/user-device-manage/src/notifications/notification.component.d.ts +19 -0
  241. package/user-device-manage/src/services/api.service.d.ts +20 -0
  242. package/user-device-manage/src/services/device.service.d.ts +21 -0
  243. package/user-device-manage/src/services/dns.service.d.ts +14 -0
  244. package/user-device-manage/src/services/line.service.d.ts +33 -0
  245. package/user-device-manage/src/services/notification.service.d.ts +18 -0
  246. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  247. package/user-device-manage/src/services/site-settings.service.d.ts +25 -0
  248. package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -0
  249. package/user-device-manage/src/services/user.service.d.ts +51 -0
  250. package/user-device-manage/src/services/utils.service.d.ts +10 -0
  251. package/user-device-manage/src/services/validation.service.d.ts +165 -0
  252. package/user-device-manage/src/user-device-manage.module.d.ts +22 -0
  253. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  254. package/user-manage/index.d.ts +5 -0
  255. package/user-manage/src/app.constants.d.ts +29 -0
  256. package/user-manage/src/classes/device.d.ts +203 -0
  257. package/user-manage/src/classes/line-association-interface.d.ts +40 -0
  258. package/user-manage/src/classes/line-association.d.ts +55 -0
  259. package/user-manage/src/classes/line-call-info-display.d.ts +11 -0
  260. package/user-manage/src/classes/line-directory.d.ts +16 -0
  261. package/user-manage/src/classes/line.d.ts +140 -0
  262. package/user-manage/src/classes/notification.d.ts +18 -0
  263. package/user-manage/src/classes/pagination.d.ts +13 -0
  264. package/user-manage/src/classes/recording-options.d.ts +5 -0
  265. package/user-manage/src/classes/simplified-user.d.ts +50 -0
  266. package/user-manage/src/classes/table-data.d.ts +5 -0
  267. package/user-manage/src/classes/translation-pattern.d.ts +18 -0
  268. package/user-manage/src/classes/user-list.d.ts +34 -0
  269. package/user-manage/src/common-functions.d.ts +1 -0
  270. package/user-manage/src/device-list/device-list.component.d.ts +11 -0
  271. package/user-manage/src/environments/environment.d.ts +9 -0
  272. package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  273. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  274. package/user-manage/src/material.module.d.ts +28 -0
  275. package/user-manage/src/notifications/notification.component.d.ts +19 -0
  276. package/user-manage/src/removeKynFromIBM.service.d.ts +8 -0
  277. package/user-manage/src/services/api.service.d.ts +21 -0
  278. package/user-manage/src/services/dns.service.d.ts +14 -0
  279. package/user-manage/src/services/line.service.d.ts +17 -0
  280. package/user-manage/src/services/notification.service.d.ts +18 -0
  281. package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  282. package/user-manage/src/services/site-settings.service.d.ts +9 -0
  283. package/user-manage/src/services/sorting-utils.service.d.ts +26 -0
  284. package/user-manage/src/services/user.service.d.ts +43 -0
  285. package/user-manage/src/services/users-search.service.d.ts +25 -0
  286. package/user-manage/src/services/utils.service.d.ts +9 -0
  287. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -0
  288. package/user-manage/src/user-calling/user-calling.component.d.ts +30 -0
  289. package/user-manage/src/user-info/user-info.component.d.ts +9 -0
  290. package/user-manage/src/user-manage-widget.component.d.ts +45 -0
  291. package/user-manage/src/user-manage.module.d.ts +21 -0
  292. package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  293. package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -0
  294. package/users-list/index.d.ts +5 -0
  295. package/users-list/src/app.constants.d.ts +36 -0
  296. package/users-list/src/classes/app-location.d.ts +17 -0
  297. package/users-list/src/classes/device.d.ts +224 -0
  298. package/users-list/src/classes/line.d.ts +140 -0
  299. package/users-list/src/classes/move-user.d.ts +85 -0
  300. package/users-list/src/classes/notification.d.ts +18 -0
  301. package/users-list/src/classes/pagination.d.ts +13 -0
  302. package/users-list/src/classes/simlified-user.d.ts +25 -0
  303. package/users-list/src/classes/table-data.d.ts +5 -0
  304. package/users-list/src/classes/user-list.d.ts +36 -0
  305. package/users-list/src/material.module.d.ts +31 -0
  306. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +21 -0
  307. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +12 -0
  308. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +55 -0
  309. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +17 -0
  310. package/users-list/src/services/api-webex.service.d.ts +8 -0
  311. package/users-list/src/services/api.service.d.ts +21 -0
  312. package/users-list/src/services/dns.service.d.ts +18 -0
  313. package/users-list/src/services/events-communication.service.d.ts +8 -0
  314. package/users-list/src/services/move-user.service.d.ts +17 -0
  315. package/users-list/src/services/notification.service.d.ts +18 -0
  316. package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -0
  317. package/users-list/src/services/site-settings.service.d.ts +11 -0
  318. package/users-list/src/services/user.service.d.ts +35 -0
  319. package/users-list/src/services/users-search.service.d.ts +34 -0
  320. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -0
  321. package/users-list/src/users-list.component.d.ts +60 -0
  322. package/users-list/src/users-list.module.d.ts +18 -0
  323. package/users-list/src/utils/app-loader/app-loader.d.ts +6 -0
  324. package/users-list/src/utils/common-functions.d.ts +2 -0
  325. package/users-list/src/utils/pagination/pagination.component.d.ts +18 -0
  326. package/users-list/src/utils/utils.service.d.ts +9 -0
  327. package/di2mt/api/api.endpoints.ts +0 -20
  328. package/di2mt/assets/icons/already_upgraded.png +0 -0
  329. package/di2mt/assets/icons/check2_icon.png +0 -0
  330. package/di2mt/assets/icons/check_icon.png +0 -0
  331. package/di2mt/assets/icons/expand_icon.png +0 -0
  332. package/di2mt/assets/icons/issue_icon.png +0 -0
  333. package/di2mt/assets/icons/menu_icon.png +0 -0
  334. package/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  335. package/di2mt/assets/icons/search_icon.png +0 -0
  336. package/di2mt/assets/icons/site.png +0 -0
  337. package/di2mt/assets/icons/user.png +0 -0
  338. package/di2mt/assets/icons/warning_icon.png +0 -0
  339. package/di2mt/ng-package.json +0 -7
  340. package/di2mt/shared/components/card/card.component.html +0 -11
  341. package/di2mt/shared/components/card/card.component.scss +0 -48
  342. package/di2mt/shared/components/card/card.component.ts +0 -10
  343. package/di2mt/shared/components/chart-card/chart-card.component.html +0 -15
  344. package/di2mt/shared/components/chart-card/chart-card.component.scss +0 -38
  345. package/di2mt/shared/components/chart-card/chart-card.component.ts +0 -71
  346. package/di2mt/shared/components/index.ts +0 -6
  347. package/di2mt/shared/components/stat-card/stat-card.component.html +0 -57
  348. package/di2mt/shared/components/stat-card/stat-card.component.scss +0 -74
  349. package/di2mt/shared/components/stat-card/stat-card.component.ts +0 -44
  350. package/di2mt/shared/components/status-list-card/status-list-card.component.html +0 -28
  351. package/di2mt/shared/components/status-list-card/status-list-card.component.scss +0 -55
  352. package/di2mt/shared/components/status-list-card/status-list-card.component.ts +0 -11
  353. package/di2mt/shared/components/summary-card/summary-card.component.html +0 -12
  354. package/di2mt/shared/components/summary-card/summary-card.component.scss +0 -76
  355. package/di2mt/shared/components/summary-card/summary-card.component.ts +0 -27
  356. package/di2mt/shared/components/table-filters/table-filters.component.html +0 -28
  357. package/di2mt/shared/components/table-filters/table-filters.component.scss +0 -52
  358. package/di2mt/shared/components/table-filters/table-filters.component.ts +0 -28
  359. package/di2mt/shared/material.module.ts +0 -36
  360. package/di2mt/shared/services/api.service.ts +0 -92
  361. package/di2mt/shared/shared.module.ts +0 -38
  362. package/di2mt/shared/types/constants.ts +0 -14
  363. package/di2mt/shared/types/data-table.ts +0 -5
  364. package/di2mt/shared/types/table/filter.ts +0 -14
  365. package/di2mt/styles/tuki-widgets-theme.scss +0 -13
  366. package/di2mt/styles/variables.scss +0 -92
  367. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -92
  368. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -187
  369. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -205
  370. package/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -24
  371. package/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -45
  372. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -52
  373. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -53
  374. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -67
  375. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -7
  376. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  377. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -45
  378. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -7
  379. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  380. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -45
  381. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -59
  382. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -70
  383. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +0 -42
  384. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +0 -95
  385. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +0 -131
  386. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +0 -275
  387. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -218
  388. package/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -24
  389. package/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -73
  390. package/karma.conf.js +0 -44
  391. package/ng-package.json +0 -10
  392. package/src/lib/widgets.component.spec.ts +0 -23
  393. package/src/lib/widgets.component.ts +0 -20
  394. package/src/lib/widgets.module.ts +0 -16
  395. package/src/lib/widgets.service.spec.ts +0 -16
  396. package/src/lib/widgets.service.ts +0 -9
  397. package/src/test.ts +0 -27
  398. package/styles.scss +0 -572
  399. package/tsconfig.lib.json +0 -36
  400. package/tsconfig.lib.prod.json +0 -10
  401. package/tsconfig.spec.json +0 -17
  402. package/user-device-manage/ng-package.json +0 -7
  403. package/user-device-manage/src/app.constants.ts +0 -96
  404. package/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
  405. package/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
  406. package/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
  407. package/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
  408. package/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  409. package/user-device-manage/src/assets/icons/icon_user.svg +0 -1
  410. package/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  411. package/user-device-manage/src/classes/device.ts +0 -292
  412. package/user-device-manage/src/classes/line-association-interface.ts +0 -50
  413. package/user-device-manage/src/classes/line-association.ts +0 -177
  414. package/user-device-manage/src/classes/line-call-info-display.ts +0 -21
  415. package/user-device-manage/src/classes/line-directory.ts +0 -41
  416. package/user-device-manage/src/classes/line.ts +0 -144
  417. package/user-device-manage/src/classes/notification.ts +0 -40
  418. package/user-device-manage/src/classes/recording-options.ts +0 -6
  419. package/user-device-manage/src/classes/simplified-user.ts +0 -169
  420. package/user-device-manage/src/classes/site-defaults.ts +0 -167
  421. package/user-device-manage/src/classes/translation-pattern.ts +0 -50
  422. package/user-device-manage/src/classes/types.ts +0 -19
  423. package/user-device-manage/src/classes/user-interface.ts +0 -225
  424. package/user-device-manage/src/classes/user.ts +0 -8
  425. package/user-device-manage/src/common-functions.ts +0 -16
  426. package/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
  427. package/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
  428. package/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
  429. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
  430. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
  431. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
  432. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
  433. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
  434. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
  435. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -6
  436. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -4
  437. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -63
  438. package/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
  439. package/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
  440. package/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
  441. package/user-device-manage/src/device-list/device-list.component.html +0 -27
  442. package/user-device-manage/src/device-list/device-list.component.scss +0 -131
  443. package/user-device-manage/src/device-list/device-list.component.ts +0 -25
  444. package/user-device-manage/src/device-manage-widget.component.html +0 -209
  445. package/user-device-manage/src/device-manage-widget.component.scss +0 -502
  446. package/user-device-manage/src/device-manage-widget.component.ts +0 -354
  447. package/user-device-manage/src/environments/environment.prod.ts +0 -9
  448. package/user-device-manage/src/environments/environment.ts +0 -10
  449. package/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
  450. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  451. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  452. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  453. package/user-device-manage/src/material.module.ts +0 -87
  454. package/user-device-manage/src/notifications/notification.component.html +0 -33
  455. package/user-device-manage/src/notifications/notification.component.scss +0 -84
  456. package/user-device-manage/src/notifications/notification.component.ts +0 -46
  457. package/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
  458. package/user-device-manage/src/services/api.service.ts +0 -87
  459. package/user-device-manage/src/services/common-functions.ts +0 -17
  460. package/user-device-manage/src/services/device.service.ts +0 -95
  461. package/user-device-manage/src/services/dns.service.ts +0 -111
  462. package/user-device-manage/src/services/line.service.ts +0 -89
  463. package/user-device-manage/src/services/notification.service.ts +0 -68
  464. package/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
  465. package/user-device-manage/src/services/site-settings.service.ts +0 -82
  466. package/user-device-manage/src/services/sorting-utils.service.ts +0 -203
  467. package/user-device-manage/src/services/user.service.ts +0 -283
  468. package/user-device-manage/src/services/utils.service.ts +0 -87
  469. package/user-device-manage/src/services/validation.service.ts +0 -829
  470. package/user-device-manage/src/styles/_variables.scss +0 -90
  471. package/user-device-manage/src/styles/form.scss +0 -231
  472. package/user-device-manage/src/styles/icons.scss +0 -32
  473. package/user-device-manage/src/styles/styles.scss +0 -110
  474. package/user-device-manage/src/styles/tables.scss +0 -30
  475. package/user-device-manage/src/user-device-manage.module.ts +0 -73
  476. package/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -6
  477. package/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  478. package/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
  479. package/user-manage/ng-package.json +0 -7
  480. package/user-manage/src/app.constants.ts +0 -50
  481. package/user-manage/src/assets/icons/arrow-left.svg +0 -5
  482. package/user-manage/src/assets/icons/arrow-right.svg +0 -5
  483. package/user-manage/src/assets/icons/delete_icon.svg +0 -5
  484. package/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  485. package/user-manage/src/assets/icons/icon_user.svg +0 -1
  486. package/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  487. package/user-manage/src/classes/device.ts +0 -232
  488. package/user-manage/src/classes/line-association-interface.ts +0 -43
  489. package/user-manage/src/classes/line-association.ts +0 -161
  490. package/user-manage/src/classes/line-call-info-display.ts +0 -21
  491. package/user-manage/src/classes/line-directory.ts +0 -42
  492. package/user-manage/src/classes/line.ts +0 -144
  493. package/user-manage/src/classes/notification.ts +0 -39
  494. package/user-manage/src/classes/pagination.ts +0 -18
  495. package/user-manage/src/classes/recording-options.ts +0 -6
  496. package/user-manage/src/classes/simplified-user.ts +0 -165
  497. package/user-manage/src/classes/table-data.ts +0 -6
  498. package/user-manage/src/classes/translation-pattern.ts +0 -49
  499. package/user-manage/src/classes/user-interface.ts +0 -225
  500. package/user-manage/src/classes/user-list.ts +0 -42
  501. package/user-manage/src/classes/user.ts +0 -8
  502. package/user-manage/src/common-functions.ts +0 -16
  503. package/user-manage/src/device-list/device-list.component.html +0 -27
  504. package/user-manage/src/device-list/device-list.component.scss +0 -131
  505. package/user-manage/src/device-list/device-list.component.ts +0 -25
  506. package/user-manage/src/environments/environment.prod.ts +0 -9
  507. package/user-manage/src/environments/environment.ts +0 -10
  508. package/user-manage/src/interseptors/auth.interceptor.ts +0 -35
  509. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  510. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  511. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  512. package/user-manage/src/material.module.ts +0 -85
  513. package/user-manage/src/notifications/notification.component.html +0 -33
  514. package/user-manage/src/notifications/notification.component.scss +0 -84
  515. package/user-manage/src/notifications/notification.component.ts +0 -46
  516. package/user-manage/src/removeKynFromIBM.service.ts +0 -25
  517. package/user-manage/src/services/api.service.ts +0 -90
  518. package/user-manage/src/services/dns.service.ts +0 -116
  519. package/user-manage/src/services/line.service.ts +0 -31
  520. package/user-manage/src/services/notification.service.ts +0 -68
  521. package/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
  522. package/user-manage/src/services/site-settings.service.ts +0 -35
  523. package/user-manage/src/services/sorting-utils.service.ts +0 -203
  524. package/user-manage/src/services/user.service.ts +0 -242
  525. package/user-manage/src/services/users-search.service.ts +0 -59
  526. package/user-manage/src/services/utils.service.ts +0 -71
  527. package/user-manage/src/styles/_variables.scss +0 -90
  528. package/user-manage/src/styles/form.scss +0 -231
  529. package/user-manage/src/styles/icons.scss +0 -32
  530. package/user-manage/src/styles/styles.scss +0 -110
  531. package/user-manage/src/styles/tables.scss +0 -30
  532. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
  533. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -429
  534. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
  535. package/user-manage/src/user-calling/user-calling.component.html +0 -32
  536. package/user-manage/src/user-calling/user-calling.component.scss +0 -444
  537. package/user-manage/src/user-calling/user-calling.component.ts +0 -89
  538. package/user-manage/src/user-details/notification.service.ts +0 -68
  539. package/user-manage/src/user-info/user-info.component.html +0 -29
  540. package/user-manage/src/user-info/user-info.component.scss +0 -64
  541. package/user-manage/src/user-info/user-info.component.ts +0 -19
  542. package/user-manage/src/user-manage-widget.component.html +0 -290
  543. package/user-manage/src/user-manage-widget.component.scss +0 -463
  544. package/user-manage/src/user-manage-widget.component.ts +0 -212
  545. package/user-manage/src/user-manage.module.ts +0 -63
  546. package/user-manage/src/utils/app-loader/app-loader.component.html +0 -6
  547. package/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  548. package/user-manage/src/utils/app-loader/app-loader.ts +0 -13
  549. package/user-manage/src/utils/pagination/pagination.component.html +0 -26
  550. package/user-manage/src/utils/pagination/pagination.component.scss +0 -41
  551. package/user-manage/src/utils/pagination/pagination.component.ts +0 -41
  552. package/users-list/ng-package.json +0 -7
  553. package/users-list/src/app.constants.ts +0 -54
  554. package/users-list/src/assets/icons/close_icon_modal.svg +0 -3
  555. package/users-list/src/assets/icons/icon_user.svg +0 -1
  556. package/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
  557. package/users-list/src/assets/icons/white-close-icon.svg +0 -3
  558. package/users-list/src/classes/app-location.ts +0 -36
  559. package/users-list/src/classes/device.ts +0 -225
  560. package/users-list/src/classes/line.ts +0 -144
  561. package/users-list/src/classes/move-user.ts +0 -225
  562. package/users-list/src/classes/notification.ts +0 -38
  563. package/users-list/src/classes/pagination.ts +0 -18
  564. package/users-list/src/classes/simlified-user.ts +0 -74
  565. package/users-list/src/classes/table-data.ts +0 -6
  566. package/users-list/src/classes/user-interface.ts +0 -225
  567. package/users-list/src/classes/user-list.ts +0 -47
  568. package/users-list/src/classes/user.ts +0 -8
  569. package/users-list/src/material.module.ts +0 -94
  570. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +0 -37
  571. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +0 -129
  572. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +0 -46
  573. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +0 -31
  574. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +0 -20
  575. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +0 -26
  576. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -222
  577. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -239
  578. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -206
  579. package/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
  580. package/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
  581. package/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
  582. package/users-list/src/services/api-webex.service.ts +0 -14
  583. package/users-list/src/services/api.service.ts +0 -90
  584. package/users-list/src/services/dns.service.ts +0 -128
  585. package/users-list/src/services/events-communication.service.ts +0 -11
  586. package/users-list/src/services/move-user.service.ts +0 -59
  587. package/users-list/src/services/notification.service.ts +0 -68
  588. package/users-list/src/services/removeKynFromIBM.service.ts +0 -25
  589. package/users-list/src/services/site-settings.service.ts +0 -26
  590. package/users-list/src/services/user.service.ts +0 -159
  591. package/users-list/src/services/users-search.service.ts +0 -137
  592. package/users-list/src/styles/styles.scss +0 -572
  593. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
  594. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
  595. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
  596. package/users-list/src/users-list.component.css +0 -4
  597. package/users-list/src/users-list.component.css.map +0 -1
  598. package/users-list/src/users-list.component.html +0 -86
  599. package/users-list/src/users-list.component.scss +0 -572
  600. package/users-list/src/users-list.component.ts +0 -312
  601. package/users-list/src/users-list.module.ts +0 -63
  602. package/users-list/src/utils/app-loader/app-loader.component.css +0 -11
  603. package/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
  604. package/users-list/src/utils/app-loader/app-loader.component.html +0 -6
  605. package/users-list/src/utils/app-loader/app-loader.component.scss +0 -11
  606. package/users-list/src/utils/app-loader/app-loader.ts +0 -13
  607. package/users-list/src/utils/common-functions.ts +0 -32
  608. package/users-list/src/utils/notifications/notification.component.html +0 -33
  609. package/users-list/src/utils/notifications/notification.component.scss +0 -84
  610. package/users-list/src/utils/notifications/notification.component.ts +0 -46
  611. package/users-list/src/utils/pagination/pagination.component.css +0 -45
  612. package/users-list/src/utils/pagination/pagination.component.css.map +0 -1
  613. package/users-list/src/utils/pagination/pagination.component.html +0 -26
  614. package/users-list/src/utils/pagination/pagination.component.scss +0 -41
  615. package/users-list/src/utils/pagination/pagination.component.ts +0 -41
  616. package/users-list/src/utils/utils.service.ts +0 -71
  617. /package/user-device-manage/{public-api.ts → public-api.d.ts} +0 -0
  618. /package/user-manage/{public-api.ts → public-api.d.ts} +0 -0
  619. /package/users-list/{public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,82 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { map } from "rxjs";
3
+ import { API } from "../../api/api.endpoints";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../shared/services/api.service";
6
+ export class UpgradeOverviewService {
7
+ constructor(apiService) {
8
+ this.apiService = apiService;
9
+ }
10
+ getUpgradePreconditions() {
11
+ return this.apiService.fetch(API.OVERVIEW.GET_UPGRADE_PRECONDITIONS.replace(':customerId', this.customerId)).pipe(map((resp) => {
12
+ return {
13
+ id: resp.id,
14
+ customerId: resp.customerId,
15
+ controlHubIntegration: resp.controlHubIntegration,
16
+ numberOfAvailableLicences: resp.availableLicences
17
+ };
18
+ }));
19
+ }
20
+ getSiteInfrastructureSummary() {
21
+ return this.apiService.fetch(API.OVERVIEW.GET_SITE_INFRASTRUCTURE.replace(':customerId', this.customerId)).pipe(map((resp) => {
22
+ return {
23
+ id: resp.id,
24
+ customerId: resp.customerId,
25
+ totalSites: resp.totalSites,
26
+ totalLocations: resp.totalLocations,
27
+ totalPSTNs: resp.totalPSTNS
28
+ };
29
+ }));
30
+ }
31
+ getUsersUpgradeSummary() {
32
+ return this.apiService.fetch(API.OVERVIEW.GET_USERS_UPGRADE_SUMMARY.replace(':customerId', this.customerId)).pipe(map((resp) => {
33
+ return {
34
+ id: resp.id,
35
+ customerId: resp.customerId,
36
+ totalUsers: resp.totalUsers,
37
+ totalReadyUsers: resp.totalUsersReady,
38
+ totalUpgradedUsers: resp.totalUsersUpgraded
39
+ };
40
+ }));
41
+ }
42
+ getSitesUpgradeSummary() {
43
+ return this.apiService.fetch(API.OVERVIEW.GET_SITES_UPGRADE_SUMMARY.replace(':customerId', this.customerId)).pipe(map((resp) => {
44
+ return {
45
+ id: resp.id,
46
+ customerId: resp.customerId,
47
+ totalSites: resp.totalSites,
48
+ totalReadySites: resp.totalSitesReady,
49
+ totalUpgradedSites: resp.totalSitesUpgraded
50
+ };
51
+ }));
52
+ }
53
+ getUsersUpgradeReadiness() {
54
+ return this.apiService.fetch(API.OVERVIEW.GET_USERS_UPGRADE_READINESS.replace(':customerId', this.customerId)).pipe(map((resp) => {
55
+ return {
56
+ id: resp.id,
57
+ customerId: resp.customerId,
58
+ totalUsers: resp.totalUsers,
59
+ totalReadyUsers: resp.totalUsersReady
60
+ };
61
+ }));
62
+ }
63
+ getSitesUpgradeReadiness() {
64
+ return this.apiService.fetch(API.OVERVIEW.GET_SITES_UPGRADE_READINESS.replace(':customerId', this.customerId)).pipe(map((resp) => {
65
+ return {
66
+ id: resp.id,
67
+ customerId: resp.customerId,
68
+ totalSites: resp.totalSites,
69
+ totalReadySites: resp.totalSitesReady
70
+ };
71
+ }));
72
+ }
73
+ }
74
+ UpgradeOverviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpgradeOverviewService, deps: [{ token: i1.APIService }], target: i0.ɵɵFactoryTarget.Injectable });
75
+ UpgradeOverviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpgradeOverviewService, providedIn: 'root' });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpgradeOverviewService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root'
80
+ }]
81
+ }], ctorParameters: function () { return [{ type: i1.APIService }]; } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1vdmVydmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXBncmFkZS1vdmVydmlldy91cGdyYWRlLW92ZXJ2aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBSzlDLE1BQU0sT0FBTyxzQkFBc0I7SUFHL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFJLENBQUM7SUFFL0MsdUJBQXVCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ2pGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0gsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDakQseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNwRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCw0QkFBNEI7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDeEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENB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dEIsc0JBQXNCLGNBRm5CLE1BQU07NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaXRlSW5mcmFzdHJ1Y3R1cmVTdW1tYXJ5LCBTaXRlc1VwZ3JhZGVSZWFkaW5lc3MsIFNpdGVzVXBncmFkZVN1bW1hcnksIFVwZ3JhZGVQcmVjb25kaXRpb25zLCBVc2Vyc1VwZ3JhZGVSZWFkaW5lc3MsIFVzZXJzVXBncmFkZVN1bW1hcnkgfSBmcm9tIFwiLi90eXBlcy91cGdyYWRlLW92ZXJ2aWV3XCI7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gXCIuLi8uLi9hcGkvYXBpLmVuZHBvaW50c1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGdyYWRlT3ZlcnZpZXdTZXJ2aWNlIHtcclxuICAgIGN1c3RvbWVySWQhOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBnZXRVcGdyYWRlUHJlY29uZGl0aW9ucygpOiBPYnNlcnZhYmxlPFVwZ3JhZGVQcmVjb25kaXRpb25zPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9VUEdSQURFX1BSRUNPTkRJVElPTlMucmVwbGFjZSgnOmN1c3RvbWVySWQnLCB0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgICAgKS5waXBlKG1hcCgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHJlc3AuaWQsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21lcklkOiByZXNwLmN1c3RvbWVySWQsXHJcbiAgICAgICAgICAgICAgICBjb250cm9sSHViSW50ZWdyYXRpb246IHJlc3AuY29udHJvbEh1YkludGVncmF0aW9uLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZBdmFpbGFibGVMaWNlbmNlczogcmVzcC5hdmFpbGFibGVMaWNlbmNlc1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaXRlSW5mcmFzdHJ1Y3R1cmVTdW1tYXJ5KCk6IE9ic2VydmFibGU8U2l0ZUluZnJhc3RydWN0dXJlU3VtbWFyeT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goXHJcbiAgICAgICAgICAgIEFQSS5PVkVSVklFVy5HRVRfU0lURV9JTkZSQVNUUlVDVFVSRS5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApLnBpcGUobWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogcmVzcC5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHJlc3AuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsU2l0ZXM6IHJlc3AudG90YWxTaXRlcyxcclxuICAgICAgICAgICAgICAgIHRvdGFsTG9jYXRpb25zOiByZXNwLnRvdGFsTG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgdG90YWxQU1ROczogcmVzcC50b3RhbFBTVE5TXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJzVXBncmFkZVN1bW1hcnkoKTogT2JzZXJ2YWJsZTxVc2Vyc1VwZ3JhZGVTdW1tYXJ5PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9VU0VSU19VUEdSQURFX1NVTU1BUlkucmVwbGFjZSgnOmN1c3RvbWVySWQnLCB0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgICAgKS5waXBlKG1hcCgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHJlc3AuaWQsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21lcklkOiByZXNwLmN1c3RvbWVySWQsXHJcbiAgICAgICAgICAgICAgICB0b3RhbFVzZXJzOiByZXNwLnRvdGFsVXNlcnMsXHJcbiAgICAgICAgICAgICAgICB0b3RhbFJlYWR5VXNlcnM6IHJlc3AudG90YWxVc2Vyc1JlYWR5LFxyXG4gICAgICAgICAgICAgICAgdG90YWxVcGdyYWRlZFVzZXJzOiByZXNwLnRvdGFsVXNlcnNVcGdyYWRlZFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaXRlc1VwZ3JhZGVTdW1tYXJ5KCk6IE9ic2VydmFibGU8U2l0ZXNVcGdyYWRlU3VtbWFyeT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goXHJcbiAgICAgICAgICAgIEFQSS5PVkVSVklFVy5HRVRfU0lURVNfVVBHUkFERV9TVU1NQVJZLnJlcGxhY2UoJzpjdXN0b21lcklkJywgdGhpcy5jdXN0b21lcklkKVxyXG4gICAgICAgICkucGlwZShtYXAoKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGlkOiByZXNwLmlkLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tZXJJZDogcmVzcC5jdXN0b21lcklkLFxyXG4gICAgICAgICAgICAgICAgdG90YWxTaXRlczogcmVzcC50b3RhbFNpdGVzLFxyXG4gICAgICAgICAgICAgICAgdG90YWxSZWFkeVNpdGVzOiByZXNwLnRvdGFsU2l0ZXNSZWFkeSxcclxuICAgICAgICAgICAgICAgIHRvdGFsVXBncmFkZWRTaXRlczogcmVzcC50b3RhbFNpdGVzVXBncmFkZWRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXNlcnNVcGdyYWRlUmVhZGluZXNzKCk6IE9ic2VydmFibGU8VXNlcnNVcGdyYWRlUmVhZGluZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9VU0VSU19VUEdSQURFX1JFQURJTkVTUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApLnBpcGUobWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogcmVzcC5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHJlc3AuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsVXNlcnM6IHJlc3AudG90YWxVc2VycyxcclxuICAgICAgICAgICAgICAgIHRvdGFsUmVhZHlVc2VyczogcmVzcC50b3RhbFVzZXJzUmVhZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2l0ZXNVcGdyYWRlUmVhZGluZXNzKCk6IE9ic2VydmFibGU8U2l0ZXNVcGdyYWRlUmVhZGluZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9TSVRFU19VUEdSQURFX1JFQURJTkVTUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApLnBpcGUobWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogcmVzcC5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHJlc3AuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsU2l0ZXM6IHJlc3AudG90YWxTaXRlcyxcclxuICAgICAgICAgICAgICAgIHRvdGFsUmVhZHlTaXRlczogcmVzcC50b3RhbFNpdGVzUmVhZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXNlci11cGdyYWRlL3R5cGVzL3VzZXItdXBncmFkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFUEVOREVOQ0lFU19TVEFUVVMsIFN0YXR1cyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdHlwZXMvY29uc3RhbnRzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBEZXBlbmRlbmNpZXNTdGF0dXMgPSB0eXBlb2YgREVQRU5ERU5DSUVTX1NUQVRVU1trZXlvZiB0eXBlb2YgREVQRU5ERU5DSUVTX1NUQVRVU107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJVcGdyYWRlUmVjb3JkIHtcclxuICAgIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgdXNlck5hbWU6IHN0cmluZztcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcclxuICAgIHNpdGVJZDogc3RyaW5nO1xyXG4gICAgY3VjbUlkOiBzdHJpbmc7XHJcbiAgICBzaXRlTmFtZTogc3RyaW5nO1xyXG4gICAgZGV2aWNlczogc3RyaW5nW107XHJcbiAgICBwcmltYXJ5RXh0ZW5zaW9uPzogc3RyaW5nO1xyXG4gICAgZGV2aWNlU3RhdHVzOiBTdGF0dXM7XHJcbiAgICBkaWFsUGxhblN0YXR1czogU3RhdHVzO1xyXG4gICAgZGVwZW5kZW5jaWVzU3RhdHVzOiBEZXBlbmRlbmNpZXNTdGF0dXM7XHJcbiAgICB1cGdyYWRlU3RhdHVzOiBTdGF0dXM7XHJcbn07Il19
@@ -0,0 +1,197 @@
1
+ import { SelectionModel } from "@angular/cdk/collections";
2
+ import { Component, inject, Input } from "@angular/core";
3
+ import { MatTableDataSource } from "@angular/material/table";
4
+ import { Subject } from "rxjs";
5
+ import { takeUntil } from "rxjs";
6
+ import { UserUpgradeService } from "../user-upgrade.service";
7
+ import { DEPENDENCIES_STATUS, STATUS_ENTRIES } from "../../../shared/types/constants";
8
+ import { APIService } from "../../../shared/services/api.service";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "../../../shared/components/summary-card/summary-card.component";
12
+ import * as i3 from "../../../shared/components/table-filters/table-filters.component";
13
+ import * as i4 from "@angular/material/table";
14
+ import * as i5 from "@angular/material/button";
15
+ import * as i6 from "@angular/material/checkbox";
16
+ export class UserUpgradeDataTableComponent {
17
+ constructor() {
18
+ this.destroy$ = new Subject();
19
+ this.userUpgradeService = inject(UserUpgradeService);
20
+ this.apiService = inject(APIService);
21
+ this.STATUS_ENTRIES = STATUS_ENTRIES;
22
+ this.DEPENDENCIES_STATUS = DEPENDENCIES_STATUS;
23
+ this.displayedColumns = ['select', 'user', 'site', 'device', 'dialPlanStatus', 'dependencies', 'userUpgradeStatus'];
24
+ this.selection = new SelectionModel(true, []);
25
+ this.filters = [];
26
+ this.statusCounts = {};
27
+ this.activeFilters = {};
28
+ }
29
+ ngOnInit() {
30
+ this.apiService.token = this.token;
31
+ this.userUpgradeService.customerId = this.customerId;
32
+ this.userUpgradeService.getUserUpgradeRecords()
33
+ .pipe(takeUntil(this.destroy$))
34
+ .subscribe((records) => {
35
+ this.data = new MatTableDataSource(records);
36
+ this.setupCustomFilter();
37
+ this.initializeFilters(records);
38
+ });
39
+ this.userUpgradeService.getUserUpgradeStatusCounts()
40
+ .pipe(takeUntil(this.destroy$))
41
+ .subscribe((statusCounts) => {
42
+ this.statusCounts['Ready'] = statusCounts['READY'] || 0;
43
+ this.statusCounts['Not Ready'] = statusCounts['NOT_READY'] || 0;
44
+ this.statusCounts['Completed'] = statusCounts['COMPLETED'] || 0;
45
+ this.statusCounts['Failed'] = statusCounts['FAILED'] || 0;
46
+ });
47
+ }
48
+ ngOnDestroy() {
49
+ this.destroy$.next();
50
+ this.destroy$.complete();
51
+ }
52
+ initializeFilters(records) {
53
+ // Extract unique sites from actual data
54
+ const uniqueSites = [...new Set(records.map(record => record.siteName))];
55
+ const siteOptions = uniqueSites.map(site => ({
56
+ label: site,
57
+ value: site.toLowerCase().replace(/\s+/g, '-')
58
+ }));
59
+ // Extract unique statuses from actual data
60
+ const uniqueStatuses = [...new Set(records.map(record => record.upgradeStatus))];
61
+ const statusOptions = uniqueStatuses.map(status => ({
62
+ label: STATUS_ENTRIES[status],
63
+ value: status.toLowerCase().replace(/\s+/g, '-')
64
+ }));
65
+ this.filters = [
66
+ {
67
+ id: 'userName',
68
+ type: 'search',
69
+ columnKey: 'User',
70
+ placeholder: 'Search users...',
71
+ options: []
72
+ },
73
+ {
74
+ id: 'sites',
75
+ type: 'select',
76
+ columnKey: 'Site',
77
+ placeholder: 'Sites',
78
+ options: siteOptions
79
+ },
80
+ {
81
+ id: 'status',
82
+ type: 'select',
83
+ columnKey: 'User Upgrade Status',
84
+ placeholder: 'Upgrade Status',
85
+ options: statusOptions
86
+ }
87
+ ];
88
+ }
89
+ /** Whether the number of selected elements matches the total number of rows. */
90
+ isAllSelected() {
91
+ const numSelected = this.selection.selected.length;
92
+ const numRows = this.data?.data.length ?? 0;
93
+ return numSelected === numRows;
94
+ }
95
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
96
+ masterToggle() {
97
+ this.isAllSelected() ?
98
+ this.selection.clear() :
99
+ this.data?.data.forEach(row => this.selection.select(row));
100
+ }
101
+ upgradeUser(user) {
102
+ this.userUpgradeService.bulkUpgrade([user]);
103
+ }
104
+ upgradeSelectedUsers() {
105
+ this.userUpgradeService.bulkUpgrade(this.selection.selected);
106
+ }
107
+ onFilter(filterEvent) {
108
+ const { key, value } = filterEvent;
109
+ let filterValue;
110
+ if (value && value.value !== undefined) {
111
+ filterValue = value.value;
112
+ }
113
+ else if (value && value.target) {
114
+ filterValue = value.target.value;
115
+ }
116
+ else {
117
+ filterValue = value;
118
+ }
119
+ // Handle "All" option or empty values - remove the filter
120
+ if (filterValue === 'all' || !filterValue || filterValue === '') {
121
+ delete this.activeFilters[key];
122
+ }
123
+ else {
124
+ this.activeFilters[key] = filterValue;
125
+ }
126
+ this.applyFilters();
127
+ }
128
+ setupCustomFilter() {
129
+ this.data.filterPredicate = (data, filter) => {
130
+ const filters = JSON.parse(filter || '{}');
131
+ for (const [key, value] of Object.entries(filters)) {
132
+ if (!value)
133
+ continue;
134
+ switch (key) {
135
+ case 'User':
136
+ const searchTerm = value.toLowerCase();
137
+ if (!data.userName.toLowerCase().includes(searchTerm)) {
138
+ return false;
139
+ }
140
+ break;
141
+ case 'Site':
142
+ if (data.siteName !== this.getSiteNameFromValue(value)) {
143
+ return false;
144
+ }
145
+ break;
146
+ case 'User Upgrade Status':
147
+ if (!this.matchesUpgradeStatus(data.upgradeStatus, value)) {
148
+ return false;
149
+ }
150
+ break;
151
+ }
152
+ }
153
+ return true;
154
+ };
155
+ }
156
+ applyFilters() {
157
+ this.data.filter = JSON.stringify(this.activeFilters);
158
+ }
159
+ get filteredDataCount() {
160
+ return this.data?.filteredData?.length || 0;
161
+ }
162
+ getSiteNameFromValue(value) {
163
+ // Since we're now using actual site names, just convert back from slug format
164
+ return value.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
165
+ }
166
+ matchesUpgradeStatus(status, filterValue) {
167
+ // Handle direct status matching for cleaner implementation
168
+ return status.toLowerCase().replace(/\s+/g, '-') === filterValue.toLowerCase();
169
+ }
170
+ getStatusClass(status) {
171
+ switch (status.toLowerCase()) {
172
+ case 'ready':
173
+ return 'ready';
174
+ case 'not ready':
175
+ return 'not-ready';
176
+ case 'partial ready':
177
+ return 'partial-ready';
178
+ case 'completed':
179
+ return 'completed';
180
+ case 'failed':
181
+ return 'failed';
182
+ default:
183
+ return 'not-ready';
184
+ }
185
+ }
186
+ }
187
+ UserUpgradeDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
188
+ UserUpgradeDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserUpgradeDataTableComponent, selector: "tk-user-upgrade-data-table", inputs: { token: "token", customerId: "customerId" }, ngImport: i0, template: "<div class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button \r\n mat-button \r\n class=\"upgrade-bulk-button\" \r\n color=\"primary\" \r\n [disabled]=\"selection.selected.length === 0\" \r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox \r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox \r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready'\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"site-indicator\"></span>\r\n {{element.siteName}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"device-info\">\r\n <div *ngIf=\"element.devices.length > 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">Multiple devices</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"element.devices.length === 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devices[0]}}</span>\r\n </div>\r\n <span class=\"device-model\">{{ element.primaryExtension || 'No Extension' }}</span>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" \r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.user-upgrade-table{font-family:Inter,Inter,sans-serif;width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#1170cf}.user-upgrade-table .device-info{display:flex;align-items:center;gap:12px}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:8px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-info .device-name-wrapper .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-info .device-model{font-size:12px;color:#757575}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border:1px solid #08599c!important;color:#08599c!important;background:white!important;border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important}.user-upgrade-table .upgrade-button:hover{background-color:#e3f2fd!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}.action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark{color:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SummaryCardComponent, selector: "tk-summary-card", inputs: ["value", "status", "description"] }, { kind: "component", type: i3.TableFiltersComponent, selector: "tk-table-filters", inputs: ["filters"], outputs: ["filter"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.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: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, decorators: [{
190
+ type: Component,
191
+ args: [{ selector: 'tk-user-upgrade-data-table', template: "<div class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button \r\n mat-button \r\n class=\"upgrade-bulk-button\" \r\n color=\"primary\" \r\n [disabled]=\"selection.selected.length === 0\" \r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox \r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox \r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready'\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"site-indicator\"></span>\r\n {{element.siteName}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"device-info\">\r\n <div *ngIf=\"element.devices.length > 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">Multiple devices</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"element.devices.length === 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devices[0]}}</span>\r\n </div>\r\n <span class=\"device-model\">{{ element.primaryExtension || 'No Extension' }}</span>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" \r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.user-upgrade-table{font-family:Inter,Inter,sans-serif;width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#1170cf}.user-upgrade-table .device-info{display:flex;align-items:center;gap:12px}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:8px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-info .device-name-wrapper .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-info .device-model{font-size:12px;color:#757575}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border:1px solid #08599c!important;color:#08599c!important;background:white!important;border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important}.user-upgrade-table .upgrade-button:hover{background-color:#e3f2fd!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}.action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark{color:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"] }]
192
+ }], propDecorators: { token: [{
193
+ type: Input
194
+ }], customerId: [{
195
+ type: Input
196
+ }] } });
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXNlci11cGdyYWRlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC93aWRnZXRzL3VzZXItdXBncmFkZS91c2VyLXVwZ3JhZGUtZGF0YS10YWJsZS91c2VyLXVwZ3JhZGUtZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBVSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBUWxFLE1BQU0sT0FBTyw2QkFBNkI7SUFOMUM7UUFPWSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxlQUFVLEdBQUcsTUFBTSxDQUFD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S0FBYTtRQUN0Qyw4RUFBOEU7UUFDOUUsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQy9DLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDNUQsMkRBQTJEO1FBQzNELE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25GLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUN6QixRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMxQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxXQUFXO2dCQUNaLE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssZUFBZTtnQkFDaEIsT0FBTyxlQUFlLENBQUM7WUFDM0IsS0FBSyxXQUFXO2dCQUNaLE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQjtnQkFDSSxPQUFPLFdBQVcsQ0FBQztTQUMxQjtJQUNMLENBQUM7OzJIQXJNUSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3SENuQjFDLGt6TkFrSU07NEZEL0dPLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDSSw0QkFBNEI7OEJBWTdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC90eXBlcy9kYXRhLXRhYmxlXCI7XHJcbmltcG9ydCB7IFRhYmxlRmlsdGVyIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC90eXBlcy90YWJsZS9maWx0ZXJcIjtcclxuaW1wb3J0IHsgVXBncmFkZU92ZXJ2aWV3U2VydmljZSB9IGZyb20gXCIuLi8uLi91cGdyYWRlLW92ZXJ2aWV3L3VwZ3JhZGUtb3ZlcnZpZXcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlclVwZ3JhZGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3VzZXItdXBncmFkZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERFUEVOREVOQ0lFU19TVEFUVVMsIFN0YXR1cywgU1RBVFVTX0VOVFJJRVMgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3R5cGVzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBVc2VyVXBncmFkZVJlY29yZCB9IGZyb20gXCIuLi90eXBlcy91c2VyLXVwZ3JhZGVcIjtcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0ay11c2VyLXVwZ3JhZGUtZGF0YS10YWJsZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclVwZ3JhZGVEYXRhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgdXNlclVwZ3JhZGVTZXJ2aWNlID0gaW5qZWN0KFVzZXJVcGdyYWRlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2UgPSBpbmplY3QoQVBJU2VydmljZSk7XHJcbiAgICByZWFkb25seSBTVEFUVVNfRU5UUklFUyA9IFNUQVRVU19FTlRSSUVTO1xyXG4gICAgcmVhZG9ubHkgREVQRU5ERU5DSUVTX1NUQVRVUyA9IERFUEVOREVOQ0lFU19TVEFUVVM7XHJcblxyXG4gICAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjdXN0b21lcklkITogc3RyaW5nO1xyXG5cclxuICAgIGNvbHVtbnMhOiBUYWJsZUNvbHVtbltdO1xyXG4gICAgZGF0YSE6IE1hdFRhYmxlRGF0YVNvdXJjZTxVc2VyVXBncmFkZVJlY29yZD47XHJcbiAgICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnc2VsZWN0JywgJ3VzZXInLCAnc2l0ZScsICdkZXZpY2UnLCAnZGlhbFBsYW5TdGF0dXMnLCAnZGVwZW5kZW5jaWVzJywgJ3VzZXJVcGdyYWRlU3RhdHVzJ107XHJcbiAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VXNlclVwZ3JhZGVSZWNvcmQ+KHRydWUsIFtdKTtcclxuICAgIGZpbHRlcnM6IFRhYmxlRmlsdGVyW10gPSBbXTtcclxuXHJcbiAgICBzdGF0dXNDb3VudHM6IGFueSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgYWN0aXZlRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XHJcbiAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuY3VzdG9tZXJJZCA9IHRoaXMuY3VzdG9tZXJJZDtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLnVzZXJVcGdyYWRlU2VydmljZS5nZXRVc2VyVXBncmFkZVJlY29yZHMoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlY29yZHMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UocmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwQ3VzdG9tRmlsdGVyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJzKHJlY29yZHMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuZ2V0VXNlclVwZ3JhZGVTdGF0dXNDb3VudHMoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXR1c0NvdW50cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXNDb3VudHNbJ1JlYWR5J10gPSBzdGF0dXNDb3VudHNbJ1JFQURZJ10gfHwgMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydOb3QgUmVhZHknXSA9IHN0YXR1c0NvdW50c1snTk9UX1JFQURZJ10gfHwgMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydDb21wbGV0ZWQnXSA9IHN0YXR1c0NvdW50c1snQ09NUExFVEVEJ10gfHwgMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydGYWlsZWQnXSA9IHN0YXR1c0NvdW50c1snRkFJTEVEJ10gfHwgMDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUZpbHRlcnMocmVjb3JkczogYW55W10pOiB2b2lkIHtcclxuICAgICAgICAvLyBFeHRyYWN0IHVuaXF1ZSBzaXRlcyBmcm9tIGFjdHVhbCBkYXRhXHJcbiAgICAgICAgY29uc3QgdW5pcXVlU2l0ZXMgPSBbLi4ubmV3IFNldChyZWNvcmRzLm1hcChyZWNvcmQgPT4gcmVjb3JkLnNpdGVOYW1lKSldO1xyXG4gICAgICAgIGNvbnN0IHNpdGVPcHRpb25zID0gdW5pcXVlU2l0ZXMubWFwKHNpdGUgPT4gKHtcclxuICAgICAgICAgICAgbGFiZWw6IHNpdGUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBzaXRlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAvLyBFeHRyYWN0IHVuaXF1ZSBzdGF0dXNlcyBmcm9tIGFjdHVhbCBkYXRhXHJcbiAgICAgICAgY29uc3QgdW5pcXVlU3RhdHVzZXMgPSBbLi4ubmV3IFNldChyZWNvcmRzLm1hcChyZWNvcmQgPT4gcmVjb3JkLnVwZ3JhZGVTdGF0dXMpKV07XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzT3B0aW9ucyA9IHVuaXF1ZVN0YXR1c2VzLm1hcChzdGF0dXMgPT4gKHtcclxuICAgICAgICAgICAgbGFiZWw6IFNUQVRVU19FTlRSSUVTW3N0YXR1c10sXHJcbiAgICAgICAgICAgIHZhbHVlOiBzdGF0dXMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJylcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6ICd1c2VyTmFtZScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VhcmNoJyxcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleTogJ1VzZXInLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2ggdXNlcnMuLi4nLFxyXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6ICdzaXRlcycsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleTogJ1NpdGUnLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdTaXRlcycsXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBzaXRlT3B0aW9uc1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ3N0YXR1cycsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleTogJ1VzZXIgVXBncmFkZSBTdGF0dXMnLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdVcGdyYWRlIFN0YXR1cycsXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBzdGF0dXNPcHRpb25zXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MuICovXHJcbiAgICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGE/LmRhdGEubGVuZ3RoID8/IDA7XHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZWxlY3RzIGFsbCByb3dzIGlmIHRoZXkgYXJlIG5vdCBhbGwgc2VsZWN0ZWQ7IG90aGVyd2lzZSBjbGVhciBzZWxlY3Rpb24uICovXHJcbiAgICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICAgICAgdGhpcy5pc0FsbFNlbGVjdGVkKCkgP1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpIDpcclxuICAgICAgICAgICAgdGhpcy5kYXRhPy5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGdyYWRlVXNlcih1c2VyOiBVc2VyVXBncmFkZVJlY29yZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXNlclVwZ3JhZGVTZXJ2aWNlLmJ1bGtVcGdyYWRlKFt1c2VyXSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgdXBncmFkZVNlbGVjdGVkVXNlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuYnVsa1VwZ3JhZGUodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRmlsdGVyKGZpbHRlckV2ZW50OiB7IGtleTogc3RyaW5nLCB2YWx1ZTogYW55IH0pIHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IGZpbHRlckV2ZW50O1xyXG5cclxuICAgICAgICBsZXQgZmlsdGVyVmFsdWU6IGFueTtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGZpbHRlclZhbHVlID0gdmFsdWUudGFyZ2V0LnZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbHRlclZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBIYW5kbGUgXCJBbGxcIiBvcHRpb24gb3IgZW1wdHkgdmFsdWVzIC0gcmVtb3ZlIHRoZSBmaWx0ZXJcclxuICAgICAgICBpZiAoZmlsdGVyVmFsdWUgPT09ICdhbGwnIHx8ICFmaWx0ZXJWYWx1ZSB8fCBmaWx0ZXJWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYWN0aXZlRmlsdGVyc1trZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlRmlsdGVyc1trZXldID0gZmlsdGVyVmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBDdXN0b21GaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKGZpbHRlciB8fCAne30nKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1VzZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gKHZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhLnVzZXJOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdTaXRlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc2l0ZU5hbWUgIT09IHRoaXMuZ2V0U2l0ZU5hbWVGcm9tVmFsdWUodmFsdWUgYXMgc3RyaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1VzZXIgVXBncmFkZSBTdGF0dXMnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWF0Y2hlc1VwZ3JhZGVTdGF0dXMoZGF0YS51cGdyYWRlU3RhdHVzLCB2YWx1ZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcHBseUZpbHRlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLmZpbHRlciA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZpbHRlcmVkRGF0YUNvdW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YT8uZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNpdGVOYW1lRnJvbVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIG5vdyB1c2luZyBhY3R1YWwgc2l0ZSBuYW1lcywganVzdCBjb252ZXJ0IGJhY2sgZnJvbSBzbHVnIGZvcm1hdFxyXG4gICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLScpLm1hcCh3b3JkID0+XHJcbiAgICAgICAgICAgIHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpXHJcbiAgICAgICAgKS5qb2luKCcgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBtYXRjaGVzVXBncmFkZVN0YXR1cyhzdGF0dXM6IHN0cmluZywgZmlsdGVyVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBkaXJlY3Qgc3RhdHVzIG1hdGNoaW5nIGZvciBjbGVhbmVyIGltcGxlbWVudGF0aW9uXHJcbiAgICAgICAgcmV0dXJuIHN0YXR1cy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKSA9PT0gZmlsdGVyVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXNDbGFzcyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChzdGF0dXMudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgICAgICBjYXNlICdyZWFkeSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlYWR5JztcclxuICAgICAgICAgICAgY2FzZSAnbm90IHJlYWR5JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnbm90LXJlYWR5JztcclxuICAgICAgICAgICAgY2FzZSAncGFydGlhbCByZWFkeSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BhcnRpYWwtcmVhZHknO1xyXG4gICAgICAgICAgICBjYXNlICdjb21wbGV0ZWQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdjb21wbGV0ZWQnO1xyXG4gICAgICAgICAgICBjYXNlICdmYWlsZWQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdmYWlsZWQnO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdub3QtcmVhZHknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXNlci11cGdyYWRlLXN0YXR1cy13cmFwcGVyXCI+XHJcbiAgICAgICAgPHRrLXN1bW1hcnktY2FyZCBbZGVzY3JpcHRpb25dPVwiJ1VzZXJzIGFyZSByZWFkeSB0byB1cGdyYWRlJ1wiIFt2YWx1ZV09XCJzdGF0dXNDb3VudHNbJ1JlYWR5J11cIj48L3RrLXN1bW1hcnktY2FyZD5cclxuICAgICAgICA8dGstc3VtbWFyeS1jYXJkIFtkZXNjcmlwdGlvbl09XCInVXNlcnMgYXJlIG5vdCByZWFkeSdcIiBbdmFsdWVdPVwic3RhdHVzQ291bnRzWydOb3QgUmVhZHknXVwiIFtzdGF0dXNdPVwiJ05vdCBSZWFkeSdcIj48L3RrLXN1bW1hcnktY2FyZD5cclxuICAgICAgICA8dGstc3VtbWFyeS1jYXJkIFtkZXNjcmlwdGlvbl09XCInVXNlcnMgZmFpbGVkIHRvIHVwZ3JhZGUnXCIgW3ZhbHVlXT1cInN0YXR1c0NvdW50c1snRmFpbGVkJ11cIiBbc3RhdHVzXT1cIidGYWlsZWQnXCI+PC90ay1zdW1tYXJ5LWNhcmQ+XHJcbiAgICAgICAgPHRrLXN1bW1hcnktY2FyZCBbZGVzY3JpcHRpb25dPVwiJ1N1Y2Nlc3NmdWxseSB1cGdyYWRlZCdcIiBbdmFsdWVdPVwic3RhdHVzQ291bnRzWydDb21wbGV0ZWQnXVwiIFtzdGF0dXNdPVwiJ0NvbXBsZXRlZCdcIj48L3RrLXN1bW1hcnktY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWFjdGlvbi1wYW5lbFwiPlxyXG4gICAgICAgIDx0ay10YWJsZS1maWx0ZXJzICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPiAwXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIChmaWx0ZXIpPVwib25GaWx0ZXIoJGV2ZW50KVwiPjwvdGstdGFibGUtZmlsdGVycz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3tmaWx0ZXJlZERhdGFDb3VudH19IFVzZXJzPC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvbiBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXBncmFkZS1idWxrLWJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMFwiIFxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZ3JhZGVTZWxlY3RlZFVzZXJzKClcIj5cclxuICAgICAgICAgICAgICAgIFVwZ3JhZGUge3sgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCA/ICcnIDogJygnICsgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCArICcpJyB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhXCIgY2xhc3M9XCJ1c2VyLXVwZ3JhZGUtdGFibGVcIj5cclxuXHJcbiAgICAgICAgPCEtLSBDaGVja2JveCBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlNUQVRVU19FTlRSSUVTW3Jvdy51cGdyYWRlU3RhdHVzXSAhPT0gJ1JlYWR5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFVzZXIgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlclwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlVzZXI8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj57e2VsZW1lbnQudXNlck5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWVtYWlsXCI+e3tlbGVtZW50LnVzZXJOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNpdGUgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2l0ZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlNpdGU8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpdGUtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2l0ZS1pbmRpY2F0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbGVtZW50LnNpdGVOYW1lfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERldmljZSBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXZpY2VcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5EZXZpY2U8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldmljZS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVsZW1lbnQuZGV2aWNlcy5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXZpY2UtbmFtZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldmljZS1pbmRpY2F0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldmljZS1uYW1lXCI+TXVsdGlwbGUgZGV2aWNlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVsZW1lbnQuZGV2aWNlcy5sZW5ndGggPT09IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldmljZS1uYW1lLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLWluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLW5hbWVcIj57e2VsZW1lbnQuZGV2aWNlc1swXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXZpY2UtbW9kZWxcIj57eyBlbGVtZW50LnByaW1hcnlFeHRlbnNpb24gfHwgJ05vIEV4dGVuc2lvbicgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBEaWFsIFBsYW4gU3RhdHVzIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRpYWxQbGFuU3RhdHVzXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+RGlhbCBQbGFuIFN0YXR1czwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJnZXRTdGF0dXNDbGFzcyhlbGVtZW50LmRpYWxQbGFuU3RhdHVzKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1NUQVRVU19FTlRSSUVTW2VsZW1lbnQuZGlhbFBsYW5TdGF0dXNdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBEZXBlbmRlbmNpZXMgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVwZW5kZW5jaWVzXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+RGVwZW5kZW5jaWVzPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiREVQRU5ERU5DSUVTX1NUQVRVU1tlbGVtZW50LmRlcGVuZGVuY2llc1N0YXR1c10gPT09ICdEZXBlbmRlbmNpZXMgZm91bmQnXCIgY2xhc3M9XCJkZXBlbmRlbmNpZXMtdGV4dFwiPnt7REVQRU5ERU5DSUVTX1NUQVRVU1tlbGVtZW50LmRlcGVuZGVuY2llc1N0YXR1c119fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiREVQRU5ERU5DSUVTX1NUQVRVU1tlbGVtZW50LmRlcGVuZGVuY2llc1N0YXR1c10gPT09ICdObyBkZXBlbmRlbmNpZXMnXCI+4oCUPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFVzZXIgVXBncmFkZSBTdGF0dXMgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlclVwZ3JhZGVTdGF0dXNcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5Vc2VyIFVwZ3JhZGUgU3RhdHVzPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGdyYWRlLXN0YXR1cy1jZWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNUQVRVU19FTlRSSUVTW2VsZW1lbnQudXBncmFkZVN0YXR1c10gPT09ICdSZWFkeSc7IGVsc2Ugc3RhdHVzQmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwidXBncmFkZS1idXR0b25cIiAoY2xpY2spPVwidXBncmFkZVVzZXIoZWxlbWVudClcIj5VcGdyYWRlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGF0dXNCbG9jaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJnZXRTdGF0dXNDbGFzcyhlbGVtZW50LnVwZ3JhZGVTdGF0dXMpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tTVEFUVVNfRU5UUklFU1tlbGVtZW50LnVwZ3JhZGVTdGF0dXNdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiBcclxuICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLXJvd109XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCI+PC90cj5cclxuICAgIDwvdGFibGU+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,40 @@
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 * as i0 from "@angular/core";
9
+ export class UserUpgradeModule {
10
+ }
11
+ UserUpgradeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ UserUpgradeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, declarations: [UserUpgradeDataTableComponent], imports: [CommonModule,
13
+ SharedModule,
14
+ MatTableModule,
15
+ MatButtonModule,
16
+ MatCheckboxModule], exports: [UserUpgradeDataTableComponent] });
17
+ UserUpgradeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, imports: [CommonModule,
18
+ SharedModule,
19
+ MatTableModule,
20
+ MatButtonModule,
21
+ MatCheckboxModule] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ declarations: [
26
+ UserUpgradeDataTableComponent
27
+ ],
28
+ imports: [
29
+ CommonModule,
30
+ SharedModule,
31
+ MatTableModule,
32
+ MatButtonModule,
33
+ MatCheckboxModule
34
+ ],
35
+ exports: [
36
+ UserUpgradeDataTableComponent
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC93aWRnZXRzL3VzZXItdXBncmFkZS91c2VyLXVwZ3JhZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWlCL0QsTUFBTSxPQUFPLGlCQUFpQjs7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQWJ0Qiw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQixhQUdqQiw2QkFBNkI7Z0hBR3hCLGlCQUFpQixZQVZ0QixZQUFZO1FBQ1osWUFBWTtRQUNaLGNBQWM7UUFDZCxlQUFlO1FBQ2YsaUJBQWlCOzRGQU1aLGlCQUFpQjtrQkFmN0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsNkJBQTZCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDTCw2QkFBNkI7cUJBQ2hDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyVXBncmFkZURhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlXCI7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgVXNlclVwZ3JhZGVEYXRhVGFibGVDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcclxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgVXNlclVwZ3JhZGVEYXRhVGFibGVDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJVcGdyYWRlTW9kdWxlIHt9Il19
@@ -0,0 +1,58 @@
1
+ import { inject, Injectable } from "@angular/core";
2
+ import { catchError, map, of } from "rxjs";
3
+ import { API } from "../../api/api.endpoints";
4
+ import { APIService } from "../../shared/services/api.service";
5
+ import * as i0 from "@angular/core";
6
+ export class UserUpgradeService {
7
+ constructor() {
8
+ this.apiService = inject(APIService);
9
+ }
10
+ // TODO: Impl the user upgrade logic here
11
+ bulkUpgrade(users) {
12
+ const entities = users.map(record => ({ cucmId: record.cucmId, entityId: record.userId }));
13
+ const customerId = users[0].customerId;
14
+ const siteId = users[0].siteId;
15
+ const body = {
16
+ customerId,
17
+ siteId,
18
+ entities: {
19
+ 'PERSON': entities
20
+ }
21
+ };
22
+ console.log(body);
23
+ // This is not done yet...
24
+ return this.apiService.post(API.USER_UPGRADE.UPGRADE_USER.replace(':siteId', siteId).replace(':userId', users[0].userId), body, {}).pipe(catchError((err) => of(err)));
25
+ }
26
+ getUserUpgradeStatusCounts() {
27
+ return this.apiService.fetch(API.USER_UPGRADE.GET_USERS_UPGRADE_STATUS_COUNTS.replace(':customerId', this.customerId));
28
+ }
29
+ getUserUpgradeRecords() {
30
+ return this.apiService.fetch(API.USER_UPGRADE.GET_USERS_UPGRADE_DATA.replace(':customerId', this.customerId)).pipe(map((resp) => {
31
+ return resp.content;
32
+ // This was added because of mapping issues with BE resp;
33
+ // return resp.content.map((record: UserUpgradeRecord) => ({
34
+ // userId: record.userId,
35
+ // userName: record.userName,
36
+ // customerId: record.customerId,
37
+ // siteId: record.siteId,
38
+ // siteName: record.siteName,
39
+ // devices: record.devices,
40
+ // cucmId: record.cucmId,
41
+ // primaryExtension: record.primaryExtension,
42
+ // deviceStatus: record.deviceStatus,
43
+ // dialPlanStatus: record.dialPlanStatus,
44
+ // dependenciesStatus: record.dependenciesStatus,
45
+ // upgradeStatus: record.upgradeStatus
46
+ // } as UserUpgradeRecord));
47
+ }));
48
+ }
49
+ }
50
+ UserUpgradeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
51
+ UserUpgradeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeService, providedIn: 'root' });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeService, decorators: [{
53
+ type: Injectable,
54
+ args: [{
55
+ providedIn: 'root'
56
+ }]
57
+ }] });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvZGkybXQvd2lkZ2V0cy91c2VyLXVwZ3JhZGUvdXNlci11cGdyYWRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBSy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBNkQzQztJQXRERyx5Q0FBeUM7SUFDekMsV0FBVyxDQUFDLEtBQTBCO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRS9CLE1BQU0sSUFBSSxHQUFHO1lBQ1QsVUFBVTtZQUNWLE1BQU07WUFDTixRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLFFBQVE7YUFDckI7U0FDSixDQUFDO1FBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQiwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDNUYsSUFBSSxFQUNKLEVBQUUsQ0FDTCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUN4QixHQUFHLENBQUMsWUFBWSxDQUFDLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzRixDQUFDO0lBQ04sQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUN4QixHQUFHLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNsRixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxPQUE4QixDQUFDO1lBRTNDLHlEQUF5RDtZQUV6RCw0REFBNEQ7WUFDNUQsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQyxxQ0FBcUM7WUFDckMsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQywrQkFBK0I7WUFDL0IsNkJBQTZCO1lBQzdCLGlEQUFpRDtZQUNqRCx5Q0FBeUM7WUFDekMsNkNBQTZDO1lBQzdDLHFEQUFxRDtZQUNyRCwwQ0FBMEM7WUFDMUMsNEJBQTRCO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOztnSEE3RFEsa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGZixNQUFNOzRGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgVXNlclVwZ3JhZGVSZWNvcmQgfSBmcm9tIFwiLi90eXBlcy91c2VyLXVwZ3JhZGVcIjtcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gXCIuLi8uLi9hcGkvYXBpLmVuZHBvaW50c1wiO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyVXBncmFkZVNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFQSVNlcnZpY2UpO1xyXG5cclxuICAgIGN1c3RvbWVySWQhOiBzdHJpbmc7XHJcblxyXG4gICAgdXNlcnNEYXRhU291cmNlITogVXNlclVwZ3JhZGVSZWNvcmRbXTtcclxuICAgIGZpbHRlcmVkVXNlcnNEYXRhU291cmNlITogVXNlclVwZ3JhZGVSZWNvcmRbXTtcclxuXHJcbiAgICAvLyBUT0RPOiBJbXBsIHRoZSB1c2VyIHVwZ3JhZGUgbG9naWMgaGVyZVxyXG4gICAgYnVsa1VwZ3JhZGUodXNlcnM6IFVzZXJVcGdyYWRlUmVjb3JkW10pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcclxuICAgICAgICBjb25zdCBlbnRpdGllcyA9IHVzZXJzLm1hcChyZWNvcmQgPT4gKHsgY3VjbUlkOiByZWNvcmQuY3VjbUlkLCBlbnRpdHlJZDogcmVjb3JkLnVzZXJJZCB9KSk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tZXJJZCA9IHVzZXJzWzBdLmN1c3RvbWVySWQ7XHJcbiAgICAgICAgY29uc3Qgc2l0ZUlkID0gdXNlcnNbMF0uc2l0ZUlkO1xyXG5cclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBjdXN0b21lcklkLFxyXG4gICAgICAgICAgICBzaXRlSWQsXHJcbiAgICAgICAgICAgIGVudGl0aWVzOiB7XHJcbiAgICAgICAgICAgICAgICAnUEVSU09OJzogZW50aXRpZXNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKGJvZHkpO1xyXG4gICAgXHJcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgZG9uZSB5ZXQuLi5cclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXHJcbiAgICAgICAgICAgIEFQSS5VU0VSX1VQR1JBREUuVVBHUkFERV9VU0VSLnJlcGxhY2UoJzpzaXRlSWQnLCBzaXRlSWQpLnJlcGxhY2UoJzp1c2VySWQnLCB1c2Vyc1swXS51c2VySWQpLFxyXG4gICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICB7fVxyXG4gICAgICAgICkucGlwZShjYXRjaEVycm9yKChlcnIpID0+IG9mKGVycikpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVc2VyVXBncmFkZVN0YXR1c0NvdW50cygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goXHJcbiAgICAgICAgICAgIEFQSS5VU0VSX1VQR1JBREUuR0VUX1VTRVJTX1VQR1JBREVfU1RBVFVTX0NPVU5UUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJVcGdyYWRlUmVjb3JkcygpOiBPYnNlcnZhYmxlPFVzZXJVcGdyYWRlUmVjb3JkW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKFxyXG4gICAgICAgICAgICBBUEkuVVNFUl9VUEdSQURFLkdFVF9VU0VSU19VUEdSQURFX0RBVEEucmVwbGFjZSgnOmN1c3RvbWVySWQnLCB0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgICAgKS5waXBlKG1hcCgocmVzcCkgPT4geyBcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3AuY29udGVudCBhcyBVc2VyVXBncmFkZVJlY29yZFtdO1xyXG5cclxuICAgICAgICAgICAgLy8gVGhpcyB3YXMgYWRkZWQgYmVjYXVzZSBvZiBtYXBwaW5nIGlzc3VlcyB3aXRoIEJFIHJlc3A7XHJcblxyXG4gICAgICAgICAgICAvLyByZXR1cm4gcmVzcC5jb250ZW50Lm1hcCgocmVjb3JkOiBVc2VyVXBncmFkZVJlY29yZCkgPT4gKHtcclxuICAgICAgICAgICAgLy8gICAgIHVzZXJJZDogcmVjb3JkLnVzZXJJZCxcclxuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiByZWNvcmQudXNlck5hbWUsXHJcbiAgICAgICAgICAgIC8vICAgICBjdXN0b21lcklkOiByZWNvcmQuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgLy8gICAgIHNpdGVJZDogcmVjb3JkLnNpdGVJZCxcclxuICAgICAgICAgICAgLy8gICAgIHNpdGVOYW1lOiByZWNvcmQuc2l0ZU5hbWUsXHJcbiAgICAgICAgICAgIC8vICAgICBkZXZpY2VzOiByZWNvcmQuZGV2aWNlcyxcclxuICAgICAgICAgICAgLy8gICAgIGN1Y21JZDogcmVjb3JkLmN1Y21JZCxcclxuICAgICAgICAgICAgLy8gICAgIHByaW1hcnlFeHRlbnNpb246IHJlY29yZC5wcmltYXJ5RXh0ZW5zaW9uLFxyXG4gICAgICAgICAgICAvLyAgICAgZGV2aWNlU3RhdHVzOiByZWNvcmQuZGV2aWNlU3RhdHVzLFxyXG4gICAgICAgICAgICAvLyAgICAgZGlhbFBsYW5TdGF0dXM6IHJlY29yZC5kaWFsUGxhblN0YXR1cyxcclxuICAgICAgICAgICAgLy8gICAgIGRlcGVuZGVuY2llc1N0YXR1czogcmVjb3JkLmRlcGVuZGVuY2llc1N0YXR1cyxcclxuICAgICAgICAgICAgLy8gICAgIHVwZ3JhZGVTdGF0dXM6IHJlY29yZC51cGdyYWRlU3RhdHVzXHJcbiAgICAgICAgICAgIC8vIH0gYXMgVXNlclVwZ3JhZGVSZWNvcmQpKTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,22 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class WidgetsComponent {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ }
7
+ }
8
+ WidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ WidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetsComponent, selector: "lib-widgets", ngImport: i0, template: `
10
+ <p>
11
+ widgets works!
12
+ </p>
13
+ `, isInline: true });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-widgets', template: `
17
+ <p>
18
+ widgets works!
19
+ </p>
20
+ ` }]
21
+ }], ctorParameters: function () { return []; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVlsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzs4R0FMVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixtREFSakI7Ozs7R0FJVDs0RkFJVSxnQkFBZ0I7a0JBVjVCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7O0dBSVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItd2lkZ2V0cycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICB3aWRnZXRzIHdvcmtzIVxuICAgIDwvcD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { WidgetsComponent } from './widgets.component';
3
+ import * as i0 from "@angular/core";
4
+ export class WidgetsModule {
5
+ }
6
+ WidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ WidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule, declarations: [WidgetsComponent], exports: [WidgetsComponent] });
8
+ WidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [
13
+ WidgetsComponent
14
+ ],
15
+ imports: [],
16
+ exports: [
17
+ WidgetsComponent
18
+ ]
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWN2RCxNQUFNLE9BQU8sYUFBYTs7MkdBQWIsYUFBYTs0R0FBYixhQUFhLGlCQVJ0QixnQkFBZ0IsYUFLaEIsZ0JBQWdCOzRHQUdQLGFBQWE7NEZBQWIsYUFBYTtrQkFWekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsRUFDUjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaWRnZXRzQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzLmNvbXBvbmVudCc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBXaWRnZXRzQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFdpZGdldHNDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRzTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class WidgetsService {
4
+ constructor() { }
5
+ }
6
+ WidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ WidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxjQUFjO0lBRXpCLGdCQUFnQixDQUFDOzs0R0FGTixjQUFjO2dIQUFkLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRzU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Public API Surface of widgets
3
+ */
4
+ export * from './lib/widgets.service';
5
+ export * from './lib/widgets.component';
6
+ export * from './lib/widgets.module';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB3aWRnZXRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMubW9kdWxlJztcbiJdfQ==