@tuki-io/tuki-widgets 0.0.76 → 0.0.77

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 (664) hide show
  1. package/README.md +9 -10
  2. package/di2mt/api/api.endpoints.d.ts +26 -0
  3. package/di2mt/index.d.ts +5 -0
  4. package/{projects/tuki/widgets/di2mt/public-api.ts → di2mt/public-api.d.ts} +0 -14
  5. package/di2mt/shared/components/card/card.component.d.ts +6 -0
  6. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +22 -0
  7. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +14 -0
  8. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +7 -0
  9. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +9 -0
  10. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +14 -0
  11. package/di2mt/shared/constants/app.constants.d.ts +74 -0
  12. package/di2mt/shared/material.module.d.ts +15 -0
  13. package/di2mt/shared/services/api.service.d.ts +20 -0
  14. package/di2mt/shared/shared.module.d.ts +16 -0
  15. package/di2mt/shared/types/constants.d.ts +8 -0
  16. package/di2mt/shared/types/data-table.d.ts +5 -0
  17. package/di2mt/shared/types/table/filter.d.ts +16 -0
  18. package/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.d.ts +13 -0
  19. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +62 -0
  20. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +15 -0
  21. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +34 -0
  22. package/di2mt/widgets/site-upgrade/types/user-upgrade.d.ts +21 -0
  23. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +19 -0
  24. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +19 -0
  25. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +18 -0
  26. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +19 -0
  27. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +19 -0
  28. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +15 -0
  29. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +18 -0
  30. package/{projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts → di2mt/widgets/upgrade-overview/types/upgrade-overview.d.ts} +18 -20
  31. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +15 -0
  32. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +17 -0
  33. package/{projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts → di2mt/widgets/user-upgrade/types/user-upgrade.d.ts} +1 -3
  34. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +71 -0
  35. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +16 -0
  36. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +25 -0
  37. package/esm2020/di2mt/api/api.endpoints.mjs +27 -0
  38. package/esm2020/di2mt/public-api.mjs +24 -0
  39. package/esm2020/di2mt/shared/components/card/card.component.mjs +13 -0
  40. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +62 -0
  41. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +47 -0
  42. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +17 -0
  43. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +36 -0
  44. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +37 -0
  45. package/esm2020/di2mt/shared/constants/app.constants.mjs +95 -0
  46. package/esm2020/di2mt/shared/material.module.mjs +76 -0
  47. package/esm2020/di2mt/shared/services/api.service.mjs +86 -0
  48. package/esm2020/di2mt/shared/shared.module.mjs +61 -0
  49. package/esm2020/di2mt/shared/types/constants.mjs +12 -0
  50. package/esm2020/di2mt/shared/types/data-table.mjs +2 -0
  51. package/esm2020/di2mt/shared/types/table/filter.mjs +2 -0
  52. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +5 -0
  53. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +44 -0
  54. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +317 -0
  55. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +53 -0
  56. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +78 -0
  57. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +3 -0
  58. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +64 -0
  59. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +64 -0
  60. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +68 -0
  61. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +45 -0
  62. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +45 -0
  63. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +64 -0
  64. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +74 -0
  65. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +2 -0
  66. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +59 -0
  67. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +82 -0
  68. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +3 -0
  69. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +272 -0
  70. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +59 -0
  71. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +50 -0
  72. package/esm2020/lib/widgets.component.mjs +22 -0
  73. package/esm2020/lib/widgets.module.mjs +21 -0
  74. package/esm2020/lib/widgets.service.mjs +14 -0
  75. package/esm2020/public-api.mjs +7 -0
  76. package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
  77. package/esm2020/user-device-manage/public-api.mjs +9 -0
  78. package/esm2020/user-device-manage/src/app.constants.mjs +95 -0
  79. package/esm2020/user-device-manage/src/classes/device.mjs +85 -0
  80. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -0
  81. package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -0
  82. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -0
  83. package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -0
  84. package/esm2020/user-device-manage/src/classes/line.mjs +18 -0
  85. package/esm2020/user-device-manage/src/classes/notification.mjs +32 -0
  86. package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -0
  87. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -0
  88. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -0
  89. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -0
  90. package/esm2020/user-device-manage/src/classes/types.mjs +24 -0
  91. package/esm2020/user-device-manage/src/common-functions.mjs +19 -0
  92. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -0
  93. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -0
  94. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -0
  95. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +64 -0
  96. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -0
  97. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -0
  98. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +335 -0
  99. package/esm2020/user-device-manage/src/environments/environment.mjs +11 -0
  100. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -0
  101. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  102. package/esm2020/user-device-manage/src/material.module.mjs +192 -0
  103. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -0
  104. package/esm2020/user-device-manage/src/services/api.service.mjs +79 -0
  105. package/esm2020/user-device-manage/src/services/device.service.mjs +83 -0
  106. package/esm2020/user-device-manage/src/services/dns.service.mjs +104 -0
  107. package/esm2020/user-device-manage/src/services/line.service.mjs +76 -0
  108. package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -0
  109. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  110. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -0
  111. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -0
  112. package/esm2020/user-device-manage/src/services/user.service.mjs +243 -0
  113. package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -0
  114. package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -0
  115. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +107 -0
  116. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -0
  117. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +5 -0
  118. package/esm2020/user-manage/public-api.mjs +7 -0
  119. package/esm2020/user-manage/src/app.constants.mjs +50 -0
  120. package/esm2020/user-manage/src/classes/device.mjs +37 -0
  121. package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -0
  122. package/esm2020/user-manage/src/classes/line-association.mjs +110 -0
  123. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -0
  124. package/esm2020/user-manage/src/classes/line-directory.mjs +27 -0
  125. package/esm2020/user-manage/src/classes/line.mjs +18 -0
  126. package/esm2020/user-manage/src/classes/notification.mjs +32 -0
  127. package/esm2020/user-manage/src/classes/pagination.mjs +8 -0
  128. package/esm2020/user-manage/src/classes/recording-options.mjs +7 -0
  129. package/esm2020/user-manage/src/classes/simplified-user.mjs +109 -0
  130. package/esm2020/user-manage/src/classes/table-data.mjs +2 -0
  131. package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -0
  132. package/esm2020/user-manage/src/classes/user-list.mjs +10 -0
  133. package/esm2020/user-manage/src/common-functions.mjs +19 -0
  134. package/esm2020/user-manage/src/device-list/device-list.component.mjs +24 -0
  135. package/esm2020/user-manage/src/environments/environment.mjs +11 -0
  136. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -0
  137. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  138. package/esm2020/user-manage/src/material.module.mjs +188 -0
  139. package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -0
  140. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -0
  141. package/esm2020/user-manage/src/services/api.service.mjs +79 -0
  142. package/esm2020/user-manage/src/services/dns.service.mjs +110 -0
  143. package/esm2020/user-manage/src/services/line.service.mjs +34 -0
  144. package/esm2020/user-manage/src/services/notification.service.mjs +62 -0
  145. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  146. package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -0
  147. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -0
  148. package/esm2020/user-manage/src/services/user.service.mjs +207 -0
  149. package/esm2020/user-manage/src/services/users-search.service.mjs +50 -0
  150. package/esm2020/user-manage/src/services/utils.service.mjs +73 -0
  151. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -0
  152. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +78 -0
  153. package/esm2020/user-manage/src/user-info/user-info.component.mjs +20 -0
  154. package/esm2020/user-manage/src/user-manage-widget.component.mjs +208 -0
  155. package/esm2020/user-manage/src/user-manage.module.mjs +99 -0
  156. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -0
  157. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -0
  158. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +5 -0
  159. package/esm2020/users-list/public-api.mjs +9 -0
  160. package/esm2020/users-list/src/app.constants.mjs +54 -0
  161. package/esm2020/users-list/src/classes/app-location.mjs +32 -0
  162. package/esm2020/users-list/src/classes/device.mjs +7 -0
  163. package/esm2020/users-list/src/classes/line.mjs +18 -0
  164. package/esm2020/users-list/src/classes/move-user.mjs +178 -0
  165. package/esm2020/users-list/src/classes/notification.mjs +31 -0
  166. package/esm2020/users-list/src/classes/pagination.mjs +8 -0
  167. package/esm2020/users-list/src/classes/simlified-user.mjs +50 -0
  168. package/esm2020/users-list/src/classes/table-data.mjs +2 -0
  169. package/esm2020/users-list/src/classes/user-list.mjs +14 -0
  170. package/esm2020/users-list/src/material.module.mjs +209 -0
  171. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +38 -0
  172. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +23 -0
  173. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +189 -0
  174. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +38 -0
  175. package/esm2020/users-list/src/services/api-webex.service.mjs +18 -0
  176. package/esm2020/users-list/src/services/api.service.mjs +78 -0
  177. package/esm2020/users-list/src/services/dns.service.mjs +120 -0
  178. package/esm2020/users-list/src/services/events-communication.service.mjs +14 -0
  179. package/esm2020/users-list/src/services/move-user.service.mjs +53 -0
  180. package/esm2020/users-list/src/services/notification.service.mjs +62 -0
  181. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -0
  182. package/esm2020/users-list/src/services/site-settings.service.mjs +27 -0
  183. package/esm2020/users-list/src/services/user.service.mjs +142 -0
  184. package/esm2020/users-list/src/services/users-search.service.mjs +124 -0
  185. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -0
  186. package/esm2020/users-list/src/users-list.component.mjs +287 -0
  187. package/esm2020/users-list/src/users-list.module.mjs +92 -0
  188. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -0
  189. package/esm2020/users-list/src/utils/common-functions.mjs +32 -0
  190. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -0
  191. package/esm2020/users-list/src/utils/utils.service.mjs +73 -0
  192. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +5 -0
  193. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +1874 -0
  194. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  195. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3402 -0
  196. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  197. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2124 -0
  198. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  199. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +1996 -0
  200. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  201. package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
  202. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
  203. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +1865 -0
  204. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  205. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3364 -0
  206. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  207. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2107 -0
  208. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  209. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +1975 -0
  210. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  211. package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
  212. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
  213. package/index.d.ts +5 -0
  214. package/lib/widgets.component.d.ts +8 -0
  215. package/lib/widgets.module.d.ts +7 -0
  216. package/lib/widgets.service.d.ts +6 -0
  217. package/package.json +65 -48
  218. package/{projects/tuki/widgets/src/public-api.ts → public-api.d.ts} +0 -4
  219. package/user-device-manage/index.d.ts +5 -0
  220. package/user-device-manage/src/app.constants.d.ts +74 -0
  221. package/user-device-manage/src/classes/device.d.ts +233 -0
  222. package/user-device-manage/src/classes/line-association-interface.d.ts +45 -0
  223. package/user-device-manage/src/classes/line-association.d.ts +62 -0
  224. package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -0
  225. package/user-device-manage/src/classes/line-directory.d.ts +15 -0
  226. package/user-device-manage/src/classes/line.d.ts +140 -0
  227. package/user-device-manage/src/classes/notification.d.ts +18 -0
  228. package/user-device-manage/src/classes/recording-options.d.ts +5 -0
  229. package/user-device-manage/src/classes/simplified-user.d.ts +52 -0
  230. package/user-device-manage/src/classes/site-defaults.d.ts +146 -0
  231. package/user-device-manage/src/classes/translation-pattern.d.ts +19 -0
  232. package/user-device-manage/src/classes/types.d.ts +19 -0
  233. package/user-device-manage/src/common-functions.d.ts +1 -0
  234. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -0
  235. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -0
  236. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -0
  237. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +24 -0
  238. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -0
  239. package/user-device-manage/src/device-list/device-list.component.d.ts +11 -0
  240. package/user-device-manage/src/device-manage-widget.component.d.ts +71 -0
  241. package/user-device-manage/src/environments/environment.d.ts +9 -0
  242. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  243. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  244. package/user-device-manage/src/material.module.d.ts +29 -0
  245. package/user-device-manage/src/notifications/notification.component.d.ts +19 -0
  246. package/user-device-manage/src/services/api.service.d.ts +20 -0
  247. package/user-device-manage/src/services/device.service.d.ts +21 -0
  248. package/user-device-manage/src/services/dns.service.d.ts +14 -0
  249. package/user-device-manage/src/services/line.service.d.ts +33 -0
  250. package/user-device-manage/src/services/notification.service.d.ts +18 -0
  251. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  252. package/user-device-manage/src/services/site-settings.service.d.ts +25 -0
  253. package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -0
  254. package/user-device-manage/src/services/user.service.d.ts +51 -0
  255. package/user-device-manage/src/services/utils.service.d.ts +10 -0
  256. package/user-device-manage/src/services/validation.service.d.ts +165 -0
  257. package/user-device-manage/src/user-device-manage.module.d.ts +22 -0
  258. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  259. package/user-manage/index.d.ts +5 -0
  260. package/user-manage/src/app.constants.d.ts +29 -0
  261. package/user-manage/src/classes/device.d.ts +203 -0
  262. package/user-manage/src/classes/line-association-interface.d.ts +40 -0
  263. package/user-manage/src/classes/line-association.d.ts +55 -0
  264. package/user-manage/src/classes/line-call-info-display.d.ts +11 -0
  265. package/user-manage/src/classes/line-directory.d.ts +16 -0
  266. package/user-manage/src/classes/line.d.ts +140 -0
  267. package/user-manage/src/classes/notification.d.ts +18 -0
  268. package/user-manage/src/classes/pagination.d.ts +13 -0
  269. package/user-manage/src/classes/recording-options.d.ts +5 -0
  270. package/user-manage/src/classes/simplified-user.d.ts +50 -0
  271. package/user-manage/src/classes/table-data.d.ts +5 -0
  272. package/user-manage/src/classes/translation-pattern.d.ts +18 -0
  273. package/user-manage/src/classes/user-list.d.ts +34 -0
  274. package/user-manage/src/common-functions.d.ts +1 -0
  275. package/user-manage/src/device-list/device-list.component.d.ts +11 -0
  276. package/user-manage/src/environments/environment.d.ts +9 -0
  277. package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  278. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  279. package/user-manage/src/material.module.d.ts +28 -0
  280. package/user-manage/src/notifications/notification.component.d.ts +19 -0
  281. package/user-manage/src/removeKynFromIBM.service.d.ts +8 -0
  282. package/user-manage/src/services/api.service.d.ts +21 -0
  283. package/user-manage/src/services/dns.service.d.ts +14 -0
  284. package/user-manage/src/services/line.service.d.ts +17 -0
  285. package/user-manage/src/services/notification.service.d.ts +18 -0
  286. package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  287. package/user-manage/src/services/site-settings.service.d.ts +9 -0
  288. package/user-manage/src/services/sorting-utils.service.d.ts +26 -0
  289. package/user-manage/src/services/user.service.d.ts +43 -0
  290. package/user-manage/src/services/users-search.service.d.ts +25 -0
  291. package/user-manage/src/services/utils.service.d.ts +9 -0
  292. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -0
  293. package/user-manage/src/user-calling/user-calling.component.d.ts +30 -0
  294. package/user-manage/src/user-info/user-info.component.d.ts +9 -0
  295. package/user-manage/src/user-manage-widget.component.d.ts +44 -0
  296. package/user-manage/src/user-manage.module.d.ts +21 -0
  297. package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  298. package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -0
  299. package/users-list/index.d.ts +5 -0
  300. package/users-list/src/app.constants.d.ts +36 -0
  301. package/users-list/src/classes/app-location.d.ts +17 -0
  302. package/users-list/src/classes/device.d.ts +224 -0
  303. package/users-list/src/classes/line.d.ts +140 -0
  304. package/users-list/src/classes/move-user.d.ts +85 -0
  305. package/users-list/src/classes/notification.d.ts +18 -0
  306. package/users-list/src/classes/pagination.d.ts +13 -0
  307. package/users-list/src/classes/simlified-user.d.ts +25 -0
  308. package/users-list/src/classes/table-data.d.ts +5 -0
  309. package/users-list/src/classes/user-list.d.ts +36 -0
  310. package/users-list/src/material.module.d.ts +31 -0
  311. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +21 -0
  312. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +12 -0
  313. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +55 -0
  314. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +17 -0
  315. package/users-list/src/services/api-webex.service.d.ts +8 -0
  316. package/users-list/src/services/api.service.d.ts +21 -0
  317. package/users-list/src/services/dns.service.d.ts +18 -0
  318. package/users-list/src/services/events-communication.service.d.ts +8 -0
  319. package/users-list/src/services/move-user.service.d.ts +17 -0
  320. package/users-list/src/services/notification.service.d.ts +18 -0
  321. package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -0
  322. package/users-list/src/services/site-settings.service.d.ts +11 -0
  323. package/users-list/src/services/user.service.d.ts +35 -0
  324. package/users-list/src/services/users-search.service.d.ts +34 -0
  325. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -0
  326. package/users-list/src/users-list.component.d.ts +60 -0
  327. package/users-list/src/users-list.module.d.ts +18 -0
  328. package/users-list/src/utils/app-loader/app-loader.d.ts +6 -0
  329. package/users-list/src/utils/common-functions.d.ts +2 -0
  330. package/users-list/src/utils/pagination/pagination.component.d.ts +18 -0
  331. package/users-list/src/utils/utils.service.d.ts +9 -0
  332. package/.editorconfig +0 -16
  333. package/.hintrc +0 -14
  334. package/.vscode/extensions.json +0 -4
  335. package/.vscode/launch.json +0 -20
  336. package/.vscode/tasks.json +0 -42
  337. package/angular.json +0 -141
  338. package/projects/tuki/widgets/README.md +0 -24
  339. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +0 -26
  340. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  341. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  342. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  343. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +0 -3
  344. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  345. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  346. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  347. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  348. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  349. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  350. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  351. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  352. package/projects/tuki/widgets/di2mt/ng-package.json +0 -7
  353. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +0 -11
  354. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +0 -48
  355. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +0 -10
  356. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +0 -15
  357. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +0 -38
  358. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +0 -71
  359. package/projects/tuki/widgets/di2mt/shared/components/index.ts +0 -6
  360. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +0 -57
  361. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +0 -74
  362. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +0 -44
  363. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +0 -28
  364. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +0 -55
  365. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +0 -11
  366. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +0 -12
  367. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +0 -79
  368. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +0 -27
  369. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +0 -28
  370. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +0 -244
  371. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +0 -28
  372. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +0 -96
  373. package/projects/tuki/widgets/di2mt/shared/material.module.ts +0 -36
  374. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +0 -92
  375. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +0 -38
  376. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +0 -15
  377. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +0 -5
  378. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +0 -14
  379. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +0 -13
  380. package/projects/tuki/widgets/di2mt/styles/variables.scss +0 -92
  381. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +0 -3
  382. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +0 -37
  383. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +0 -40
  384. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -158
  385. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -430
  386. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -362
  387. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -33
  388. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -102
  389. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +0 -22
  390. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -52
  391. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -53
  392. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -67
  393. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -7
  394. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  395. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -45
  396. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -7
  397. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  398. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -45
  399. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -59
  400. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -70
  401. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +0 -42
  402. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +0 -95
  403. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +0 -186
  404. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +0 -345
  405. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -313
  406. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -34
  407. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -79
  408. package/projects/tuki/widgets/karma.conf.js +0 -44
  409. package/projects/tuki/widgets/ng-package.json +0 -10
  410. package/projects/tuki/widgets/package.json +0 -13
  411. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +0 -23
  412. package/projects/tuki/widgets/src/lib/widgets.component.ts +0 -20
  413. package/projects/tuki/widgets/src/lib/widgets.module.ts +0 -16
  414. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +0 -16
  415. package/projects/tuki/widgets/src/lib/widgets.service.ts +0 -9
  416. package/projects/tuki/widgets/src/test.ts +0 -27
  417. package/projects/tuki/widgets/styles.scss +0 -572
  418. package/projects/tuki/widgets/tsconfig.lib.json +0 -36
  419. package/projects/tuki/widgets/tsconfig.lib.prod.json +0 -10
  420. package/projects/tuki/widgets/tsconfig.spec.json +0 -17
  421. package/projects/tuki/widgets/user-device-manage/ng-package.json +0 -7
  422. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +0 -96
  423. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
  424. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
  425. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
  426. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
  427. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  428. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +0 -1
  429. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  430. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +0 -292
  431. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +0 -50
  432. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +0 -177
  433. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +0 -21
  434. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +0 -41
  435. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +0 -144
  436. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +0 -40
  437. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +0 -6
  438. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +0 -169
  439. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +0 -167
  440. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +0 -50
  441. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +0 -19
  442. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +0 -225
  443. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +0 -8
  444. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +0 -16
  445. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
  446. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
  447. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
  448. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
  449. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
  450. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
  451. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
  452. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
  453. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
  454. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -6
  455. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -4
  456. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -63
  457. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
  458. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
  459. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
  460. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +0 -27
  461. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +0 -131
  462. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +0 -25
  463. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +0 -209
  464. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +0 -502
  465. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +0 -354
  466. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +0 -9
  467. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +0 -10
  468. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
  469. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  470. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  471. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  472. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +0 -87
  473. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +0 -33
  474. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +0 -84
  475. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +0 -46
  476. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
  477. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +0 -87
  478. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +0 -17
  479. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +0 -95
  480. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +0 -111
  481. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +0 -89
  482. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +0 -68
  483. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
  484. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +0 -82
  485. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +0 -203
  486. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +0 -283
  487. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +0 -87
  488. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +0 -829
  489. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +0 -90
  490. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +0 -231
  491. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +0 -32
  492. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +0 -110
  493. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +0 -30
  494. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +0 -73
  495. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -6
  496. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  497. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
  498. package/projects/tuki/widgets/user-manage/ng-package.json +0 -7
  499. package/projects/tuki/widgets/user-manage/src/app.constants.ts +0 -50
  500. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +0 -5
  501. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +0 -5
  502. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +0 -5
  503. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  504. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +0 -1
  505. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  506. package/projects/tuki/widgets/user-manage/src/classes/device.ts +0 -232
  507. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +0 -43
  508. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +0 -161
  509. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +0 -21
  510. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +0 -42
  511. package/projects/tuki/widgets/user-manage/src/classes/line.ts +0 -144
  512. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +0 -39
  513. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +0 -18
  514. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +0 -6
  515. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +0 -165
  516. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +0 -6
  517. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +0 -49
  518. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +0 -225
  519. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +0 -42
  520. package/projects/tuki/widgets/user-manage/src/classes/user.ts +0 -8
  521. package/projects/tuki/widgets/user-manage/src/common-functions.ts +0 -16
  522. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +0 -27
  523. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +0 -131
  524. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +0 -25
  525. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +0 -9
  526. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +0 -10
  527. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +0 -35
  528. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  529. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  530. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  531. package/projects/tuki/widgets/user-manage/src/material.module.ts +0 -85
  532. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +0 -33
  533. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +0 -84
  534. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +0 -46
  535. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +0 -25
  536. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +0 -90
  537. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +0 -116
  538. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +0 -31
  539. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +0 -68
  540. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
  541. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +0 -35
  542. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +0 -203
  543. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +0 -242
  544. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +0 -59
  545. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +0 -71
  546. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +0 -90
  547. package/projects/tuki/widgets/user-manage/src/styles/form.scss +0 -231
  548. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +0 -32
  549. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +0 -110
  550. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +0 -30
  551. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
  552. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -429
  553. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
  554. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +0 -32
  555. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +0 -444
  556. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +0 -89
  557. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +0 -68
  558. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +0 -29
  559. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +0 -64
  560. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +0 -19
  561. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +0 -290
  562. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +0 -463
  563. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +0 -212
  564. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +0 -63
  565. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +0 -6
  566. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  567. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +0 -13
  568. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +0 -26
  569. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +0 -41
  570. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +0 -41
  571. package/projects/tuki/widgets/users-list/ng-package.json +0 -7
  572. package/projects/tuki/widgets/users-list/src/app.constants.ts +0 -54
  573. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +0 -3
  574. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +0 -1
  575. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
  576. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +0 -3
  577. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +0 -36
  578. package/projects/tuki/widgets/users-list/src/classes/device.ts +0 -225
  579. package/projects/tuki/widgets/users-list/src/classes/line.ts +0 -144
  580. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +0 -225
  581. package/projects/tuki/widgets/users-list/src/classes/notification.ts +0 -38
  582. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +0 -18
  583. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +0 -74
  584. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +0 -6
  585. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +0 -225
  586. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +0 -47
  587. package/projects/tuki/widgets/users-list/src/classes/user.ts +0 -8
  588. package/projects/tuki/widgets/users-list/src/material.module.ts +0 -94
  589. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +0 -37
  590. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +0 -129
  591. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +0 -46
  592. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +0 -31
  593. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +0 -20
  594. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +0 -26
  595. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -222
  596. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -239
  597. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -206
  598. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
  599. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
  600. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
  601. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +0 -14
  602. package/projects/tuki/widgets/users-list/src/services/api.service.ts +0 -90
  603. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +0 -128
  604. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +0 -11
  605. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +0 -59
  606. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +0 -68
  607. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +0 -25
  608. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +0 -26
  609. package/projects/tuki/widgets/users-list/src/services/user.service.ts +0 -159
  610. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +0 -139
  611. package/projects/tuki/widgets/users-list/src/styles/styles.scss +0 -572
  612. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
  613. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
  614. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
  615. package/projects/tuki/widgets/users-list/src/users-list.component.css +0 -4
  616. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +0 -1
  617. package/projects/tuki/widgets/users-list/src/users-list.component.html +0 -86
  618. package/projects/tuki/widgets/users-list/src/users-list.component.scss +0 -572
  619. package/projects/tuki/widgets/users-list/src/users-list.component.ts +0 -312
  620. package/projects/tuki/widgets/users-list/src/users-list.module.ts +0 -63
  621. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +0 -11
  622. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
  623. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +0 -6
  624. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +0 -11
  625. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +0 -13
  626. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +0 -32
  627. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +0 -33
  628. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +0 -84
  629. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +0 -46
  630. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +0 -45
  631. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +0 -1
  632. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +0 -26
  633. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +0 -41
  634. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +0 -41
  635. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +0 -71
  636. package/projects/widgets-playground/src/app/app.component.html +0 -109
  637. package/projects/widgets-playground/src/app/app.component.scss +0 -15
  638. package/projects/widgets-playground/src/app/app.component.spec.ts +0 -31
  639. package/projects/widgets-playground/src/app/app.component.ts +0 -31
  640. package/projects/widgets-playground/src/app/app.module.ts +0 -43
  641. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  642. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  643. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  644. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  645. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  646. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  647. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  648. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  649. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  650. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  651. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  652. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  653. package/projects/widgets-playground/src/favicon.ico +0 -0
  654. package/projects/widgets-playground/src/index.html +0 -13
  655. package/projects/widgets-playground/src/main.ts +0 -7
  656. package/projects/widgets-playground/src/styles.scss +0 -23
  657. package/projects/widgets-playground/tsconfig.app.json +0 -14
  658. package/projects/widgets-playground/tsconfig.spec.json +0 -14
  659. package/proxy.conf.js +0 -23
  660. package/tsconfig.json +0 -46
  661. /package/{projects/tuki/widgets/di2mt → di2mt}/README.md +0 -0
  662. /package/{projects/tuki/widgets/user-device-manage/public-api.ts → user-device-manage/public-api.d.ts} +0 -0
  663. /package/{projects/tuki/widgets/user-manage/public-api.ts → user-manage/public-api.d.ts} +0 -0
  664. /package/{projects/tuki/widgets/users-list/public-api.ts → users-list/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXNlci11cGdyYWRlL3R5cGVzL3VzZXItdXBncmFkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFUEVOREVOQ0lFU19TVEFUVVMsIFN0YXR1cyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdHlwZXMvY29uc3RhbnRzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBEZXBlbmRlbmNpZXNTdGF0dXMgPSB0eXBlb2YgREVQRU5ERU5DSUVTX1NUQVRVU1trZXlvZiB0eXBlb2YgREVQRU5ERU5DSUVTX1NUQVRVU107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJVcGdyYWRlUmVjb3JkIHtcclxuICAgIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgdXNlck5hbWU6IHN0cmluZztcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcclxuICAgIHNpdGVJZDogc3RyaW5nO1xyXG4gICAgY3VjbUlkOiBzdHJpbmc7XHJcbiAgICBzaXRlTmFtZTogc3RyaW5nO1xyXG4gICAgZGV2aWNlczogc3RyaW5nW107XHJcbiAgICBwcmltYXJ5RXh0ZW5zaW9uPzogc3RyaW5nO1xyXG4gICAgZGV2aWNlU3RhdHVzOiBTdGF0dXM7XHJcbiAgICBkaWFsUGxhblN0YXR1czogU3RhdHVzO1xyXG4gICAgZGVwZW5kZW5jaWVzU3RhdHVzOiBEZXBlbmRlbmNpZXNTdGF0dXM7XHJcbiAgICB1cGdyYWRlU3RhdHVzOiBTdGF0dXM7XHJcbiAgICBwZW5kaW5nPzogYm9vbGVhbjtcclxufTtcclxuIl19
@@ -0,0 +1,272 @@
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, Subscription } 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 { PAGINATION_SIZE_OPTIONS } from "../../../shared/constants/app.constants";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "../../../shared/components/summary-card/summary-card.component";
13
+ import * as i3 from "../../../shared/components/table-filters/table-filters.component";
14
+ import * as i4 from "@angular/material/table";
15
+ import * as i5 from "@angular/material/button";
16
+ import * as i6 from "@angular/material/checkbox";
17
+ import * as i7 from "@angular/material/progress-spinner";
18
+ import * as i8 from "@angular/material/paginator";
19
+ export class UserUpgradeDataTableComponent {
20
+ constructor() {
21
+ this.destroy$ = new Subject();
22
+ this.userUpgradeService = inject(UserUpgradeService);
23
+ this.apiService = inject(APIService);
24
+ this.STATUS_ENTRIES = STATUS_ENTRIES;
25
+ this.DEPENDENCIES_STATUS = DEPENDENCIES_STATUS;
26
+ this.dataPending = false;
27
+ this.displayedColumns = ['select', 'user', 'site', 'device', 'dialPlanStatus', 'dependencies', 'userUpgradeStatus', 'userUpgradeLoader'];
28
+ this.selection = new SelectionModel(true, []);
29
+ this.filters = [];
30
+ this.pagination = new PaginationDataDto();
31
+ this.subscriptions = new Subscription();
32
+ this.statusCounts = {};
33
+ this.activeFilters = {};
34
+ this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
35
+ }
36
+ ngOnInit() {
37
+ this.dataPending = true;
38
+ this.apiService.token = this.token;
39
+ this.userUpgradeService.customerId = this.customerId;
40
+ const subsc1 = this.userUpgradeService.getUserUpgradeRecords(this.pagination.pageSize, this.pagination.pageIndex)
41
+ .pipe(takeUntil(this.destroy$))
42
+ .subscribe((results) => {
43
+ const records = results.content;
44
+ this.data = new MatTableDataSource(records);
45
+ this.pagination.total = results.totalElements;
46
+ this.dataPending = false;
47
+ this.setupCustomFilter();
48
+ this.initializeFilters(records);
49
+ });
50
+ this.subscriptions.add(subsc1);
51
+ const subsc2 = this.userUpgradeService.getUserUpgradeStatusCounts()
52
+ .pipe(takeUntil(this.destroy$))
53
+ .subscribe((statusCounts) => {
54
+ this.statusCounts['Ready'] = statusCounts['READY'] || 0;
55
+ this.statusCounts['Not Ready'] = statusCounts['NOT_READY'] || 0;
56
+ this.statusCounts['Completed'] = statusCounts['COMPLETED'] || 0;
57
+ this.statusCounts['Failed'] = statusCounts['FAILED'] || 0;
58
+ });
59
+ this.subscriptions.add(subsc2);
60
+ }
61
+ ngOnDestroy() {
62
+ this.destroy$.next();
63
+ this.destroy$.complete();
64
+ this.dataPending = false;
65
+ if (this.subscriptions) {
66
+ this.subscriptions.unsubscribe();
67
+ }
68
+ }
69
+ pageEvent(event) {
70
+ this.pagination.pageIndex = event.pageIndex;
71
+ this.pagination.pageSize = event.pageSize;
72
+ this.getData();
73
+ }
74
+ changePerPageNumber(pageSizeEvent) {
75
+ this.pagination.pageSize = pageSizeEvent.value;
76
+ this.pagination.pageIndex = 0;
77
+ this.getData();
78
+ }
79
+ getData() {
80
+ this.dataPending = true;
81
+ const subsc1 = this.userUpgradeService.getUserUpgradeRecords(this.pagination.pageSize, this.pagination.pageIndex)
82
+ .pipe(takeUntil(this.destroy$))
83
+ .subscribe((result) => {
84
+ this.data = new MatTableDataSource(result.content);
85
+ this.pagination.total = result.totalElements;
86
+ this.dataPending = false;
87
+ });
88
+ this.subscriptions.add(subsc1);
89
+ }
90
+ initializeFilters(records) {
91
+ if (records?.length) {
92
+ // Extract unique sites from actual data
93
+ const uniqueSites = [...new Set(records.map(record => record.siteName))];
94
+ const siteOptions = uniqueSites.map(site => ({
95
+ label: site,
96
+ value: site.toLowerCase().replace(/\s+/g, '-')
97
+ }));
98
+ // Extract unique statuses from actual data
99
+ const uniqueStatuses = [...new Set(records.map(record => record.upgradeStatus))];
100
+ const statusOptions = uniqueStatuses.map(status => ({
101
+ label: STATUS_ENTRIES[status],
102
+ value: status.toLowerCase().replace(/\s+/g, '-')
103
+ }));
104
+ this.filters = [
105
+ {
106
+ id: 'userName',
107
+ type: 'search',
108
+ columnKey: 'User',
109
+ placeholder: 'Search users...',
110
+ options: []
111
+ },
112
+ {
113
+ id: 'sites',
114
+ type: 'select',
115
+ columnKey: 'Site',
116
+ placeholder: 'Sites',
117
+ options: siteOptions
118
+ },
119
+ {
120
+ id: 'status',
121
+ type: 'select',
122
+ columnKey: 'User Upgrade Status',
123
+ placeholder: 'Upgrade Status',
124
+ options: statusOptions
125
+ }
126
+ ];
127
+ }
128
+ }
129
+ /** Whether the number of selected elements matches the total number of rows. */
130
+ isAllSelected() {
131
+ const numSelected = this.selection.selected.length;
132
+ const numRows = this.data?.data.length ?? 0;
133
+ return numSelected === numRows;
134
+ }
135
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
136
+ masterToggle() {
137
+ this.isAllSelected() ?
138
+ this.selection.clear() :
139
+ this.data?.data.forEach(row => this.selection.select(row));
140
+ }
141
+ upgradeUser(user) {
142
+ if (user && STATUS_ENTRIES[user.upgradeStatus] && STATUS_ENTRIES[user.upgradeStatus] === 'Ready')
143
+ user.pending = true;
144
+ this.userUpgradeService.collectUsers([user])
145
+ .pipe(takeUntil(this.destroy$))
146
+ .subscribe(() => {
147
+ this.userUpgradeService.bulkUpgrade([user])
148
+ .pipe(takeUntil(this.destroy$))
149
+ .subscribe(() => {
150
+ user.pending = false;
151
+ });
152
+ });
153
+ }
154
+ upgradeSelectedUsers() {
155
+ if (this.selection.selected && this.selection.selected.length) {
156
+ this.dataPending = true;
157
+ this.userUpgradeService.collectUsers(this.selection.selected)
158
+ .pipe(takeUntil(this.destroy$))
159
+ .subscribe(() => {
160
+ this.userUpgradeService.bulkUpgrade(this.selection.selected)
161
+ .pipe(takeUntil(this.destroy$))
162
+ .subscribe(() => {
163
+ this.dataPending = false;
164
+ });
165
+ });
166
+ }
167
+ this.userUpgradeService.bulkUpgrade(this.selection.selected);
168
+ }
169
+ onFilter(filterEvent) {
170
+ const { key, value } = filterEvent;
171
+ let filterValue;
172
+ if (value && value.value !== undefined) {
173
+ filterValue = value.value;
174
+ }
175
+ else if (value && value.target) {
176
+ filterValue = value.target.value;
177
+ }
178
+ else {
179
+ filterValue = value;
180
+ }
181
+ // Handle "All" option or empty values - remove the filter
182
+ if (filterValue === 'all' || !filterValue || filterValue === '') {
183
+ delete this.activeFilters[key];
184
+ }
185
+ else {
186
+ this.activeFilters[key] = filterValue;
187
+ }
188
+ this.applyFilters();
189
+ }
190
+ setupCustomFilter() {
191
+ this.data.filterPredicate = (data, filter) => {
192
+ const filters = JSON.parse(filter || '{}');
193
+ for (const [key, value] of Object.entries(filters)) {
194
+ if (!value)
195
+ continue;
196
+ switch (key) {
197
+ case 'User':
198
+ const searchTerm = value.toLowerCase();
199
+ if (!data.userName.toLowerCase().includes(searchTerm)) {
200
+ return false;
201
+ }
202
+ break;
203
+ case 'Site':
204
+ if (data.siteName !== this.getSiteNameFromValue(value)) {
205
+ return false;
206
+ }
207
+ break;
208
+ case 'User Upgrade Status':
209
+ if (!this.matchesUpgradeStatus(data.upgradeStatus, value)) {
210
+ return false;
211
+ }
212
+ break;
213
+ }
214
+ }
215
+ return true;
216
+ };
217
+ }
218
+ applyFilters() {
219
+ this.data.filter = JSON.stringify(this.activeFilters);
220
+ }
221
+ get filteredDataCount() {
222
+ return this.data?.filteredData?.length || 0;
223
+ }
224
+ getSiteNameFromValue(value) {
225
+ // Since we're now using actual site names, just convert back from slug format
226
+ return value.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
227
+ }
228
+ matchesUpgradeStatus(status, filterValue) {
229
+ // Handle direct status matching for cleaner implementation
230
+ return status.toLowerCase().replace(/\s+/g, '-') === filterValue.toLowerCase();
231
+ }
232
+ getStatusClass(status) {
233
+ switch (status.toLowerCase()) {
234
+ case 'ready':
235
+ return 'ready';
236
+ case 'not ready':
237
+ return 'not-ready';
238
+ case 'partial ready':
239
+ return 'partial-ready';
240
+ case 'completed':
241
+ return 'completed';
242
+ case 'failed':
243
+ return 'failed';
244
+ default:
245
+ return 'not-ready';
246
+ }
247
+ }
248
+ }
249
+ UserUpgradeDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
250
+ 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 *ngIf=\"dataPending\" class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"120\"></mat-progress-spinner>\r\n</div>\r\n\r\n<div id=\"userUpgradeDataTable\" 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' || row.pending\"\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 <span [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{element.siteName}}</span>\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 [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{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\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"userUpgradeLoader\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"mat-progress-spinner-td\" mat-cell *matCellDef=\"let element\">\r\n\r\n <mat-progress-spinner\r\n *ngIf=\"element.pending\"\r\n class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\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>\r\n\r\n<div class=\"app-pagination\">\r\n <mat-paginator\r\n [length]=\"pagination.total\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n (page)=\"pageEvent($event)\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n\r\n <!--<div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n\r\n <div class=\"per-page-block\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>-->\r\n</div>\r\n", styles: ["@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;500;600;700&display=swap\";.app-pagination{display:flex;flex-direction:column;align-items:stretch}.app-pagination .page-indexes-box,.app-pagination .per-page-block{justify-self:center}.app-pagination mat-select{width:100px}.overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff6;z-index:200}.mat-progress-spinner{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-25px;width:50px;height:40px;text-align:center;font-size:10px}.mat-progress-spinner-td{position:relative}.status-ready{color:#1170cf}::ng-deep .mat-cell{border-bottom:1px solid #d6d6d6;font-family:Inter,sans-serif!important}::ng-deep .mat-header-cell{border-bottom:1px solid #afafaf;font-family:Inter,sans-serif!important}::ng-deep .progress-spinner-td{position:relative}::ng-deep #userUpgradeDataTable .mat-progress-spinner-td .mat-progress-spinner{top:28%;left:0;margin:0}.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{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}::ng-deep .action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;color:#555}.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"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] });
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, decorators: [{
252
+ type: Component,
253
+ args: [{ selector: 'tk-user-upgrade-data-table', template: "<div *ngIf=\"dataPending\" class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"120\"></mat-progress-spinner>\r\n</div>\r\n\r\n<div id=\"userUpgradeDataTable\" 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' || row.pending\"\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 <span [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{element.siteName}}</span>\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 [ngClass]=\"{'status-ready': element.dialPlanStatus === 'READY'}\">{{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\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"userUpgradeLoader\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"mat-progress-spinner-td\" mat-cell *matCellDef=\"let element\">\r\n\r\n <mat-progress-spinner\r\n *ngIf=\"element.pending\"\r\n class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\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>\r\n\r\n<div class=\"app-pagination\">\r\n <mat-paginator\r\n [length]=\"pagination.total\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n (page)=\"pageEvent($event)\"\r\n showFirstLastButtons>\r\n </mat-paginator>\r\n\r\n <!--<div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n\r\n <div class=\"per-page-block\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>-->\r\n</div>\r\n", styles: ["@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;500;600;700&display=swap\";.app-pagination{display:flex;flex-direction:column;align-items:stretch}.app-pagination .page-indexes-box,.app-pagination .per-page-block{justify-self:center}.app-pagination mat-select{width:100px}.overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff6;z-index:200}.mat-progress-spinner{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-25px;width:50px;height:40px;text-align:center;font-size:10px}.mat-progress-spinner-td{position:relative}.status-ready{color:#1170cf}::ng-deep .mat-cell{border-bottom:1px solid #d6d6d6;font-family:Inter,sans-serif!important}::ng-deep .mat-header-cell{border-bottom:1px solid #afafaf;font-family:Inter,sans-serif!important}::ng-deep .progress-spinner-td{position:relative}::ng-deep #userUpgradeDataTable .mat-progress-spinner-td .mat-progress-spinner{top:28%;left:0;margin:0}.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{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}::ng-deep .action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;color:#555}.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"] }]
254
+ }], propDecorators: { token: [{
255
+ type: Input
256
+ }], customerId: [{
257
+ type: Input
258
+ }] } });
259
+ class PaginationDataDto {
260
+ constructor(data) {
261
+ this.pageSizeOptions = data?.pageSizeOptions || PAGINATION_DATA_DEFAULTS.OPTIONS;
262
+ this.pageSize = data?.pageSize || PAGINATION_DATA_DEFAULTS.SIZE;
263
+ this.pageIndex = data?.pageIndex || PAGINATION_DATA_DEFAULTS.PAGE_INDEX;
264
+ this.total = data?.total || 0;
265
+ }
266
+ }
267
+ const PAGINATION_DATA_DEFAULTS = {
268
+ OPTIONS: [10, 20, 50, 100],
269
+ SIZE: 10,
270
+ PAGE_INDEX: 0
271
+ };
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXNlci11cGdyYWRlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC93aWRnZXRzL3VzZXItdXBncmFkZS91c2VyLXVwZ3JhZGUtZGF0YS10YWJsZS91c2VyLXVwZ3JhZGUtZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHN0QsT0FBTyxFQUFrQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFVLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQVNsRixNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBT1UsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsdUJBQWtC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QyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDMUIsSUFBSSxFQUFFLEVBQUU7SUFDUixVQUFVLEVBQUUsQ0FBQztDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgaW5qZWN0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3R5cGVzL2RhdGEtdGFibGVcIjtcclxuaW1wb3J0IHsgVGFibGVGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3R5cGVzL3RhYmxlL2ZpbHRlclwiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlclVwZ3JhZGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3VzZXItdXBncmFkZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERFUEVOREVOQ0lFU19TVEFUVVMsIFN0YXR1cywgU1RBVFVTX0VOVFJJRVMgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3R5cGVzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBVc2VyVXBncmFkZVJlY29yZCB9IGZyb20gXCIuLi90eXBlcy91c2VyLXVwZ3JhZGVcIjtcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUEFHSU5BVElPTl9TSVpFX09QVElPTlMgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9hcHAuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RrLXVzZXItdXBncmFkZS1kYXRhLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgLy8gZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyVXBncmFkZURhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHVzZXJVcGdyYWRlU2VydmljZSA9IGluamVjdChVc2VyVXBncmFkZVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgYXBpU2VydmljZSA9IGluamVjdChBUElTZXJ2aWNlKTtcclxuICByZWFkb25seSBTVEFUVVNfRU5UUklFUyA9IFNUQVRVU19FTlRSSUVTO1xyXG4gIHJlYWRvbmx5IERFUEVOREVOQ0lFU19TVEFUVVMgPSBERVBFTkRFTkNJRVNfU1RBVFVTO1xyXG5cclxuICBASW5wdXQoKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBjdXN0b21lcklkITogc3RyaW5nO1xyXG5cclxuICBjb2x1bW5zITogVGFibGVDb2x1bW5bXTtcclxuICBkYXRhUGVuZGluZyA9IGZhbHNlO1xyXG4gIGRhdGEhOiBNYXRUYWJsZURhdGFTb3VyY2U8VXNlclVwZ3JhZGVSZWNvcmQ+O1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gWydzZWxlY3QnLCAndXNlcicsICdzaXRlJywgJ2RldmljZScsICdkaWFsUGxhblN0YXR1cycsICdkZXBlbmRlbmNpZXMnLCAndXNlclVwZ3JhZGVTdGF0dXMnLCAndXNlclVwZ3JhZGVMb2FkZXInXTtcclxuICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VXNlclVwZ3JhZGVSZWNvcmQ+KHRydWUsIFtdKTtcclxuICBmaWx0ZXJzOiBUYWJsZUZpbHRlcltdID0gW107XHJcbiAgcGFnaW5hdGlvbiA9IG5ldyBQYWdpbmF0aW9uRGF0YUR0bygpO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgc3RhdHVzQ291bnRzOiBhbnkgPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmVGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuY3VzdG9tZXJJZCA9IHRoaXMuY3VzdG9tZXJJZDtcclxuXHJcbiAgICBjb25zdCBzdWJzYzEgPSB0aGlzLnVzZXJVcGdyYWRlU2VydmljZS5nZXRVc2VyVXBncmFkZVJlY29yZHModGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplLCB0aGlzLnBhZ2luYXRpb24ucGFnZUluZGV4KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSByZXN1bHRzLmNvbnRlbnQgYXMgVXNlclVwZ3JhZGVSZWNvcmRbXVxyXG4gICAgICAgIHRoaXMuZGF0YSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UocmVjb3Jkcyk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnRvdGFsID0gcmVzdWx0cy50b3RhbEVsZW1lbnRzO1xyXG4gICAgICAgIHRoaXMuZGF0YVBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNldHVwQ3VzdG9tRmlsdGVyKCk7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRmlsdGVycyhyZWNvcmRzKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHN1YnNjMSk7XHJcblxyXG4gICAgY29uc3Qgc3Vic2MyID0gdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuZ2V0VXNlclVwZ3JhZGVTdGF0dXNDb3VudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1c0NvdW50cykgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydSZWFkeSddID0gc3RhdHVzQ291bnRzWydSRUFEWSddIHx8IDA7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDb3VudHNbJ05vdCBSZWFkeSddID0gc3RhdHVzQ291bnRzWydOT1RfUkVBRFknXSB8fCAwO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydDb21wbGV0ZWQnXSA9IHN0YXR1c0NvdW50c1snQ09NUExFVEVEJ10gfHwgMDtcclxuICAgICAgICB0aGlzLnN0YXR1c0NvdW50c1snRmFpbGVkJ10gPSBzdGF0dXNDb3VudHNbJ0ZBSUxFRCddIHx8IDA7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChzdWJzYzIpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuZGF0YVBlbmRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGFnZUV2ZW50IChldmVudDogUGFnZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplID0gZXZlbnQucGFnZVNpemU7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBlclBhZ2VOdW1iZXIocGFnZVNpemVFdmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2luYXRpb24ucGFnZVNpemUgPSBwYWdlU2l6ZUV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2VJbmRleCA9IDA7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVBlbmRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3Qgc3Vic2MxID0gdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuZ2V0VXNlclVwZ3JhZGVSZWNvcmRzKHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZSwgdGhpcy5wYWdpbmF0aW9uLnBhZ2VJbmRleClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShyZXN1bHQuY29udGVudCk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnRvdGFsID0gcmVzdWx0LnRvdGFsRWxlbWVudHM7XHJcbiAgICAgICAgdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoc3Vic2MxKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZpbHRlcnMocmVjb3JkczogYW55W10pOiB2b2lkIHtcclxuICAgIGlmIChyZWNvcmRzPy5sZW5ndGgpIHtcclxuICAgICAgLy8gRXh0cmFjdCB1bmlxdWUgc2l0ZXMgZnJvbSBhY3R1YWwgZGF0YVxyXG4gICAgICBjb25zdCB1bmlxdWVTaXRlcyA9IFsuLi5uZXcgU2V0KHJlY29yZHMubWFwKHJlY29yZCA9PiByZWNvcmQuc2l0ZU5hbWUpKV07XHJcbiAgICAgIGNvbnN0IHNpdGVPcHRpb25zID0gdW5pcXVlU2l0ZXMubWFwKHNpdGUgPT4gKHtcclxuICAgICAgICBsYWJlbDogc2l0ZSxcclxuICAgICAgICB2YWx1ZTogc2l0ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKVxyXG4gICAgICB9KSk7XHJcblxyXG4gICAgICAvLyBFeHRyYWN0IHVuaXF1ZSBzdGF0dXNlcyBmcm9tIGFjdHVhbCBkYXRhXHJcbiAgICAgIGNvbnN0IHVuaXF1ZVN0YXR1c2VzID0gWy4uLm5ldyBTZXQocmVjb3Jkcy5tYXAocmVjb3JkID0+IHJlY29yZC51cGdyYWRlU3RhdHVzKSldO1xyXG4gICAgICBjb25zdCBzdGF0dXNPcHRpb25zID0gdW5pcXVlU3RhdHVzZXMubWFwKHN0YXR1cyA9PiAoe1xyXG4gICAgICAgIGxhYmVsOiBTVEFUVVNfRU5UUklFU1tzdGF0dXNdLFxyXG4gICAgICAgIHZhbHVlOiBzdGF0dXMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJylcclxuICAgICAgfSkpO1xyXG5cclxuICAgICAgdGhpcy5maWx0ZXJzID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlkOiAndXNlck5hbWUnLFxyXG4gICAgICAgICAgdHlwZTogJ3NlYXJjaCcsXHJcbiAgICAgICAgICBjb2x1bW5LZXk6ICdVc2VyJyxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoIHVzZXJzLi4uJyxcclxuICAgICAgICAgIG9wdGlvbnM6IFtdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZDogJ3NpdGVzJyxcclxuICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgY29sdW1uS2V5OiAnU2l0ZScsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ1NpdGVzJyxcclxuICAgICAgICAgIG9wdGlvbnM6IHNpdGVPcHRpb25zXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZDogJ3N0YXR1cycsXHJcbiAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgIGNvbHVtbktleTogJ1VzZXIgVXBncmFkZSBTdGF0dXMnLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdVcGdyYWRlIFN0YXR1cycsXHJcbiAgICAgICAgICBvcHRpb25zOiBzdGF0dXNPcHRpb25zXHJcbiAgICAgICAgfVxyXG4gICAgICBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBlbGVtZW50cyBtYXRjaGVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cy4gKi9cclxuICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhPy5kYXRhLmxlbmd0aCA/PyAwO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCkgOlxyXG4gICAgICB0aGlzLmRhdGE/LmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdykpO1xyXG4gIH1cclxuXHJcbiAgdXBncmFkZVVzZXIodXNlcjogVXNlclVwZ3JhZGVSZWNvcmQpOiB2b2lkIHtcclxuICAgIGlmICh1c2VyICYmIFNUQVRVU19FTlRSSUVTW3VzZXIudXBncmFkZVN0YXR1c10gJiYgU1RBVFVTX0VOVFJJRVNbdXNlci51cGdyYWRlU3RhdHVzXSA9PT0gJ1JlYWR5JylcclxuICAgICAgdXNlci5wZW5kaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMudXNlclVwZ3JhZGVTZXJ2aWNlLmNvbGxlY3RVc2VycyhbdXNlcl0pXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuYnVsa1VwZ3JhZGUoW3VzZXJdKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHVzZXIucGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBncmFkZVNlbGVjdGVkVXNlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGF0YVBlbmRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuY29sbGVjdFVzZXJzKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMudXNlclVwZ3JhZGVTZXJ2aWNlLmJ1bGtVcGdyYWRlKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGF0YVBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnVzZXJVcGdyYWRlU2VydmljZS5idWxrVXBncmFkZSh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcihmaWx0ZXJFdmVudDogeyBrZXk6IHN0cmluZywgdmFsdWU6IGFueSB9KSB7XHJcbiAgICBjb25zdCB7a2V5LCB2YWx1ZX0gPSBmaWx0ZXJFdmVudDtcclxuXHJcbiAgICBsZXQgZmlsdGVyVmFsdWU6IGFueTtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZpbHRlclZhbHVlID0gdmFsdWUudmFsdWU7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlLnRhcmdldCkge1xyXG4gICAgICBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRhcmdldC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbHRlclZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSGFuZGxlIFwiQWxsXCIgb3B0aW9uIG9yIGVtcHR5IHZhbHVlcyAtIHJlbW92ZSB0aGUgZmlsdGVyXHJcbiAgICBpZiAoZmlsdGVyVmFsdWUgPT09ICdhbGwnIHx8ICFmaWx0ZXJWYWx1ZSB8fCBmaWx0ZXJWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgZGVsZXRlIHRoaXMuYWN0aXZlRmlsdGVyc1trZXldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJzW2tleV0gPSBmaWx0ZXJWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEN1c3RvbUZpbHRlcigpIHtcclxuICAgIHRoaXMuZGF0YS5maWx0ZXJQcmVkaWNhdGUgPSAoZGF0YTogYW55LCBmaWx0ZXI6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXJzID0gSlNPTi5wYXJzZShmaWx0ZXIgfHwgJ3t9Jyk7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmaWx0ZXJzKSkge1xyXG4gICAgICAgIGlmICghdmFsdWUpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICAgICAgY2FzZSAnVXNlcic6XHJcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSAodmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBpZiAoIWRhdGEudXNlck5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ1NpdGUnOlxyXG4gICAgICAgICAgICBpZiAoZGF0YS5zaXRlTmFtZSAhPT0gdGhpcy5nZXRTaXRlTmFtZUZyb21WYWx1ZSh2YWx1ZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnVXNlciBVcGdyYWRlIFN0YXR1cyc6XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5tYXRjaGVzVXBncmFkZVN0YXR1cyhkYXRhLnVwZ3JhZGVTdGF0dXMsIHZhbHVlIGFzIHN0cmluZykpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5RmlsdGVycygpIHtcclxuICAgIHRoaXMuZGF0YS5maWx0ZXIgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmFjdGl2ZUZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcmVkRGF0YUNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5maWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTaXRlTmFtZUZyb21WYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vIFNpbmNlIHdlJ3JlIG5vdyB1c2luZyBhY3R1YWwgc2l0ZSBuYW1lcywganVzdCBjb252ZXJ0IGJhY2sgZnJvbSBzbHVnIGZvcm1hdFxyXG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KCctJykubWFwKHdvcmQgPT5cclxuICAgICAgd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSlcclxuICAgICkuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXRjaGVzVXBncmFkZVN0YXR1cyhzdGF0dXM6IHN0cmluZywgZmlsdGVyVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgLy8gSGFuZGxlIGRpcmVjdCBzdGF0dXMgbWF0Y2hpbmcgZm9yIGNsZWFuZXIgaW1wbGVtZW50YXRpb25cclxuICAgIHJldHVybiBzdGF0dXMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJykgPT09IGZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXNDbGFzcyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cy50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgJ3JlYWR5JzpcclxuICAgICAgICByZXR1cm4gJ3JlYWR5JztcclxuICAgICAgY2FzZSAnbm90IHJlYWR5JzpcclxuICAgICAgICByZXR1cm4gJ25vdC1yZWFkeSc7XHJcbiAgICAgIGNhc2UgJ3BhcnRpYWwgcmVhZHknOlxyXG4gICAgICAgIHJldHVybiAncGFydGlhbC1yZWFkeSc7XHJcbiAgICAgIGNhc2UgJ2NvbXBsZXRlZCc6XHJcbiAgICAgICAgcmV0dXJuICdjb21wbGV0ZWQnO1xyXG4gICAgICBjYXNlICdmYWlsZWQnOlxyXG4gICAgICAgIHJldHVybiAnZmFpbGVkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ25vdC1yZWFkeSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZVNpemVPcHRpb25zID0gUEFHSU5BVElPTl9TSVpFX09QVElPTlM7XHJcbn1cclxuXHJcbmludGVyZmFjZSBQYWdpbmF0aW9uRGF0YUR0b0ludGVyZmFjZSB7XHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgcGFnZUluZGV4OiBudW1iZXI7XHJcbn1cclxuY2xhc3MgUGFnaW5hdGlvbkRhdGFEdG8ge1xyXG4gIHRvdGFsITogbnVtYmVyO1xyXG4gIHBhZ2VTaXplT3B0aW9ucyE6IG51bWJlcltdO1xyXG4gIHBhZ2VTaXplITogbnVtYmVyO1xyXG4gIHBhZ2VJbmRleCE6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YT86IFBhZ2luYXRpb25EYXRhRHRvSW50ZXJmYWNlKSB7XHJcbiAgICB0aGlzLnBhZ2VTaXplT3B0aW9ucyA9IGRhdGE/LnBhZ2VTaXplT3B0aW9ucyB8fCBQQUdJTkFUSU9OX0RBVEFfREVGQVVMVFMuT1BUSU9OUztcclxuICAgIHRoaXMucGFnZVNpemUgPSBkYXRhPy5wYWdlU2l6ZSB8fCBQQUdJTkFUSU9OX0RBVEFfREVGQVVMVFMuU0laRTtcclxuICAgIHRoaXMucGFnZUluZGV4ID0gZGF0YT8ucGFnZUluZGV4IHx8IFBBR0lOQVRJT05fREFUQV9ERUZBVUxUUy5QQUdFX0lOREVYO1xyXG4gICAgdGhpcy50b3RhbCA9IGRhdGE/LnRvdGFsIHx8IDA7XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBQQUdJTkFUSU9OX0RBVEFfREVGQVVMVFMgPSB7XHJcbiAgT1BUSU9OUzogWzEwLCAyMCwgNTAsIDEwMF0sXHJcbiAgU0laRTogMTAsXHJcbiAgUEFHRV9JTkRFWDogMFxyXG59O1xyXG4iLCI8ZGl2ICpuZ0lmPVwiZGF0YVBlbmRpbmdcIiBjbGFzcz1cIm92ZXJsYXlcIj5cclxuICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcclxuICAgIGNsYXNzPVwicGFnZS1zcGlubmVyXCJcclxuICAgIG1vZGU9XCJpbmRldGVybWluYXRlXCJcclxuICAgIFtkaWFtZXRlcl09XCIxMjBcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgaWQ9XCJ1c2VyVXBncmFkZURhdGFUYWJsZVwiIGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVzZXItdXBncmFkZS1zdGF0dXMtd3JhcHBlclwiPlxyXG4gICAgICAgIDx0ay1zdW1tYXJ5LWNhcmQgW2Rlc2NyaXB0aW9uXT1cIidVc2VycyBhcmUgcmVhZHkgdG8gdXBncmFkZSdcIiBbdmFsdWVdPVwic3RhdHVzQ291bnRzWydSZWFkeSddXCI+PC90ay1zdW1tYXJ5LWNhcmQ+XHJcbiAgICAgICAgPHRrLXN1bW1hcnktY2FyZCBbZGVzY3JpcHRpb25dPVwiJ1VzZXJzIGFyZSBub3QgcmVhZHknXCIgW3ZhbHVlXT1cInN0YXR1c0NvdW50c1snTm90IFJlYWR5J11cIiBbc3RhdHVzXT1cIidOb3QgUmVhZHknXCI+PC90ay1zdW1tYXJ5LWNhcmQ+XHJcbiAgICAgICAgPHRrLXN1bW1hcnktY2FyZCBbZGVzY3JpcHRpb25dPVwiJ1VzZXJzIGZhaWxlZCB0byB1cGdyYWRlJ1wiIFt2YWx1ZV09XCJzdGF0dXNDb3VudHNbJ0ZhaWxlZCddXCIgW3N0YXR1c109XCInRmFpbGVkJ1wiPjwvdGstc3VtbWFyeS1jYXJkPlxyXG4gICAgICAgIDx0ay1zdW1tYXJ5LWNhcmQgW2Rlc2NyaXB0aW9uXT1cIidTdWNjZXNzZnVsbHkgdXBncmFkZWQnXCIgW3ZhbHVlXT1cInN0YXR1c0NvdW50c1snQ29tcGxldGVkJ11cIiBbc3RhdHVzXT1cIidDb21wbGV0ZWQnXCI+PC90ay1zdW1tYXJ5LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1hY3Rpb24tcGFuZWxcIj5cclxuICAgICAgICA8dGstdGFibGUtZmlsdGVycyAqbmdJZj1cImZpbHRlcnMubGVuZ3RoID4gMFwiIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIj48L3RrLXRhYmxlLWZpbHRlcnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ZmlsdGVyZWREYXRhQ291bnR9fSBVc2Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1cGdyYWRlLWJ1bGstYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBncmFkZVNlbGVjdGVkVXNlcnMoKVwiPlxyXG4gICAgICAgICAgICAgICAgVXBncmFkZSB7eyBzZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gJycgOiAnKCcgKyBzZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoICsgJyknIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFcIiBjbGFzcz1cInVzZXItdXBncmFkZS10YWJsZVwiPlxyXG5cclxuICAgICAgICA8IS0tIENoZWNrYm94IENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdFwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBpc0FsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICFpc0FsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94XCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlNUQVRVU19FTlRSSUVTW3Jvdy51cGdyYWRlU3RhdHVzXSAhPT0gJ1JlYWR5JyB8fCByb3cucGVuZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFVzZXIgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlclwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlVzZXI8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj57e2VsZW1lbnQudXNlck5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWVtYWlsXCI+e3tlbGVtZW50LnVzZXJOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNpdGUgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2l0ZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlNpdGU8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpdGUtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2l0ZS1pbmRpY2F0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieydzdGF0dXMtcmVhZHknOiBlbGVtZW50LmRpYWxQbGFuU3RhdHVzID09PSAnUkVBRFknfVwiPnt7ZWxlbWVudC5zaXRlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gRGV2aWNlIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRldmljZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkRldmljZTwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZWxlbWVudC5kZXZpY2VzLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldmljZS1uYW1lLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLWluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLW5hbWVcIj5NdWx0aXBsZSBkZXZpY2VzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZWxlbWVudC5kZXZpY2VzLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLW5hbWUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXZpY2UtaW5kaWNhdG9yXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXZpY2UtbmFtZVwiPnt7ZWxlbWVudC5kZXZpY2VzWzBdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldmljZS1tb2RlbFwiPnt7IGVsZW1lbnQucHJpbWFyeUV4dGVuc2lvbiB8fCAnTm8gRXh0ZW5zaW9uJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERpYWwgUGxhbiBTdGF0dXMgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGlhbFBsYW5TdGF0dXNcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5EaWFsIFBsYW4gU3RhdHVzPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHVzLWluZGljYXRvclwiIFtuZ0NsYXNzXT1cImdldFN0YXR1c0NsYXNzKGVsZW1lbnQuZGlhbFBsYW5TdGF0dXMpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7J3N0YXR1cy1yZWFkeSc6IGVsZW1lbnQuZGlhbFBsYW5TdGF0dXMgPT09ICdSRUFEWSd9XCI+e3tTVEFUVVNfRU5UUklFU1tlbGVtZW50LmRpYWxQbGFuU3RhdHVzXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gRGVwZW5kZW5jaWVzIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRlcGVuZGVuY2llc1wiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkRlcGVuZGVuY2llczwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkRFUEVOREVOQ0lFU19TVEFUVVNbZWxlbWVudC5kZXBlbmRlbmNpZXNTdGF0dXNdID09PSAnRGVwZW5kZW5jaWVzIGZvdW5kJ1wiIGNsYXNzPVwiZGVwZW5kZW5jaWVzLXRleHRcIj57e0RFUEVOREVOQ0lFU19TVEFUVVNbZWxlbWVudC5kZXBlbmRlbmNpZXNTdGF0dXNdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkRFUEVOREVOQ0lFU19TVEFUVVNbZWxlbWVudC5kZXBlbmRlbmNpZXNTdGF0dXNdID09PSAnTm8gZGVwZW5kZW5jaWVzJ1wiPuKAlDwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBVc2VyIFVwZ3JhZGUgU3RhdHVzIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXJVcGdyYWRlU3RhdHVzXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+VXNlciBVcGdyYWRlIFN0YXR1czwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBncmFkZS1zdGF0dXMtY2VsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTVEFUVVNfRU5UUklFU1tlbGVtZW50LnVwZ3JhZGVTdGF0dXNdID09PSAnUmVhZHknOyBlbHNlIHN0YXR1c0Jsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cInVwZ3JhZGUtYnV0dG9uXCIgKGNsaWNrKT1cInVwZ3JhZGVVc2VyKGVsZW1lbnQpXCI+VXBncmFkZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhdHVzQmxvY2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0dXMtaW5kaWNhdG9yXCIgW25nQ2xhc3NdPVwiZ2V0U3RhdHVzQ2xhc3MoZWxlbWVudC51cGdyYWRlU3RhdHVzKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7U1RBVFVTX0VOVFJJRVNbZWxlbWVudC51cGdyYWRlU3RhdHVzXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ1c2VyVXBncmFkZUxvYWRlclwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10ZFwiIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuXHJcbiAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50LnBlbmRpbmdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpZWxkLXNwaW5uZXJcIlxyXG4gICAgICAgICAgICBbZGlhbWV0ZXJdPVwiMjBcIlxyXG4gICAgICAgICAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPlxyXG4gICAgICAgICAgPC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIlxyXG4gICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWQtcm93XT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdylcIj48L3RyPlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXBwLXBhZ2luYXRpb25cIj5cclxuICA8bWF0LXBhZ2luYXRvclxyXG4gICAgW2xlbmd0aF09XCJwYWdpbmF0aW9uLnRvdGFsXCJcclxuICAgIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uLnBhZ2VTaXplXCJcclxuICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnaW5hdGlvbi5wYWdlU2l6ZU9wdGlvbnNcIlxyXG4gICAgW3BhZ2VJbmRleF09XCJwYWdpbmF0aW9uLnBhZ2VJbmRleFwiXHJcbiAgICAocGFnZSk9XCJwYWdlRXZlbnQoJGV2ZW50KVwiXHJcbiAgICBzaG93Rmlyc3RMYXN0QnV0dG9ucz5cclxuICA8L21hdC1wYWdpbmF0b3I+XHJcblxyXG4gIDwhLS08ZGl2IGNsYXNzPVwicGFnZS1pbmRleGVzLWJveFwiPlxyXG4gICAgPG1hdC1wYWdpbmF0b3JcclxuICAgICAgW2lkXT1cIidjb21tb25QYWdpbmF0aW9uJ1wiXHJcbiAgICAgIFtoaWRlUGFnZVNpemVdPVwidHJ1ZVwiXHJcbiAgICAgIFtsZW5ndGhdPVwicGFnaW5hdGlvbi50b3RhbFwiXHJcbiAgICAgIFtwYWdlSW5kZXhdPVwicGFnaW5hdGlvbi5wYWdlSW5kZXhcIlxyXG4gICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvbi5wYWdlU2l6ZVwiXHJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnaW5hdGlvbi5wYWdlU2l6ZU9wdGlvbnNcIlxyXG4gICAgICAocGFnZSk9XCJwYWdlRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgPC9tYXQtcGFnaW5hdG9yPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicGVyLXBhZ2UtYmxvY2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpdGVtX3Blcl9wYWdlXCI+SXRlbXMgcGVyIHBhZ2U6PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWJveCBzZWxlY3QtcGFnZS1zaXplXCI+XHJcbiAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlUGVyUGFnZU51bWJlcigkZXZlbnQpXCIgI3BhZ2VcclxuICAgICAgICAgICAgICAgICAgW2lkXT1cIidjb21tb25QYWdpbmF0aW9uU2VsZWN0J1wiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnZVNpemVPcHRpb25zOyBsZXQgaSA9IGluZGV4O1wiIFtpZF09XCIncGFnaW5hdGlvblNlbGVjdE9wdF8nICsgaVwiIFt2YWx1ZV09XCJvcHRpb25cIj57e29wdGlvbn19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+LS0+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { UserUpgradeDataTableComponent } from "./user-upgrade-data-table/user-upgrade-data-table.component";
3
+ import { CommonModule } from "@angular/common";
4
+ import { MatButtonModule } from "@angular/material/button";
5
+ import { MatTableModule } from "@angular/material/table";
6
+ import { SharedModule } from "../../shared/shared.module";
7
+ import { MatCheckboxModule } from "@angular/material/checkbox";
8
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
9
+ import { MatOptionModule } from '@angular/material/core';
10
+ import { MatPaginatorModule } from '@angular/material/paginator';
11
+ import { MatSelectModule } from '@angular/material/select';
12
+ import * as i0 from "@angular/core";
13
+ export class UserUpgradeModule {
14
+ }
15
+ UserUpgradeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ UserUpgradeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, declarations: [UserUpgradeDataTableComponent], imports: [CommonModule,
17
+ SharedModule,
18
+ MatTableModule,
19
+ MatButtonModule,
20
+ MatCheckboxModule,
21
+ MatSelectModule,
22
+ MatProgressSpinnerModule,
23
+ MatOptionModule,
24
+ MatPaginatorModule,
25
+ MatSelectModule], exports: [UserUpgradeDataTableComponent] });
26
+ UserUpgradeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, imports: [CommonModule,
27
+ SharedModule,
28
+ MatTableModule,
29
+ MatButtonModule,
30
+ MatCheckboxModule,
31
+ MatSelectModule,
32
+ MatProgressSpinnerModule,
33
+ MatOptionModule,
34
+ MatPaginatorModule,
35
+ MatSelectModule] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, decorators: [{
37
+ type: NgModule,
38
+ args: [{
39
+ declarations: [
40
+ UserUpgradeDataTableComponent
41
+ ],
42
+ imports: [
43
+ CommonModule,
44
+ SharedModule,
45
+ MatTableModule,
46
+ MatButtonModule,
47
+ MatCheckboxModule,
48
+ MatSelectModule,
49
+ MatProgressSpinnerModule,
50
+ MatOptionModule,
51
+ MatPaginatorModule,
52
+ MatSelectModule
53
+ ],
54
+ exports: [
55
+ UserUpgradeDataTableComponent
56
+ ]
57
+ }]
58
+ }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC93aWRnZXRzL3VzZXItdXBncmFkZS91c2VyLXVwZ3JhZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBc0IzRCxNQUFNLE9BQU8saUJBQWlCOzsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBbEIxQiw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2Ysd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsZUFBZSxhQUdmLDZCQUE2QjtnSEFHcEIsaUJBQWlCLFlBZjFCLFlBQVk7UUFDWixZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLGVBQWU7NEZBTU4saUJBQWlCO2tCQXBCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNkJBQTZCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDZCQUE2QjtxQkFDOUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVzZXJVcGdyYWRlRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vdXNlci11cGdyYWRlLWRhdGEtdGFibGUvdXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGVcIjtcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFVzZXJVcGdyYWRlRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaGFyZWRNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxyXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBVc2VyVXBncmFkZURhdGFUYWJsZUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJVcGdyYWRlTW9kdWxlIHtcclxufVxyXG4iXX0=