@tuki-io/tuki-widgets 0.0.73 → 0.0.75

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 (660) hide show
  1. package/.editorconfig +16 -0
  2. package/.hintrc +14 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +25 -24
  7. package/angular.json +141 -0
  8. package/package.json +48 -65
  9. package/projects/tuki/widgets/README.md +24 -0
  10. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +26 -0
  11. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  12. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  13. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  14. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +3 -0
  15. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  16. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  17. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  18. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  19. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  20. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  21. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  22. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  23. package/projects/tuki/widgets/di2mt/ng-package.json +7 -0
  24. package/{di2mt/public-api.d.ts → projects/tuki/widgets/di2mt/public-api.ts} +27 -12
  25. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +11 -0
  26. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +48 -0
  27. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +10 -0
  28. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +15 -0
  29. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +38 -0
  30. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +71 -0
  31. package/projects/tuki/widgets/di2mt/shared/components/index.ts +6 -0
  32. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +57 -0
  33. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +74 -0
  34. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +44 -0
  35. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +28 -0
  36. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +55 -0
  37. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +11 -0
  38. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +12 -0
  39. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +79 -0
  40. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +27 -0
  41. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +28 -0
  42. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +244 -0
  43. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +28 -0
  44. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +96 -0
  45. package/projects/tuki/widgets/di2mt/shared/material.module.ts +36 -0
  46. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +92 -0
  47. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +38 -0
  48. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +15 -0
  49. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +5 -0
  50. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +14 -0
  51. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +13 -0
  52. package/projects/tuki/widgets/di2mt/styles/variables.scss +92 -0
  53. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +3 -0
  54. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +37 -0
  55. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +40 -0
  56. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +158 -0
  57. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +430 -0
  58. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +362 -0
  59. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +33 -0
  60. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +102 -0
  61. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +22 -0
  62. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +52 -0
  63. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +53 -0
  64. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +67 -0
  65. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +7 -0
  66. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  67. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +45 -0
  68. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +7 -0
  69. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  70. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +45 -0
  71. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +59 -0
  72. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +70 -0
  73. package/{di2mt/widgets/upgrade-overview/types/upgrade-overview.d.ts → projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts} +58 -56
  74. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +42 -0
  75. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +95 -0
  76. package/{di2mt/widgets/user-upgrade/types/user-upgrade.d.ts → projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts} +19 -16
  77. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +186 -0
  78. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +345 -0
  79. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +313 -0
  80. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +34 -0
  81. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +79 -0
  82. package/projects/tuki/widgets/karma.conf.js +44 -0
  83. package/projects/tuki/widgets/ng-package.json +10 -0
  84. package/projects/tuki/widgets/package.json +13 -0
  85. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +23 -0
  86. package/projects/tuki/widgets/src/lib/widgets.component.ts +20 -0
  87. package/projects/tuki/widgets/src/lib/widgets.module.ts +16 -0
  88. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +16 -0
  89. package/projects/tuki/widgets/src/lib/widgets.service.ts +9 -0
  90. package/{public-api.d.ts → projects/tuki/widgets/src/public-api.ts} +7 -3
  91. package/projects/tuki/widgets/src/test.ts +27 -0
  92. package/projects/tuki/widgets/styles.scss +572 -0
  93. package/projects/tuki/widgets/tsconfig.lib.json +36 -0
  94. package/projects/tuki/widgets/tsconfig.lib.prod.json +10 -0
  95. package/projects/tuki/widgets/tsconfig.spec.json +17 -0
  96. package/projects/tuki/widgets/user-device-manage/ng-package.json +7 -0
  97. package/{user-device-manage/public-api.d.ts → projects/tuki/widgets/user-device-manage/public-api.ts} +8 -8
  98. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +96 -0
  99. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +5 -0
  100. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +5 -0
  101. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +3 -0
  102. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +5 -0
  103. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  104. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +1 -0
  105. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  106. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +292 -0
  107. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +50 -0
  108. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +177 -0
  109. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +21 -0
  110. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +41 -0
  111. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +144 -0
  112. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +40 -0
  113. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +6 -0
  114. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +169 -0
  115. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +167 -0
  116. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +50 -0
  117. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +19 -0
  118. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +225 -0
  119. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +8 -0
  120. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +16 -0
  121. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +14 -0
  122. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +80 -0
  123. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +35 -0
  124. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -0
  125. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +97 -0
  126. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -0
  127. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +6 -0
  128. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +20 -0
  129. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +13 -0
  130. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -0
  131. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -0
  132. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -0
  133. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +241 -0
  134. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +500 -0
  135. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +194 -0
  136. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +27 -0
  137. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +131 -0
  138. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +25 -0
  139. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +209 -0
  140. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +502 -0
  141. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +354 -0
  142. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +9 -0
  143. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +10 -0
  144. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +35 -0
  145. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  146. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  147. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  148. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +87 -0
  149. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +33 -0
  150. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +84 -0
  151. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +46 -0
  152. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +25 -0
  153. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +87 -0
  154. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +17 -0
  155. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +95 -0
  156. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +111 -0
  157. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +89 -0
  158. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +68 -0
  159. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +25 -0
  160. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +82 -0
  161. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +203 -0
  162. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +283 -0
  163. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +87 -0
  164. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +829 -0
  165. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +90 -0
  166. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +231 -0
  167. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +32 -0
  168. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +110 -0
  169. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +30 -0
  170. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +73 -0
  171. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +6 -0
  172. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  173. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +13 -0
  174. package/projects/tuki/widgets/user-manage/ng-package.json +7 -0
  175. package/{user-manage/public-api.d.ts → projects/tuki/widgets/user-manage/public-api.ts} +6 -6
  176. package/projects/tuki/widgets/user-manage/src/app.constants.ts +50 -0
  177. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +5 -0
  178. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +5 -0
  179. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +5 -0
  180. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  181. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +1 -0
  182. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  183. package/projects/tuki/widgets/user-manage/src/classes/device.ts +232 -0
  184. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +43 -0
  185. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +161 -0
  186. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +21 -0
  187. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +42 -0
  188. package/projects/tuki/widgets/user-manage/src/classes/line.ts +144 -0
  189. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +39 -0
  190. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +18 -0
  191. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +6 -0
  192. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +165 -0
  193. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +6 -0
  194. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +49 -0
  195. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +225 -0
  196. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +42 -0
  197. package/projects/tuki/widgets/user-manage/src/classes/user.ts +8 -0
  198. package/projects/tuki/widgets/user-manage/src/common-functions.ts +16 -0
  199. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +27 -0
  200. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +131 -0
  201. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +25 -0
  202. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +9 -0
  203. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +10 -0
  204. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +35 -0
  205. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  206. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  207. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  208. package/projects/tuki/widgets/user-manage/src/material.module.ts +85 -0
  209. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +33 -0
  210. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +84 -0
  211. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +46 -0
  212. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +25 -0
  213. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +90 -0
  214. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +116 -0
  215. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +31 -0
  216. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +68 -0
  217. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +25 -0
  218. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +35 -0
  219. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +203 -0
  220. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +242 -0
  221. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +59 -0
  222. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +71 -0
  223. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +90 -0
  224. package/projects/tuki/widgets/user-manage/src/styles/form.scss +231 -0
  225. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +32 -0
  226. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +110 -0
  227. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +30 -0
  228. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -0
  229. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +429 -0
  230. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -0
  231. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +32 -0
  232. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +444 -0
  233. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +89 -0
  234. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +68 -0
  235. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +29 -0
  236. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +64 -0
  237. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +19 -0
  238. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +290 -0
  239. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +463 -0
  240. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +212 -0
  241. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +63 -0
  242. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +6 -0
  243. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  244. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +13 -0
  245. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +26 -0
  246. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +41 -0
  247. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +41 -0
  248. package/projects/tuki/widgets/users-list/ng-package.json +7 -0
  249. package/{users-list/public-api.d.ts → projects/tuki/widgets/users-list/public-api.ts} +8 -8
  250. package/projects/tuki/widgets/users-list/src/app.constants.ts +54 -0
  251. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +3 -0
  252. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +1 -0
  253. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +14 -0
  254. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +3 -0
  255. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +36 -0
  256. package/projects/tuki/widgets/users-list/src/classes/device.ts +225 -0
  257. package/projects/tuki/widgets/users-list/src/classes/line.ts +144 -0
  258. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +225 -0
  259. package/projects/tuki/widgets/users-list/src/classes/notification.ts +38 -0
  260. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +18 -0
  261. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +74 -0
  262. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +6 -0
  263. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +225 -0
  264. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +47 -0
  265. package/projects/tuki/widgets/users-list/src/classes/user.ts +8 -0
  266. package/projects/tuki/widgets/users-list/src/material.module.ts +94 -0
  267. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +37 -0
  268. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +129 -0
  269. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +46 -0
  270. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +31 -0
  271. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +20 -0
  272. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +26 -0
  273. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +222 -0
  274. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +239 -0
  275. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +206 -0
  276. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +12 -0
  277. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +41 -0
  278. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +36 -0
  279. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +14 -0
  280. package/projects/tuki/widgets/users-list/src/services/api.service.ts +90 -0
  281. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +128 -0
  282. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +11 -0
  283. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +59 -0
  284. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +68 -0
  285. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +25 -0
  286. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +26 -0
  287. package/projects/tuki/widgets/users-list/src/services/user.service.ts +159 -0
  288. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +139 -0
  289. package/projects/tuki/widgets/users-list/src/styles/styles.scss +572 -0
  290. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +15 -0
  291. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +103 -0
  292. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -0
  293. package/projects/tuki/widgets/users-list/src/users-list.component.css +4 -0
  294. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +1 -0
  295. package/projects/tuki/widgets/users-list/src/users-list.component.html +86 -0
  296. package/projects/tuki/widgets/users-list/src/users-list.component.scss +572 -0
  297. package/projects/tuki/widgets/users-list/src/users-list.component.ts +312 -0
  298. package/projects/tuki/widgets/users-list/src/users-list.module.ts +63 -0
  299. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +11 -0
  300. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +1 -0
  301. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +6 -0
  302. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +11 -0
  303. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +13 -0
  304. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +32 -0
  305. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +33 -0
  306. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +84 -0
  307. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +46 -0
  308. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +45 -0
  309. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +1 -0
  310. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +26 -0
  311. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +41 -0
  312. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +41 -0
  313. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +71 -0
  314. package/projects/widgets-playground/src/app/app.component.html +109 -0
  315. package/projects/widgets-playground/src/app/app.component.scss +15 -0
  316. package/projects/widgets-playground/src/app/app.component.spec.ts +31 -0
  317. package/projects/widgets-playground/src/app/app.component.ts +31 -0
  318. package/projects/widgets-playground/src/app/app.module.ts +43 -0
  319. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  320. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  321. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  322. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  323. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  324. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  325. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  326. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  327. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  328. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  329. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  330. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  331. package/projects/widgets-playground/src/favicon.ico +0 -0
  332. package/projects/widgets-playground/src/index.html +13 -0
  333. package/projects/widgets-playground/src/main.ts +7 -0
  334. package/projects/widgets-playground/src/styles.scss +23 -0
  335. package/projects/widgets-playground/tsconfig.app.json +14 -0
  336. package/projects/widgets-playground/tsconfig.spec.json +14 -0
  337. package/proxy.conf.js +23 -0
  338. package/tsconfig.json +46 -0
  339. package/di2mt/api/api.endpoints.d.ts +0 -20
  340. package/di2mt/index.d.ts +0 -5
  341. package/di2mt/shared/components/card/card.component.d.ts +0 -6
  342. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +0 -22
  343. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +0 -14
  344. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +0 -7
  345. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +0 -9
  346. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +0 -14
  347. package/di2mt/shared/material.module.d.ts +0 -15
  348. package/di2mt/shared/services/api.service.d.ts +0 -20
  349. package/di2mt/shared/shared.module.d.ts +0 -16
  350. package/di2mt/shared/types/constants.d.ts +0 -7
  351. package/di2mt/shared/types/data-table.d.ts +0 -5
  352. package/di2mt/shared/types/table/filter.d.ts +0 -16
  353. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +0 -48
  354. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +0 -12
  355. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +0 -12
  356. package/di2mt/widgets/site-upgrade/types/user-upgrade.d.ts +0 -14
  357. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +0 -19
  358. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +0 -19
  359. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +0 -18
  360. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +0 -19
  361. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +0 -19
  362. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +0 -15
  363. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +0 -18
  364. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +0 -15
  365. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +0 -17
  366. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +0 -49
  367. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +0 -12
  368. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +0 -14
  369. package/esm2020/di2mt/api/api.endpoints.mjs +0 -21
  370. package/esm2020/di2mt/public-api.mjs +0 -23
  371. package/esm2020/di2mt/shared/components/card/card.component.mjs +0 -13
  372. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +0 -62
  373. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +0 -47
  374. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +0 -17
  375. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +0 -36
  376. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +0 -37
  377. package/esm2020/di2mt/shared/material.module.mjs +0 -76
  378. package/esm2020/di2mt/shared/services/api.service.mjs +0 -86
  379. package/esm2020/di2mt/shared/shared.module.mjs +0 -61
  380. package/esm2020/di2mt/shared/types/constants.mjs +0 -12
  381. package/esm2020/di2mt/shared/types/data-table.mjs +0 -2
  382. package/esm2020/di2mt/shared/types/table/filter.mjs +0 -2
  383. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +0 -5
  384. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +0 -182
  385. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +0 -40
  386. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +0 -43
  387. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +0 -3
  388. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +0 -64
  389. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +0 -64
  390. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +0 -68
  391. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +0 -45
  392. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +0 -45
  393. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +0 -64
  394. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +0 -74
  395. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +0 -2
  396. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +0 -59
  397. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +0 -82
  398. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +0 -3
  399. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +0 -197
  400. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +0 -40
  401. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +0 -58
  402. package/esm2020/lib/widgets.component.mjs +0 -22
  403. package/esm2020/lib/widgets.module.mjs +0 -21
  404. package/esm2020/lib/widgets.service.mjs +0 -14
  405. package/esm2020/public-api.mjs +0 -7
  406. package/esm2020/tuki-io-tuki-widgets.mjs +0 -5
  407. package/esm2020/user-device-manage/public-api.mjs +0 -9
  408. package/esm2020/user-device-manage/src/app.constants.mjs +0 -95
  409. package/esm2020/user-device-manage/src/classes/device.mjs +0 -85
  410. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +0 -2
  411. package/esm2020/user-device-manage/src/classes/line-association.mjs +0 -121
  412. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +0 -10
  413. package/esm2020/user-device-manage/src/classes/line-directory.mjs +0 -27
  414. package/esm2020/user-device-manage/src/classes/line.mjs +0 -18
  415. package/esm2020/user-device-manage/src/classes/notification.mjs +0 -32
  416. package/esm2020/user-device-manage/src/classes/recording-options.mjs +0 -7
  417. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +0 -111
  418. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +0 -21
  419. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +0 -32
  420. package/esm2020/user-device-manage/src/classes/types.mjs +0 -24
  421. package/esm2020/user-device-manage/src/common-functions.mjs +0 -19
  422. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +0 -34
  423. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +0 -31
  424. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +0 -16
  425. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +0 -64
  426. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +0 -179
  427. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +0 -24
  428. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +0 -335
  429. package/esm2020/user-device-manage/src/environments/environment.mjs +0 -11
  430. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +0 -36
  431. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  432. package/esm2020/user-device-manage/src/material.module.mjs +0 -192
  433. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +0 -35
  434. package/esm2020/user-device-manage/src/services/api.service.mjs +0 -79
  435. package/esm2020/user-device-manage/src/services/device.service.mjs +0 -83
  436. package/esm2020/user-device-manage/src/services/dns.service.mjs +0 -104
  437. package/esm2020/user-device-manage/src/services/line.service.mjs +0 -76
  438. package/esm2020/user-device-manage/src/services/notification.service.mjs +0 -62
  439. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  440. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +0 -70
  441. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +0 -197
  442. package/esm2020/user-device-manage/src/services/user.service.mjs +0 -243
  443. package/esm2020/user-device-manage/src/services/utils.service.mjs +0 -87
  444. package/esm2020/user-device-manage/src/services/validation.service.mjs +0 -760
  445. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +0 -107
  446. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +0 -14
  447. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +0 -5
  448. package/esm2020/user-manage/public-api.mjs +0 -7
  449. package/esm2020/user-manage/src/app.constants.mjs +0 -50
  450. package/esm2020/user-manage/src/classes/device.mjs +0 -37
  451. package/esm2020/user-manage/src/classes/line-association-interface.mjs +0 -2
  452. package/esm2020/user-manage/src/classes/line-association.mjs +0 -110
  453. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +0 -10
  454. package/esm2020/user-manage/src/classes/line-directory.mjs +0 -27
  455. package/esm2020/user-manage/src/classes/line.mjs +0 -18
  456. package/esm2020/user-manage/src/classes/notification.mjs +0 -32
  457. package/esm2020/user-manage/src/classes/pagination.mjs +0 -8
  458. package/esm2020/user-manage/src/classes/recording-options.mjs +0 -7
  459. package/esm2020/user-manage/src/classes/simplified-user.mjs +0 -109
  460. package/esm2020/user-manage/src/classes/table-data.mjs +0 -2
  461. package/esm2020/user-manage/src/classes/translation-pattern.mjs +0 -32
  462. package/esm2020/user-manage/src/classes/user-list.mjs +0 -10
  463. package/esm2020/user-manage/src/common-functions.mjs +0 -19
  464. package/esm2020/user-manage/src/device-list/device-list.component.mjs +0 -24
  465. package/esm2020/user-manage/src/environments/environment.mjs +0 -11
  466. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +0 -36
  467. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  468. package/esm2020/user-manage/src/material.module.mjs +0 -188
  469. package/esm2020/user-manage/src/notifications/notification.component.mjs +0 -35
  470. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +0 -25
  471. package/esm2020/user-manage/src/services/api.service.mjs +0 -79
  472. package/esm2020/user-manage/src/services/dns.service.mjs +0 -110
  473. package/esm2020/user-manage/src/services/line.service.mjs +0 -34
  474. package/esm2020/user-manage/src/services/notification.service.mjs +0 -62
  475. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  476. package/esm2020/user-manage/src/services/site-settings.service.mjs +0 -36
  477. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +0 -197
  478. package/esm2020/user-manage/src/services/user.service.mjs +0 -207
  479. package/esm2020/user-manage/src/services/users-search.service.mjs +0 -50
  480. package/esm2020/user-manage/src/services/utils.service.mjs +0 -73
  481. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +0 -65
  482. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +0 -78
  483. package/esm2020/user-manage/src/user-info/user-info.component.mjs +0 -20
  484. package/esm2020/user-manage/src/user-manage-widget.component.mjs +0 -208
  485. package/esm2020/user-manage/src/user-manage.module.mjs +0 -99
  486. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +0 -14
  487. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +0 -43
  488. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +0 -5
  489. package/esm2020/users-list/public-api.mjs +0 -9
  490. package/esm2020/users-list/src/app.constants.mjs +0 -54
  491. package/esm2020/users-list/src/classes/app-location.mjs +0 -32
  492. package/esm2020/users-list/src/classes/device.mjs +0 -7
  493. package/esm2020/users-list/src/classes/line.mjs +0 -18
  494. package/esm2020/users-list/src/classes/move-user.mjs +0 -178
  495. package/esm2020/users-list/src/classes/notification.mjs +0 -31
  496. package/esm2020/users-list/src/classes/pagination.mjs +0 -8
  497. package/esm2020/users-list/src/classes/simlified-user.mjs +0 -50
  498. package/esm2020/users-list/src/classes/table-data.mjs +0 -2
  499. package/esm2020/users-list/src/classes/user-list.mjs +0 -14
  500. package/esm2020/users-list/src/material.module.mjs +0 -209
  501. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +0 -38
  502. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +0 -23
  503. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +0 -189
  504. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +0 -38
  505. package/esm2020/users-list/src/services/api-webex.service.mjs +0 -18
  506. package/esm2020/users-list/src/services/api.service.mjs +0 -78
  507. package/esm2020/users-list/src/services/dns.service.mjs +0 -120
  508. package/esm2020/users-list/src/services/events-communication.service.mjs +0 -14
  509. package/esm2020/users-list/src/services/move-user.service.mjs +0 -53
  510. package/esm2020/users-list/src/services/notification.service.mjs +0 -62
  511. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +0 -25
  512. package/esm2020/users-list/src/services/site-settings.service.mjs +0 -27
  513. package/esm2020/users-list/src/services/user.service.mjs +0 -142
  514. package/esm2020/users-list/src/services/users-search.service.mjs +0 -122
  515. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +0 -34
  516. package/esm2020/users-list/src/users-list.component.mjs +0 -287
  517. package/esm2020/users-list/src/users-list.module.mjs +0 -92
  518. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +0 -14
  519. package/esm2020/users-list/src/utils/common-functions.mjs +0 -32
  520. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +0 -43
  521. package/esm2020/users-list/src/utils/utils.service.mjs +0 -73
  522. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +0 -5
  523. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +0 -1469
  524. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +0 -1
  525. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3402
  526. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  527. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +0 -2124
  528. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  529. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +0 -1994
  530. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  531. package/fesm2015/tuki-io-tuki-widgets.mjs +0 -63
  532. package/fesm2015/tuki-io-tuki-widgets.mjs.map +0 -1
  533. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +0 -1460
  534. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +0 -1
  535. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3364
  536. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  537. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +0 -2107
  538. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  539. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +0 -1973
  540. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  541. package/fesm2020/tuki-io-tuki-widgets.mjs +0 -63
  542. package/fesm2020/tuki-io-tuki-widgets.mjs.map +0 -1
  543. package/index.d.ts +0 -5
  544. package/lib/widgets.component.d.ts +0 -8
  545. package/lib/widgets.module.d.ts +0 -7
  546. package/lib/widgets.service.d.ts +0 -6
  547. package/user-device-manage/index.d.ts +0 -5
  548. package/user-device-manage/src/app.constants.d.ts +0 -74
  549. package/user-device-manage/src/classes/device.d.ts +0 -233
  550. package/user-device-manage/src/classes/line-association-interface.d.ts +0 -45
  551. package/user-device-manage/src/classes/line-association.d.ts +0 -62
  552. package/user-device-manage/src/classes/line-call-info-display.d.ts +0 -11
  553. package/user-device-manage/src/classes/line-directory.d.ts +0 -15
  554. package/user-device-manage/src/classes/line.d.ts +0 -140
  555. package/user-device-manage/src/classes/notification.d.ts +0 -18
  556. package/user-device-manage/src/classes/recording-options.d.ts +0 -5
  557. package/user-device-manage/src/classes/simplified-user.d.ts +0 -52
  558. package/user-device-manage/src/classes/site-defaults.d.ts +0 -146
  559. package/user-device-manage/src/classes/translation-pattern.d.ts +0 -19
  560. package/user-device-manage/src/classes/types.d.ts +0 -19
  561. package/user-device-manage/src/common-functions.d.ts +0 -1
  562. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +0 -20
  563. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +0 -15
  564. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +0 -7
  565. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +0 -24
  566. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +0 -89
  567. package/user-device-manage/src/device-list/device-list.component.d.ts +0 -11
  568. package/user-device-manage/src/device-manage-widget.component.d.ts +0 -71
  569. package/user-device-manage/src/environments/environment.d.ts +0 -9
  570. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  571. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  572. package/user-device-manage/src/material.module.d.ts +0 -29
  573. package/user-device-manage/src/notifications/notification.component.d.ts +0 -19
  574. package/user-device-manage/src/services/api.service.d.ts +0 -20
  575. package/user-device-manage/src/services/device.service.d.ts +0 -21
  576. package/user-device-manage/src/services/dns.service.d.ts +0 -14
  577. package/user-device-manage/src/services/line.service.d.ts +0 -33
  578. package/user-device-manage/src/services/notification.service.d.ts +0 -18
  579. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  580. package/user-device-manage/src/services/site-settings.service.d.ts +0 -25
  581. package/user-device-manage/src/services/sorting-utils.service.d.ts +0 -26
  582. package/user-device-manage/src/services/user.service.d.ts +0 -51
  583. package/user-device-manage/src/services/utils.service.d.ts +0 -10
  584. package/user-device-manage/src/services/validation.service.d.ts +0 -165
  585. package/user-device-manage/src/user-device-manage.module.d.ts +0 -22
  586. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  587. package/user-manage/index.d.ts +0 -5
  588. package/user-manage/src/app.constants.d.ts +0 -29
  589. package/user-manage/src/classes/device.d.ts +0 -203
  590. package/user-manage/src/classes/line-association-interface.d.ts +0 -40
  591. package/user-manage/src/classes/line-association.d.ts +0 -55
  592. package/user-manage/src/classes/line-call-info-display.d.ts +0 -11
  593. package/user-manage/src/classes/line-directory.d.ts +0 -16
  594. package/user-manage/src/classes/line.d.ts +0 -140
  595. package/user-manage/src/classes/notification.d.ts +0 -18
  596. package/user-manage/src/classes/pagination.d.ts +0 -13
  597. package/user-manage/src/classes/recording-options.d.ts +0 -5
  598. package/user-manage/src/classes/simplified-user.d.ts +0 -50
  599. package/user-manage/src/classes/table-data.d.ts +0 -5
  600. package/user-manage/src/classes/translation-pattern.d.ts +0 -18
  601. package/user-manage/src/classes/user-list.d.ts +0 -34
  602. package/user-manage/src/common-functions.d.ts +0 -1
  603. package/user-manage/src/device-list/device-list.component.d.ts +0 -11
  604. package/user-manage/src/environments/environment.d.ts +0 -9
  605. package/user-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  606. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  607. package/user-manage/src/material.module.d.ts +0 -28
  608. package/user-manage/src/notifications/notification.component.d.ts +0 -19
  609. package/user-manage/src/removeKynFromIBM.service.d.ts +0 -8
  610. package/user-manage/src/services/api.service.d.ts +0 -21
  611. package/user-manage/src/services/dns.service.d.ts +0 -14
  612. package/user-manage/src/services/line.service.d.ts +0 -17
  613. package/user-manage/src/services/notification.service.d.ts +0 -18
  614. package/user-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  615. package/user-manage/src/services/site-settings.service.d.ts +0 -9
  616. package/user-manage/src/services/sorting-utils.service.d.ts +0 -26
  617. package/user-manage/src/services/user.service.d.ts +0 -43
  618. package/user-manage/src/services/users-search.service.d.ts +0 -25
  619. package/user-manage/src/services/utils.service.d.ts +0 -9
  620. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +0 -24
  621. package/user-manage/src/user-calling/user-calling.component.d.ts +0 -30
  622. package/user-manage/src/user-info/user-info.component.d.ts +0 -9
  623. package/user-manage/src/user-manage-widget.component.d.ts +0 -45
  624. package/user-manage/src/user-manage.module.d.ts +0 -21
  625. package/user-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  626. package/user-manage/src/utils/pagination/pagination.component.d.ts +0 -18
  627. package/users-list/index.d.ts +0 -5
  628. package/users-list/src/app.constants.d.ts +0 -36
  629. package/users-list/src/classes/app-location.d.ts +0 -17
  630. package/users-list/src/classes/device.d.ts +0 -224
  631. package/users-list/src/classes/line.d.ts +0 -140
  632. package/users-list/src/classes/move-user.d.ts +0 -85
  633. package/users-list/src/classes/notification.d.ts +0 -18
  634. package/users-list/src/classes/pagination.d.ts +0 -13
  635. package/users-list/src/classes/simlified-user.d.ts +0 -25
  636. package/users-list/src/classes/table-data.d.ts +0 -5
  637. package/users-list/src/classes/user-list.d.ts +0 -36
  638. package/users-list/src/material.module.d.ts +0 -31
  639. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +0 -21
  640. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +0 -12
  641. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +0 -55
  642. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +0 -17
  643. package/users-list/src/services/api-webex.service.d.ts +0 -8
  644. package/users-list/src/services/api.service.d.ts +0 -21
  645. package/users-list/src/services/dns.service.d.ts +0 -18
  646. package/users-list/src/services/events-communication.service.d.ts +0 -8
  647. package/users-list/src/services/move-user.service.d.ts +0 -17
  648. package/users-list/src/services/notification.service.d.ts +0 -18
  649. package/users-list/src/services/removeKynFromIBM.service.d.ts +0 -8
  650. package/users-list/src/services/site-settings.service.d.ts +0 -11
  651. package/users-list/src/services/user.service.d.ts +0 -35
  652. package/users-list/src/services/users-search.service.d.ts +0 -34
  653. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +0 -20
  654. package/users-list/src/users-list.component.d.ts +0 -60
  655. package/users-list/src/users-list.module.d.ts +0 -18
  656. package/users-list/src/utils/app-loader/app-loader.d.ts +0 -6
  657. package/users-list/src/utils/common-functions.d.ts +0 -2
  658. package/users-list/src/utils/pagination/pagination.component.d.ts +0 -18
  659. package/users-list/src/utils/utils.service.d.ts +0 -9
  660. /package/{di2mt → projects/tuki/widgets/di2mt}/README.md +0 -0
@@ -1,189 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
2
- import { filterOptions } from '../../utils/common-functions';
3
- import { MigrationData, PrepareMigrationBody, PrepareMigrationData } from '../../classes/move-user';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../services/dns.service";
6
- import * as i2 from "../../services/user.service";
7
- import * as i3 from "../../services/site-settings.service";
8
- import * as i4 from "../../services/notification.service";
9
- import * as i5 from "../../services/move-user.service";
10
- import * as i6 from "@angular/common";
11
- import * as i7 from "@angular/forms";
12
- import * as i8 from "@angular/material/button";
13
- import * as i9 from "@angular/material/progress-spinner";
14
- import * as i10 from "@angular/material/form-field";
15
- import * as i11 from "@angular/material/input";
16
- import * as i12 from "@angular/material/autocomplete";
17
- import * as i13 from "@angular/material/core";
18
- import * as i14 from "@angular/material/stepper";
19
- import * as i15 from "@angular/material/checkbox";
20
- import * as i16 from "@angular/material/radio";
21
- import * as i17 from "../../utils/app-loader/app-loader";
22
- import * as i18 from "./device-move-user-tab/devices-move-user-wizard-tab.component";
23
- // for test only
24
- const LOCATION = 'Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzE2YjY0NjljLTBjZmQtNDJjMS1iOWJjLTUyN2FlZTNhN2RlOQ';
25
- export class MoveUserStepperComponent {
26
- get moveUserPending() {
27
- return this.userService.moveUserPending;
28
- }
29
- get currentNumber() {
30
- if (this.user?.devices?.length && this.user.devices[0]?.lineAssociations && this.user.devices[0].lineAssociations[0]) {
31
- return this.user.devices[0].lineAssociations[0].directoryNumber.directoryNumber;
32
- }
33
- return '';
34
- }
35
- get locations() {
36
- return this.siteSettingsService.locations;
37
- }
38
- get prepareMigrationData() {
39
- return this.moveUserService.prepareMigrationData;
40
- }
41
- constructor(dnsService, userService, siteSettingsService, notificationService, moveUserService) {
42
- this.dnsService = dnsService;
43
- this.userService = userService;
44
- this.siteSettingsService = siteSettingsService;
45
- this.notificationService = notificationService;
46
- this.moveUserService = moveUserService;
47
- this.done = new EventEmitter();
48
- this.runMoveUser = new EventEmitter();
49
- this.cancel = new EventEmitter();
50
- this.isLinear = false;
51
- this.phoneNumberPending = false;
52
- this.filteredLocations = [];
53
- this.dataPending = false;
54
- }
55
- ngOnInit() {
56
- this.moveUserService.prepareMigrationData = new PrepareMigrationData();
57
- this.getData();
58
- }
59
- displayLocation(location) {
60
- return location?.name || '';
61
- }
62
- onLocationAutocomplete(event) {
63
- const value = event.target.value;
64
- if (this.locations?.length) {
65
- this.filteredLocations = filterOptions(this.locations, value || '', '', 'name');
66
- }
67
- }
68
- onNumberAutocomplete() {
69
- if (this.dnsService.phoneNumbers?.length) {
70
- this.filteredPhoneNumbers = filterOptions(this.dnsService.phoneNumbers, this.prepareMigrationData.newPhoneNumber);
71
- }
72
- }
73
- onMoveUser(stepper) {
74
- this.stepper = stepper;
75
- this.runMoveUser.emit();
76
- }
77
- onStepChange(event) {
78
- }
79
- selectPhoneNumberMigrationType(event) {
80
- if (event.value && event.value === '2') {
81
- this.getPhoneNumbers();
82
- }
83
- this.moveUserService.prepareMigrationData.removePhoneNumber = event.value && event.value === '3';
84
- }
85
- selectExtensionMigrationType(event) {
86
- this.moveUserService.prepareMigrationData.removeExtension = event.value && event.value === '3';
87
- }
88
- onPhoneNumberChange(event) {
89
- console.log('new phone number = ', this.prepareMigrationData.newPhoneNumber);
90
- }
91
- onLocationChange(event) {
92
- this.moveUserService.prepareMigrationData.newLocation = event.option.value;
93
- this.moveUserService.resetMigrationDataForNewLocation();
94
- if (this.prepareMigrationData.moveType.phoneNumber === '2') {
95
- this.getPhoneNumbers();
96
- }
97
- this.getPrepareUserData();
98
- }
99
- onExtensionChange(event) {
100
- console.log('new newExtension = ', this.prepareMigrationData.newExtension);
101
- }
102
- getPhoneNumbers() {
103
- if (!this.prepareMigrationData.newLocation?.id) {
104
- return;
105
- }
106
- this.phoneNumberPending = true;
107
- this.dnsService.fetchPhoneNumbers(this.customerId, this.prepareMigrationData.newLocation.id)
108
- .subscribe(() => {
109
- this.phoneNumberPending = false;
110
- this.filteredPhoneNumbers = this.dnsService.phoneNumbers.slice();
111
- }, () => this.phoneNumberPending = false);
112
- }
113
- isNextFromSelectLocationDisabled() {
114
- if (!this.prepareMigrationData?.newLocation?.id || !this.prepareMigrationData.entityId) {
115
- return true;
116
- }
117
- if (this.prepareMigrationData.moveType.phoneNumber === '2' && !this.prepareMigrationData.newPhoneNumber) {
118
- return true;
119
- }
120
- if (this.prepareMigrationData.moveType.extension === '2' && !this.prepareMigrationData.newExtension) {
121
- return true;
122
- }
123
- return false;
124
- }
125
- goNextStep(stepper) {
126
- }
127
- startMigration() {
128
- const migrationData = new MigrationData(this.prepareMigrationData);
129
- this.dataPending = true;
130
- this.moveUserService.startMigration(migrationData)
131
- .subscribe((result) => {
132
- this.dataPending = false;
133
- if (this.nextAfterMoveBtn?._elementRef?.nativeElement) {
134
- this.nextAfterMoveBtn._elementRef.nativeElement.click();
135
- }
136
- }, () => {
137
- this.dataPending = false;
138
- });
139
- }
140
- getData() {
141
- if (!this.user) {
142
- return;
143
- }
144
- this.dataPending = true;
145
- this.siteSettingsService.getLocations(this.customerId)
146
- .subscribe(() => {
147
- if (this.locations?.length) {
148
- this.filteredLocations = this.locations.slice();
149
- }
150
- this.dataPending = false;
151
- }, () => this.dataPending = false);
152
- }
153
- getPrepareUserData() {
154
- if (this.prepareMigrationData?.newLocation?.id) {
155
- this.moveUserService.setOriginPrepareMigrationData();
156
- const prepareMigrationBody = new PrepareMigrationBody(this.user, this.customerId, this.prepareMigrationData.newLocation.id);
157
- this.moveUserService.prepareMigrationData.pending = true;
158
- this.moveUserService.fetchPrepareMigrationData(prepareMigrationBody)
159
- .subscribe(() => {
160
- }, () => {
161
- this.moveUserService.prepareMigrationData.pending = false;
162
- this.notificationService.error('Move user attempt is failed');
163
- });
164
- }
165
- }
166
- resetMoveTypePhoneNUmber() {
167
- this.dnsService.phoneNumbers = [];
168
- }
169
- }
170
- MoveUserStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, deps: [{ token: i1.DnsService }, { token: i2.UserService }, { token: i3.SiteSettingsService }, { token: i4.NotificationService }, { token: i5.MoveUserService }], target: i0.ɵɵFactoryTarget.Component });
171
- MoveUserStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: { user: "user", customerId: "customerId" }, outputs: { done: "done", runMoveUser: "runMoveUser", cancel: "cancel" }, viewQueries: [{ propertyName: "nextAfterMoveBtn", first: true, predicate: ["nextAfterMoveBtn"], descendants: true }], ngImport: i0, template: "<app-loader *ngIf=\"prepareMigrationData.pending || moveUserPending || dataPending\"></app-loader>\n<div id=\"move-user-stepper\">\n <mat-stepper *ngIf=\"prepareMigrationData?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\n <mat-step>\n <div class=\"step-title\">Step 1: Select location</div>\n <!-- <form>-->\n <ng-template matStepLabel>Select location</ng-template>\n <form>\n <div class=\"move-user-tab-content-box\">\n <mat-label class=\"mat-label\">Select a new location</mat-label>\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\n <input placeholder=\"Select location\" [matAutocomplete]=\"auto\" matInput\n (input)=\"onLocationAutocomplete($event)\"/>\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayLocation\"\n (optionSelected)=\"onLocationChange($event)\">\n <mat-option *ngFor=\"let location of filteredLocations\" [value]=\"location\">\n {{ location.name }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div *ngIf=\"!dataPending && !locations.length\" class=\"mat-error\">\n Locations are not available\n </div>\n\n <ng-container *ngIf=\"prepareMigrationData?.newLocation?.id\">\n <mat-label class=\"mat-label\">Phone number</mat-label>\n <mat-radio-group class=\"radio-group\" name=\"moveTypePhoneNumber\"\n [(ngModel)]=\"prepareMigrationData.moveType.phoneNumber\" name=\"phoneNumber\"\n (change)=\"selectPhoneNumberMigrationType($event)\">\n <mat-radio-button\n class=\"radio-button\"\n value=\"1\"\n color=\"primary\">\n Keep current number\n {{ prepareMigrationData.primaryPhoneNumber || currentNumber }}\n </mat-radio-button>\n <mat-radio-button\n class=\"radio-button\"\n value=\"2\"\n color=\"primary\"\n [disabled]=\"!prepareMigrationData.newLocation?.id\">\n Select a new number\n </mat-radio-button>\n\n <div *ngIf=\"prepareMigrationData.moveType.phoneNumber === '2'\" class=\"select-container\">\n <mat-progress-spinner *ngIf=\"phoneNumberPending\" class=\"field-spinner\" mode=\"indeterminate\"\n [diameter]=\"30\"></mat-progress-spinner>\n\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\n <input placeholder=\"Select number\" [(ngModel)]=\"prepareMigrationData.newPhoneNumber\"\n [matAutocomplete]=\"autoPh\" matInput name=\"newPhoneNumber\"\n (input)=\"onNumberAutocomplete()\"/>\n <mat-autocomplete #autoPh=\"matAutocomplete\" (optionSelected)=\"onPhoneNumberChange($event)\">\n <mat-option *ngFor=\"let number of filteredPhoneNumbers\" [value]=\"number\">\n {{ number }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div *ngIf=\"!phoneNumberPending && !dnsService.phoneNumbers?.length\" class=\"mat-error\">\n Phone numbers are not available for this location\n </div>\n </div>\n <mat-radio-button\n class=\"radio-button\"\n value=\"3\"\n color=\"primary\"\n [disabled]=\"prepareMigrationData.removeExtension\">\n Remove number\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-label class=\"mat-label\">Extension</mat-label>\n <mat-radio-group class=\"radio-group\" name=\"moveTypeExtension\"\n (change)=\"selectExtensionMigrationType($event)\"\n [(ngModel)]=\"prepareMigrationData.moveType.extension\">\n <mat-radio-button\n class=\"radio-button\"\n value=\"1\"\n color=\"primary\">\n Keep current extension {{ prepareMigrationData.primaryExtension }}\n </mat-radio-button>\n <mat-radio-button\n class=\"radio-button\"\n value=\"2\"\n color=\"primary\">\n Select a new extension\n </mat-radio-button>\n\n <div *ngIf=\"prepareMigrationData.moveType.extension === '2'\" class=\"input-container\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n type=\"text\"\n name=\"newExtension\"\n (change)=\"onExtensionChange($event)\"\n [(ngModel)]=\"prepareMigrationData.newExtension\"\n [placeholder]=\"'Enter extension'\"\n />\n </mat-form-field>\n </div>\n\n <mat-radio-button\n class=\"radio-button\"\n value=\"3\"\n color=\"primary\"\n [disabled]=\"prepareMigrationData.removePhoneNumber\">Remove extension\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n </div>\n </form>\n\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-next\" matStepperNext\n [disabled]=\"isNextFromSelectLocationDisabled()\" (click)=\"goNextStep(stepper)\">\n Next\n </button>\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\n </div>\n </mat-step>\n <mat-step [aria-labelledby]=\"'disabled_af'\">\n <div class=\"step-title\">Step 2: Device eligibility check</div>\n <ng-template matStepLabel>Device eligibility check</ng-template>\n <div class=\"move-user-tab-content-box\">\n <app-devices-move-user-tab></app-devices-move-user-tab>\n </div>\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">\n Next\n </button>\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\n Previous\n </button>\n </div>\n </mat-step>\n <mat-step [aria-labelledby]=\"'disabled_af'\">\n <div class=\"step-title\">Step 3: Validation</div>\n <ng-template matStepLabel>Validation</ng-template>\n\n <div class=\"devices-move-user-box\">\n <mat-label class=\"mat-label\">Validation</mat-label>\n <div *ngIf=\"!prepareMigrationData.errors?.length\">\n <ng-container *ngTemplateOutlet=\"validationSuccess\">\n </ng-container>\n </div>\n <div *ngIf=\"prepareMigrationData.errors?.length\">\n <ng-container *ngTemplateOutlet=\"validationFailed\">\n </ng-container>\n </div>\n </div>\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext\n (click)=\"goNextStep(stepper)\"></button>\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-next\"\n [disabled]=\"prepareMigrationData.errors?.length > 0 || !prepareMigrationData.isConfirm\"\n (click)=\"startMigration()\">\n Move\n </button>\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\n Previous\n </button>\n </div>\n </mat-step>\n <mat-step>\n <div class=\"step-title\">Step 4: Result</div>\n <ng-template matStepLabel>Result</ng-template>\n\n <div class=\"devices-move-user-box\">\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\n <p class=\"validation-text\">\n The user will be moved to the new location {{prepareMigrationData?.newLocation?.name}}\n <br/>\n For the progress of move, please visit the\n <a class=\"form-link\" href=\"#\">user details</a>.\n </p>\n </div>\n\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">\n Done\n </button>\n </div>\n </mat-step>\n </mat-stepper>\n</div>\n\n<ng-template #validationSuccess>\n <p class=\"validation-text\">\n Validation has completed successfully. The user can be moved to the\n new location. Please be aware of the potential impact of the changes\n below.\n </p>\n <mat-label class=\"mat-label\">Expected changes</mat-label>\n <ul>\n <li>Cisco 6941 device (SEP987987987987) will not be migrated</li>\n <li>\n The user will be removed from the Call Pickup Group:\n 1675090334-Paris_pickup\n </li>\n <li>\n If Webex App is currently in use, the user will to sign in again to\n update the service.\n </li>\n </ul>\n <form>\n <mat-checkbox class=\"checkbox\" name=\"isConfirm\" [(ngModel)]=\"prepareMigrationData.isConfirm\"\n color=\"primary\">\n I confirm that I understand these conditions. I acknowledge the\n changes.\n </mat-checkbox>\n </form>\n\n</ng-template>\n\n<ng-template #validationFailed>\n <p class=\"validation-text\">\n Validation is failed. User migration is not available\n </p>\n <ul>\n <li *ngFor=\"let error of prepareMigrationData.errors\">{{ error }}</li>\n </ul>\n</ng-template>\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}::ng-deep .mat-form-field-infix{padding:0!important;width:100%}::ng-deep .mat-form-field-appearance-outline .mat-input-element{height:35px;width:100%;line-height:35px;margin:5px 0 0}::ng-deep .mat-form-field{width:350px}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}.devices-move-user-box{background-color:#fff;padding:2.5rem;padding:1rem 2.5rem;min-height:350px;border-radius:.5rem}.user-select-location-box{background-color:#fff;padding:2.5rem;height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative;width:100%;max-width:300px}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}.mat-error{margin:0 0 15px}mat-label{display:block}.btn-next{min-width:80px}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}.move-user-tab-content-box{background-color:#fff;min-height:350px;border-radius:.5rem;box-sizing:border-box;padding:25px}.input-container{display:flex;flex-direction:column;gap:1rem}.input-container input{height:-moz-fit-content!important;height:fit-content!important}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i12.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i14.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i14.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i14.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i14.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i15.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i16.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i16.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i17.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i18.DevicesMoveUserWizardTabComponent, selector: "app-devices-move-user-tab" }], encapsulation: i0.ViewEncapsulation.None });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, decorators: [{
173
- type: Component,
174
- args: [{ selector: 'app-move-user-stepper', encapsulation: ViewEncapsulation.None, template: "<app-loader *ngIf=\"prepareMigrationData.pending || moveUserPending || dataPending\"></app-loader>\n<div id=\"move-user-stepper\">\n <mat-stepper *ngIf=\"prepareMigrationData?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\n <mat-step>\n <div class=\"step-title\">Step 1: Select location</div>\n <!-- <form>-->\n <ng-template matStepLabel>Select location</ng-template>\n <form>\n <div class=\"move-user-tab-content-box\">\n <mat-label class=\"mat-label\">Select a new location</mat-label>\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\n <input placeholder=\"Select location\" [matAutocomplete]=\"auto\" matInput\n (input)=\"onLocationAutocomplete($event)\"/>\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayLocation\"\n (optionSelected)=\"onLocationChange($event)\">\n <mat-option *ngFor=\"let location of filteredLocations\" [value]=\"location\">\n {{ location.name }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div *ngIf=\"!dataPending && !locations.length\" class=\"mat-error\">\n Locations are not available\n </div>\n\n <ng-container *ngIf=\"prepareMigrationData?.newLocation?.id\">\n <mat-label class=\"mat-label\">Phone number</mat-label>\n <mat-radio-group class=\"radio-group\" name=\"moveTypePhoneNumber\"\n [(ngModel)]=\"prepareMigrationData.moveType.phoneNumber\" name=\"phoneNumber\"\n (change)=\"selectPhoneNumberMigrationType($event)\">\n <mat-radio-button\n class=\"radio-button\"\n value=\"1\"\n color=\"primary\">\n Keep current number\n {{ prepareMigrationData.primaryPhoneNumber || currentNumber }}\n </mat-radio-button>\n <mat-radio-button\n class=\"radio-button\"\n value=\"2\"\n color=\"primary\"\n [disabled]=\"!prepareMigrationData.newLocation?.id\">\n Select a new number\n </mat-radio-button>\n\n <div *ngIf=\"prepareMigrationData.moveType.phoneNumber === '2'\" class=\"select-container\">\n <mat-progress-spinner *ngIf=\"phoneNumberPending\" class=\"field-spinner\" mode=\"indeterminate\"\n [diameter]=\"30\"></mat-progress-spinner>\n\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\n <input placeholder=\"Select number\" [(ngModel)]=\"prepareMigrationData.newPhoneNumber\"\n [matAutocomplete]=\"autoPh\" matInput name=\"newPhoneNumber\"\n (input)=\"onNumberAutocomplete()\"/>\n <mat-autocomplete #autoPh=\"matAutocomplete\" (optionSelected)=\"onPhoneNumberChange($event)\">\n <mat-option *ngFor=\"let number of filteredPhoneNumbers\" [value]=\"number\">\n {{ number }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div *ngIf=\"!phoneNumberPending && !dnsService.phoneNumbers?.length\" class=\"mat-error\">\n Phone numbers are not available for this location\n </div>\n </div>\n <mat-radio-button\n class=\"radio-button\"\n value=\"3\"\n color=\"primary\"\n [disabled]=\"prepareMigrationData.removeExtension\">\n Remove number\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-label class=\"mat-label\">Extension</mat-label>\n <mat-radio-group class=\"radio-group\" name=\"moveTypeExtension\"\n (change)=\"selectExtensionMigrationType($event)\"\n [(ngModel)]=\"prepareMigrationData.moveType.extension\">\n <mat-radio-button\n class=\"radio-button\"\n value=\"1\"\n color=\"primary\">\n Keep current extension {{ prepareMigrationData.primaryExtension }}\n </mat-radio-button>\n <mat-radio-button\n class=\"radio-button\"\n value=\"2\"\n color=\"primary\">\n Select a new extension\n </mat-radio-button>\n\n <div *ngIf=\"prepareMigrationData.moveType.extension === '2'\" class=\"input-container\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n type=\"text\"\n name=\"newExtension\"\n (change)=\"onExtensionChange($event)\"\n [(ngModel)]=\"prepareMigrationData.newExtension\"\n [placeholder]=\"'Enter extension'\"\n />\n </mat-form-field>\n </div>\n\n <mat-radio-button\n class=\"radio-button\"\n value=\"3\"\n color=\"primary\"\n [disabled]=\"prepareMigrationData.removePhoneNumber\">Remove extension\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n </div>\n </form>\n\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-next\" matStepperNext\n [disabled]=\"isNextFromSelectLocationDisabled()\" (click)=\"goNextStep(stepper)\">\n Next\n </button>\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\n </div>\n </mat-step>\n <mat-step [aria-labelledby]=\"'disabled_af'\">\n <div class=\"step-title\">Step 2: Device eligibility check</div>\n <ng-template matStepLabel>Device eligibility check</ng-template>\n <div class=\"move-user-tab-content-box\">\n <app-devices-move-user-tab></app-devices-move-user-tab>\n </div>\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">\n Next\n </button>\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\n Previous\n </button>\n </div>\n </mat-step>\n <mat-step [aria-labelledby]=\"'disabled_af'\">\n <div class=\"step-title\">Step 3: Validation</div>\n <ng-template matStepLabel>Validation</ng-template>\n\n <div class=\"devices-move-user-box\">\n <mat-label class=\"mat-label\">Validation</mat-label>\n <div *ngIf=\"!prepareMigrationData.errors?.length\">\n <ng-container *ngTemplateOutlet=\"validationSuccess\">\n </ng-container>\n </div>\n <div *ngIf=\"prepareMigrationData.errors?.length\">\n <ng-container *ngTemplateOutlet=\"validationFailed\">\n </ng-container>\n </div>\n </div>\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext\n (click)=\"goNextStep(stepper)\"></button>\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-next\"\n [disabled]=\"prepareMigrationData.errors?.length > 0 || !prepareMigrationData.isConfirm\"\n (click)=\"startMigration()\">\n Move\n </button>\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\n Previous\n </button>\n </div>\n </mat-step>\n <mat-step>\n <div class=\"step-title\">Step 4: Result</div>\n <ng-template matStepLabel>Result</ng-template>\n\n <div class=\"devices-move-user-box\">\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\n <p class=\"validation-text\">\n The user will be moved to the new location {{prepareMigrationData?.newLocation?.name}}\n <br/>\n For the progress of move, please visit the\n <a class=\"form-link\" href=\"#\">user details</a>.\n </p>\n </div>\n\n <div class=\"step-actions\">\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">\n Done\n </button>\n </div>\n </mat-step>\n </mat-stepper>\n</div>\n\n<ng-template #validationSuccess>\n <p class=\"validation-text\">\n Validation has completed successfully. The user can be moved to the\n new location. Please be aware of the potential impact of the changes\n below.\n </p>\n <mat-label class=\"mat-label\">Expected changes</mat-label>\n <ul>\n <li>Cisco 6941 device (SEP987987987987) will not be migrated</li>\n <li>\n The user will be removed from the Call Pickup Group:\n 1675090334-Paris_pickup\n </li>\n <li>\n If Webex App is currently in use, the user will to sign in again to\n update the service.\n </li>\n </ul>\n <form>\n <mat-checkbox class=\"checkbox\" name=\"isConfirm\" [(ngModel)]=\"prepareMigrationData.isConfirm\"\n color=\"primary\">\n I confirm that I understand these conditions. I acknowledge the\n changes.\n </mat-checkbox>\n </form>\n\n</ng-template>\n\n<ng-template #validationFailed>\n <p class=\"validation-text\">\n Validation is failed. User migration is not available\n </p>\n <ul>\n <li *ngFor=\"let error of prepareMigrationData.errors\">{{ error }}</li>\n </ul>\n</ng-template>\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}::ng-deep .mat-form-field-infix{padding:0!important;width:100%}::ng-deep .mat-form-field-appearance-outline .mat-input-element{height:35px;width:100%;line-height:35px;margin:5px 0 0}::ng-deep .mat-form-field{width:350px}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}.devices-move-user-box{background-color:#fff;padding:2.5rem;padding:1rem 2.5rem;min-height:350px;border-radius:.5rem}.user-select-location-box{background-color:#fff;padding:2.5rem;height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative;width:100%;max-width:300px}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}.mat-error{margin:0 0 15px}mat-label{display:block}.btn-next{min-width:80px}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}.move-user-tab-content-box{background-color:#fff;min-height:350px;border-radius:.5rem;box-sizing:border-box;padding:25px}.input-container{display:flex;flex-direction:column;gap:1rem}.input-container input{height:-moz-fit-content!important;height:fit-content!important}\n"] }]
175
- }], ctorParameters: function () { return [{ type: i1.DnsService }, { type: i2.UserService }, { type: i3.SiteSettingsService }, { type: i4.NotificationService }, { type: i5.MoveUserService }]; }, propDecorators: { nextAfterMoveBtn: [{
176
- type: ViewChild,
177
- args: ['nextAfterMoveBtn']
178
- }], done: [{
179
- type: Output
180
- }], user: [{
181
- type: Input
182
- }], customerId: [{
183
- type: Input
184
- }], runMoveUser: [{
185
- type: Output
186
- }], cancel: [{
187
- type: Output
188
- }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPN0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJcEcsZ0JBQWdCO0FBQ2hCLE1BQU0sUUFBUSxHQUFHLG9GQUFvRixDQUFDO0FBUXRHLE1BQU0sT0FBTyx3QkFBd0I7SUFtQm5DLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FB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T0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDMUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFFSCxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztzSEF0TFUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsZ1RDckJyQyxzZ1RBOE5BOzRGRHpNYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJOzZOQUdOLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRTdCLElBQUk7c0JBREgsTUFBTTtnQkFHUCxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0U3RlcHBlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyXCI7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBMb2NhdGlvbiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYXBwLWxvY2F0aW9uJztcbmltcG9ydCB7IFNpdGVTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaXRlLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbW1vbi1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTWlncmF0aW9uRGF0YSwgUHJlcGFyZU1pZ3JhdGlvbkJvZHksIFByZXBhcmVNaWdyYXRpb25EYXRhIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9tb3ZlLXVzZXInO1xuaW1wb3J0IHsgTW92ZVVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW92ZS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuLy8gZm9yIHRlc3Qgb25seVxuY29uc3QgTE9DQVRJT04gPSAnWTJselkyOXpjR0Z5YXpvdkwzVnpMMHhQUTBGVVNVOU9MekUyWWpZME5qbGpMVEJqWm1RdE5ESmpNUzFpT1dKakxUVXlOMkZsWlROaE4yUmxPUSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tb3ZlLXVzZXItc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3ZlLXVzZXItc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vdmUtdXNlci1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTW92ZVVzZXJTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnbmV4dEFmdGVyTW92ZUJ0bicpIG5leHRBZnRlck1vdmVCdG46IGFueTtcbiAgQE91dHB1dCgpXG4gIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpXG4gIHVzZXI6IGFueTtcbiAgQElucHV0KClcbiAgY3VzdG9tZXJJZCE6IG51bWJlcjtcbiAgQE91dHB1dCgpXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBpc0xpbmVhciA9IGZhbHNlO1xuICBwaG9uZU51bWJlclBlbmRpbmcgPSBmYWxzZTtcbiAgc3RlcHBlciE6IE1hdFN0ZXBwZXI7XG4gIGZpbHRlcmVkTG9jYXRpb25zOiBBcHBMb2NhdGlvbltdID0gW107XG4gIGZpbHRlcmVkUGhvbmVOdW1iZXJzOiBhbnk7XG4gIGRhdGFQZW5kaW5nID0gZmFsc2U7XG5cbiAgZ2V0IG1vdmVVc2VyUGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5tb3ZlVXNlclBlbmRpbmc7XG4gIH1cblxuICBnZXQgY3VycmVudE51bWJlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnVzZXI/LmRldmljZXM/Lmxlbmd0aCAmJiB0aGlzLnVzZXIuZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdKSB7XG4gICAgICByZXR1cm4gdGhpcy51c2VyLmRldmljZXNbMF0ubGluZUFzc29jaWF0aW9uc1swXS5kaXJlY3RvcnlOdW1iZXIuZGlyZWN0b3J5TnVtYmVyO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgbG9jYXRpb25zKCk6IEFwcExvY2F0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UubG9jYXRpb25zO1xuICB9XG5cbiAgZ2V0IHByZXBhcmVNaWdyYXRpb25EYXRhKCk6IFByZXBhcmVNaWdyYXRpb25EYXRhIHtcbiAgICByZXR1cm4gdGhpcy5tb3ZlVXNlclNlcnZpY2UucHJlcGFyZU1pZ3JhdGlvbkRhdGE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZG5zU2VydmljZTogRG5zU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzaXRlU2V0dGluZ3NTZXJ2aWNlOiBTaXRlU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgbW92ZVVzZXJTZXJ2aWNlOiBNb3ZlVXNlclNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1vdmVVc2VyU2VydmljZS5wcmVwYXJlTWlncmF0aW9uRGF0YSA9IG5ldyBQcmVwYXJlTWlncmF0aW9uRGF0YSgpO1xuICAgIHRoaXMuZ2V0RGF0YSgpO1xuICB9XG5cbiAgZGlzcGxheUxvY2F0aW9uKGxvY2F0aW9uPzogQXBwTG9jYXRpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBsb2NhdGlvbj8ubmFtZSB8fCAnJztcbiAgfVxuXG4gIG9uTG9jYXRpb25BdXRvY29tcGxldGUoZXZlbnQ6IElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG5cbiAgICBpZiAodGhpcy5sb2NhdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5maWx0ZXJlZExvY2F0aW9ucyA9IGZpbHRlck9wdGlvbnModGhpcy5sb2NhdGlvbnMsIHZhbHVlIHx8ICcnLCAnJywgJ25hbWUnKTtcbiAgICB9XG4gIH1cblxuICBvbk51bWJlckF1dG9jb21wbGV0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kbnNTZXJ2aWNlLnBob25lTnVtYmVycz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkUGhvbmVOdW1iZXJzID0gZmlsdGVyT3B0aW9ucyh0aGlzLmRuc1NlcnZpY2UucGhvbmVOdW1iZXJzLCB0aGlzLnByZXBhcmVNaWdyYXRpb25EYXRhLm5ld1Bob25lTnVtYmVyKTtcbiAgICB9XG4gIH1cblxuICBvbk1vdmVVc2VyKHN0ZXBwZXI6IE1hdFN0ZXBwZXIpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBwZXIgPSBzdGVwcGVyO1xuICAgIHRoaXMucnVuTW92ZVVzZXIuZW1pdCgpO1xuICB9XG5cbiAgb25TdGVwQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIHNlbGVjdFBob25lTnVtYmVyTWlncmF0aW9uVHlwZShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnZhbHVlICYmIGV2ZW50LnZhbHVlID09PSAnMicpIHtcbiAgICAgIHRoaXMuZ2V0UGhvbmVOdW1iZXJzKCk7XG4gICAgfVxuICAgIHRoaXMubW92ZVVzZXJTZXJ2aWNlLnByZXBhcmVNaWdyYXRpb25EYXRhLnJlbW92ZVBob25lTnVtYmVyID0gZXZlbnQudmFsdWUgJiYgZXZlbnQudmFsdWUgPT09ICczJztcbiAgfVxuXG4gIHNlbGVjdEV4dGVuc2lvbk1pZ3JhdGlvblR5cGUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubW92ZVVzZXJTZXJ2aWNlLnByZXBhcmVNaWdyYXRpb25EYXRhLnJlbW92ZUV4dGVuc2lvbiA9IGV2ZW50LnZhbHVlICYmIGV2ZW50LnZhbHVlID09PSAnMyc7XG4gIH1cblxuICBvblBob25lTnVtYmVyQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnbmV3IHBob25lIG51bWJlciA9ICcsIHRoaXMucHJlcGFyZU1pZ3JhdGlvbkRhdGEubmV3UGhvbmVOdW1iZXIpO1xuICB9XG5cbiAgb25Mb2NhdGlvbkNoYW5nZShldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMubW92ZVVzZXJTZXJ2aWNlLnByZXBhcmVNaWdyYXRpb25EYXRhLm5ld0xvY2F0aW9uID0gZXZlbnQub3B0aW9uLnZhbHVlO1xuICAgIHRoaXMubW92ZVVzZXJTZXJ2aWNlLnJlc2V0TWlncmF0aW9uRGF0YUZvck5ld0xvY2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5wcmVwYXJlTWlncmF0aW9uRGF0YS5tb3ZlVHlwZS5waG9uZU51bWJlciA9PT0gJzInKSB7XG4gICAgICB0aGlzLmdldFBob25lTnVtYmVycygpO1xuICAgIH1cbiAgICB0aGlzLmdldFByZXBhcmVVc2VyRGF0YSgpO1xuICB9XG5cbiAgb25FeHRlbnNpb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCduZXcgbmV3RXh0ZW5zaW9uID0gJywgdGhpcy5wcmVwYXJlTWlncmF0aW9uRGF0YS5uZXdFeHRlbnNpb24pO1xuICB9XG5cbiAgZ2V0UGhvbmVOdW1iZXJzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmVwYXJlTWlncmF0aW9uRGF0YS5uZXdMb2NhdGlvbj8uaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZG5zU2VydmljZS5mZXRjaFBob25lTnVtYmVycyh0aGlzLmN1c3RvbWVySWQsIHRoaXMucHJlcGFyZU1pZ3JhdGlvbkRhdGEubmV3TG9jYXRpb24uaWQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZFBob25lTnVtYmVycyA9IHRoaXMuZG5zU2VydmljZS5waG9uZU51bWJlcnMuc2xpY2UoKTtcbiAgICAgIH0sICgpID0+IHRoaXMucGhvbmVOdW1iZXJQZW5kaW5nID0gZmFsc2UpO1xuICB9XG5cbiAgaXNOZXh0RnJvbVNlbGVjdExvY2F0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnByZXBhcmVNaWdyYXRpb25EYXRhPy5uZXdMb2NhdGlvbj8uaWQgfHwgIXRoaXMucHJlcGFyZU1pZ3JhdGlvbkRhdGEuZW50aXR5SWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcmVwYXJlTWlncmF0aW9uRGF0YS5tb3ZlVHlwZS5waG9uZU51bWJlciA9PT0gJzInICYmICF0aGlzLnByZXBhcmVNaWdyYXRpb25EYXRhLm5ld1Bob25lTnVtYmVyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJlcGFyZU1pZ3JhdGlvbkRhdGEubW92ZVR5cGUuZXh0ZW5zaW9uID09PSAnMicgJiYgIXRoaXMucHJlcGFyZU1pZ3JhdGlvbkRhdGEubmV3RXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ29OZXh0U3RlcChzdGVwcGVyOiBNYXRTdGVwcGVyKSB7XG5cbiAgfVxuXG4gIHN0YXJ0TWlncmF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IG1pZ3JhdGlvbkRhdGEgPSBuZXcgTWlncmF0aW9uRGF0YSh0aGlzLnByZXBhcmVNaWdyYXRpb25EYXRhKTtcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm1vdmVVc2VyU2VydmljZS5zdGFydE1pZ3JhdGlvbihtaWdyYXRpb25EYXRhKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5uZXh0QWZ0ZXJNb3ZlQnRuPy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgIHRoaXMubmV4dEFmdGVyTW92ZUJ0bi5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlO1xuICAgICAgfSlcbiAgfVxuXG4gIGdldERhdGEoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XG4gICAgdGhpcy5zaXRlU2V0dGluZ3NTZXJ2aWNlLmdldExvY2F0aW9ucyh0aGlzLmN1c3RvbWVySWQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkTG9jYXRpb25zID0gdGhpcy5sb2NhdGlvbnMuc2xpY2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XG4gICAgICB9LCAoKSA9PiB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2UpXG4gIH1cblxuICBwcml2YXRlIGdldFByZXBhcmVVc2VyRGF0YSgpIHtcbiAgICBpZiAodGhpcy5wcmVwYXJlTWlncmF0aW9uRGF0YT8ubmV3TG9jYXRpb24/LmlkKSB7XG4gICAgICB0aGlzLm1vdmVVc2VyU2VydmljZS5zZXRPcmlnaW5QcmVwYXJlTWlncmF0aW9uRGF0YSgpO1xuICAgICAgY29uc3QgcHJlcGFyZU1pZ3JhdGlvbkJvZHkgPSBuZXcgUHJlcGFyZU1pZ3JhdGlvbkJvZHkodGhpcy51c2VyLCB0aGlzLmN1c3RvbWVySWQsIHRoaXMucHJlcGFyZU1pZ3JhdGlvbkRhdGEubmV3TG9jYXRpb24uaWQpO1xuICAgICAgdGhpcy5tb3ZlVXNlclNlcnZpY2UucHJlcGFyZU1pZ3JhdGlvbkRhdGEucGVuZGluZyA9IHRydWU7XG4gICAgICB0aGlzLm1vdmVVc2VyU2VydmljZS5mZXRjaFByZXBhcmVNaWdyYXRpb25EYXRhKHByZXBhcmVNaWdyYXRpb25Cb2R5KVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tb3ZlVXNlclNlcnZpY2UucHJlcGFyZU1pZ3JhdGlvbkRhdGEucGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcignTW92ZSB1c2VyIGF0dGVtcHQgaXMgZmFpbGVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSByZXNldE1vdmVUeXBlUGhvbmVOVW1iZXIoKTogdm9pZCB7XG4gICAgdGhpcy5kbnNTZXJ2aWNlLnBob25lTnVtYmVycyA9IFtdO1xuICB9XG5cbn1cbiIsIjxhcHAtbG9hZGVyICpuZ0lmPVwicHJlcGFyZU1pZ3JhdGlvbkRhdGEucGVuZGluZyB8fCBtb3ZlVXNlclBlbmRpbmcgfHwgZGF0YVBlbmRpbmdcIj48L2FwcC1sb2FkZXI+XG48ZGl2IGlkPVwibW92ZS11c2VyLXN0ZXBwZXJcIj5cbiAgPG1hdC1zdGVwcGVyICpuZ0lmPVwicHJlcGFyZU1pZ3JhdGlvbkRhdGE/Lm1vdmVUeXBlXCIgW2xpbmVhcl09XCJpc0xpbmVhclwiIGxhYmVsUG9zaXRpb249XCJib3R0b21cIiAjc3RlcHBlcj5cbiAgICA8bWF0LXN0ZXA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMTogU2VsZWN0IGxvY2F0aW9uPC9kaXY+XG4gICAgICA8IS0tICAgICAgPGZvcm0+LS0+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlNlbGVjdCBsb2NhdGlvbjwvbmctdGVtcGxhdGU+XG4gICAgICA8Zm9ybT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+U2VsZWN0IGEgbmV3IGxvY2F0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYXBwLWF1dG9jb21wbGV0ZS1pbnB1dFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9XCJTZWxlY3QgbG9jYXRpb25cIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbkxvY2F0aW9uQXV0b2NvbXBsZXRlKCRldmVudClcIi8+XG4gICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5TG9jYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uTG9jYXRpb25DaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbG9jYXRpb24gb2YgZmlsdGVyZWRMb2NhdGlvbnNcIiBbdmFsdWVdPVwibG9jYXRpb25cIj5cbiAgICAgICAgICAgICAgICB7eyBsb2NhdGlvbi5uYW1lIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZGF0YVBlbmRpbmcgJiYgIWxvY2F0aW9ucy5sZW5ndGhcIiBjbGFzcz1cIm1hdC1lcnJvclwiPlxuICAgICAgICAgICAgTG9jYXRpb25zIGFyZSBub3QgYXZhaWxhYmxlXG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJlcGFyZU1pZ3JhdGlvbkRhdGE/Lm5ld0xvY2F0aW9uPy5pZFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cIm1hdC1sYWJlbFwiPlBob25lIG51bWJlcjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInJhZGlvLWdyb3VwXCIgbmFtZT1cIm1vdmVUeXBlUGhvbmVOdW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInByZXBhcmVNaWdyYXRpb25EYXRhLm1vdmVUeXBlLnBob25lTnVtYmVyXCIgbmFtZT1cInBob25lTnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RQaG9uZU51bWJlck1pZ3JhdGlvblR5cGUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmFkaW8tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgIEtlZXAgY3VycmVudCBudW1iZXJcbiAgICAgICAgICAgICAgICB7eyBwcmVwYXJlTWlncmF0aW9uRGF0YS5wcmltYXJ5UGhvbmVOdW1iZXIgfHwgY3VycmVudE51bWJlciB9fVxuICAgICAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyYWRpby1idXR0b25cIlxuICAgICAgICAgICAgICAgIHZhbHVlPVwiMlwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByZXBhcmVNaWdyYXRpb25EYXRhLm5ld0xvY2F0aW9uPy5pZFwiPlxuICAgICAgICAgICAgICAgIFNlbGVjdCBhIG5ldyBudW1iZXJcbiAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5tb3ZlVHlwZS5waG9uZU51bWJlciA9PT0gJzInXCIgY2xhc3M9XCJzZWxlY3QtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwicGhvbmVOdW1iZXJQZW5kaW5nXCIgY2xhc3M9XCJmaWVsZC1zcGlubmVyXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlhbWV0ZXJdPVwiMzBcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYXBwLWF1dG9jb21wbGV0ZS1pbnB1dFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9XCJTZWxlY3QgbnVtYmVyXCIgWyhuZ01vZGVsKV09XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5uZXdQaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvUGhcIiBtYXRJbnB1dCBuYW1lPVwibmV3UGhvbmVOdW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbk51bWJlckF1dG9jb21wbGV0ZSgpXCIvPlxuICAgICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG9QaD1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJvblBob25lTnVtYmVyQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG51bWJlciBvZiBmaWx0ZXJlZFBob25lTnVtYmVyc1wiIFt2YWx1ZV09XCJudW1iZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBudW1iZXIgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFwaG9uZU51bWJlclBlbmRpbmcgJiYgIWRuc1NlcnZpY2UucGhvbmVOdW1iZXJzPy5sZW5ndGhcIiBjbGFzcz1cIm1hdC1lcnJvclwiPlxuICAgICAgICAgICAgICAgICAgUGhvbmUgbnVtYmVycyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhdGlvblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJhZGlvLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdmFsdWU9XCIzXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5yZW1vdmVFeHRlbnNpb25cIj5cbiAgICAgICAgICAgICAgICBSZW1vdmUgbnVtYmVyXG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuXG4gICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+RXh0ZW5zaW9uPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwicmFkaW8tZ3JvdXBcIiBuYW1lPVwibW92ZVR5cGVFeHRlbnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEV4dGVuc2lvbk1pZ3JhdGlvblR5cGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJlcGFyZU1pZ3JhdGlvbkRhdGEubW92ZVR5cGUuZXh0ZW5zaW9uXCI+XG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyYWRpby1idXR0b25cIlxuICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgS2VlcCBjdXJyZW50IGV4dGVuc2lvbiB7eyBwcmVwYXJlTWlncmF0aW9uRGF0YS5wcmltYXJ5RXh0ZW5zaW9uIH19XG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJhZGlvLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdmFsdWU9XCIyXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICBTZWxlY3QgYSBuZXcgZXh0ZW5zaW9uXG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cblxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJlcGFyZU1pZ3JhdGlvbkRhdGEubW92ZVR5cGUuZXh0ZW5zaW9uID09PSAnMidcIiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm5ld0V4dGVuc2lvblwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25FeHRlbnNpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJlcGFyZU1pZ3JhdGlvbkRhdGEubmV3RXh0ZW5zaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidFbnRlciBleHRlbnNpb24nXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJhZGlvLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdmFsdWU9XCIzXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5yZW1vdmVQaG9uZU51bWJlclwiPlJlbW92ZSBleHRlbnNpb25cbiAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcC1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0XG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTmV4dEZyb21TZWxlY3RMb2NhdGlvbkRpc2FibGVkKClcIiAoY2xpY2spPVwiZ29OZXh0U3RlcChzdGVwcGVyKVwiPlxuICAgICAgICAgIE5leHRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tY2FuY2VsXCIgKGNsaWNrKT1cImNhbmNlbC5lbWl0KClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXN0ZXA+XG4gICAgPG1hdC1zdGVwIFthcmlhLWxhYmVsbGVkYnldPVwiJ2Rpc2FibGVkX2FmJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtdGl0bGVcIj5TdGVwIDI6IERldmljZSBlbGlnaWJpbGl0eSBjaGVjazwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5EZXZpY2UgZWxpZ2liaWxpdHkgY2hlY2s8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cbiAgICAgICAgPGFwcC1kZXZpY2VzLW1vdmUtdXNlci10YWI+PC9hcHAtZGV2aWNlcy1tb3ZlLXVzZXItdGFiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RlcC1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0IChjbGljayk9XCJnb05leHRTdGVwKHN0ZXBwZXIpXCI+XG4gICAgICAgICAgTmV4dFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwid2ViZXgtYnRuIGJ0bi1jYW5jZWxcIiBtYXRTdGVwcGVyUHJldmlvdXM+XG4gICAgICAgICAgUHJldmlvdXNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1zdGVwPlxuICAgIDxtYXQtc3RlcCBbYXJpYS1sYWJlbGxlZGJ5XT1cIidkaXNhYmxlZF9hZidcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlXCI+U3RlcCAzOiBWYWxpZGF0aW9uPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlZhbGlkYXRpb248L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlcy1tb3ZlLXVzZXItYm94XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtYXQtbGFiZWxcIj5WYWxpZGF0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhcHJlcGFyZU1pZ3JhdGlvbkRhdGEuZXJyb3JzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsaWRhdGlvblN1Y2Nlc3NcIj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5lcnJvcnM/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2YWxpZGF0aW9uRmFpbGVkXCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uICNuZXh0QWZ0ZXJNb3ZlQnRuIG1hdC1idXR0b24gY2xhc3M9XCJpbnZpc2libGUtbmV4dC1idG5cIiBtYXRTdGVwcGVyTmV4dFxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0U3RlcChzdGVwcGVyKVwiPjwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLW5leHRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5lcnJvcnM/Lmxlbmd0aCA+IDAgfHwgIXByZXBhcmVNaWdyYXRpb25EYXRhLmlzQ29uZmlybVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0TWlncmF0aW9uKClcIj5cbiAgICAgICAgICBNb3ZlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIG1hdFN0ZXBwZXJQcmV2aW91cz5cbiAgICAgICAgICBQcmV2aW91c1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXN0ZXA+XG4gICAgPG1hdC1zdGVwPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtdGl0bGVcIj5TdGVwIDQ6IFJlc3VsdDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5SZXN1bHQ8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlcy1tb3ZlLXVzZXItYm94XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtYXQtbGFiZWxcIj5Nb3ZpbmcgdXNlciBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5pdGlhdGVkITwvbWF0LWxhYmVsPlxuICAgICAgICA8cCBjbGFzcz1cInZhbGlkYXRpb24tdGV4dFwiPlxuICAgICAgICAgIFRoZSB1c2VyIHdpbGwgYmUgbW92ZWQgdG8gdGhlIG5ldyBsb2NhdGlvbiB7e3ByZXBhcmVNaWdyYXRpb25EYXRhPy5uZXdMb2NhdGlvbj8ubmFtZX19XG4gICAgICAgICAgPGJyLz5cbiAgICAgICAgICBGb3IgdGhlIHByb2dyZXNzIG9mIG1vdmUsIHBsZWFzZSB2aXNpdCB0aGVcbiAgICAgICAgICA8YSBjbGFzcz1cImZvcm0tbGlua1wiIGhyZWY9XCIjXCI+dXNlciBkZXRhaWxzPC9hPi5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwid2ViZXgtYnRuIGJ0bi1kb25lXCIgKGNsaWNrKT1cImRvbmUuZW1pdCh0cnVlKVwiPlxuICAgICAgICAgIERvbmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1zdGVwPlxuICA8L21hdC1zdGVwcGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdmFsaWRhdGlvblN1Y2Nlc3M+XG4gIDxwIGNsYXNzPVwidmFsaWRhdGlvbi10ZXh0XCI+XG4gICAgVmFsaWRhdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4gVGhlIHVzZXIgY2FuIGJlIG1vdmVkIHRvIHRoZVxuICAgIG5ldyBsb2NhdGlvbi4gUGxlYXNlIGJlIGF3YXJlIG9mIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBjaGFuZ2VzXG4gICAgYmVsb3cuXG4gIDwvcD5cbiAgPG1hdC1sYWJlbCBjbGFzcz1cIm1hdC1sYWJlbFwiPkV4cGVjdGVkIGNoYW5nZXM8L21hdC1sYWJlbD5cbiAgPHVsPlxuICAgIDxsaT5DaXNjbyA2OTQxIGRldmljZSAoU0VQOTg3OTg3OTg3OTg3KSB3aWxsIG5vdCBiZSBtaWdyYXRlZDwvbGk+XG4gICAgPGxpPlxuICAgICAgVGhlIHVzZXIgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIENhbGwgUGlja3VwIEdyb3VwOlxuICAgICAgMTY3NTA5MDMzNC1QYXJpc19waWNrdXBcbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIElmIFdlYmV4IEFwcCBpcyBjdXJyZW50bHkgaW4gdXNlLCB0aGUgdXNlciB3aWxsIHRvIHNpZ24gaW4gYWdhaW4gdG9cbiAgICAgIHVwZGF0ZSB0aGUgc2VydmljZS5cbiAgICA8L2xpPlxuICA8L3VsPlxuICA8Zm9ybT5cbiAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiY2hlY2tib3hcIiBuYW1lPVwiaXNDb25maXJtXCIgWyhuZ01vZGVsKV09XCJwcmVwYXJlTWlncmF0aW9uRGF0YS5pc0NvbmZpcm1cIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICBJIGNvbmZpcm0gdGhhdCBJIHVuZGVyc3RhbmQgdGhlc2UgY29uZGl0aW9ucy4gSSBhY2tub3dsZWRnZSB0aGVcbiAgICAgIGNoYW5nZXMuXG4gICAgPC9tYXQtY2hlY2tib3g+XG4gIDwvZm9ybT5cblxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN2YWxpZGF0aW9uRmFpbGVkPlxuICA8cCBjbGFzcz1cInZhbGlkYXRpb24tdGV4dFwiPlxuICAgIFZhbGlkYXRpb24gaXMgZmFpbGVkLiBVc2VyIG1pZ3JhdGlvbiBpcyBub3QgYXZhaWxhYmxlXG4gIDwvcD5cbiAgPHVsPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgcHJlcGFyZU1pZ3JhdGlvbkRhdGEuZXJyb3JzXCI+e3sgZXJyb3IgfX08L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../services/dns.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../utils/app-loader/app-loader";
6
- import * as i4 from "./move-user-stepper/move-user-stepper.component";
7
- export class MoveUserWizardComponent {
8
- constructor(dnsService) {
9
- this.dnsService = dnsService;
10
- this.closeMoveUserWizard = new EventEmitter();
11
- this.done = new EventEmitter();
12
- this.runMoveUser = new EventEmitter();
13
- this.dataPending = false;
14
- }
15
- onClose() {
16
- this.closeMoveUserWizard.emit();
17
- }
18
- onRunMoveUser() {
19
- this.runMoveUser.emit();
20
- }
21
- }
22
- MoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, deps: [{ token: i1.DnsService }], target: i0.ɵɵFactoryTarget.Component });
23
- MoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: { user: "user", customerId: "customerId" }, outputs: { closeMoveUserWizard: "closeMoveUserWizard", done: "done", runMoveUser: "runMoveUser" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\n<div class=\"move-user-stepper-container\">\n <header class=\"move-user-header\">\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\n <div class=\"move-user-header__close\">\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\n </div>\n </header>\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\n</div>\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%3C%2Fsvg%3E\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\")}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i4.MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: ["user", "customerId"], outputs: ["done", "runMoveUser", "cancel"] }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, decorators: [{
25
- type: Component,
26
- args: [{ selector: 'app-move-user-wizard', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\n<div class=\"move-user-stepper-container\">\n <header class=\"move-user-header\">\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\n <div class=\"move-user-header__close\">\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\n </div>\n </header>\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\n</div>\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%3C%2Fsvg%3E\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\")}\n"] }]
27
- }], ctorParameters: function () { return [{ type: i1.DnsService }]; }, propDecorators: { user: [{
28
- type: Input
29
- }], customerId: [{
30
- type: Input
31
- }], closeMoveUserWizard: [{
32
- type: Output
33
- }], done: [{
34
- type: Output
35
- }], runMoveUser: [{
36
- type: Output
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvbW92ZS11c2VyLXdpemFyZC9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9tb3ZlLXVzZXItd2l6YXJkL21vdmUtdXNlci13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFhaEMsWUFDUyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUmpDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBTWxCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOztxSEF6QlEsdUJBQXVCO3lHQUF2Qix1QkFBdUIsbU5DVHBDLDRuQkFZQTs0RkRIYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksc0JBQXNCO2lHQU1sQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFHUCxJQUFJO3NCQURILE1BQU07Z0JBR1AsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRG5zU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Rucy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1tb3ZlLXVzZXItd2l6YXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1vdmVVc2VyV2l6YXJkQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdXNlcjogYW55O1xuICBASW5wdXQoKVxuICBjdXN0b21lcklkITogbnVtYmVyO1xuICBAT3V0cHV0KClcbiAgY2xvc2VNb3ZlVXNlcldpemFyZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBydW5Nb3ZlVXNlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgZGF0YVBlbmRpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcbiAgICApIHtcblxuICAgIH1cblxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICB0aGlzLmNsb3NlTW92ZVVzZXJXaXphcmQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uUnVuTW92ZVVzZXIoKTogdm9pZCB7XG4gICAgICB0aGlzLnJ1bk1vdmVVc2VyLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8YXBwLWxvYWRlciAqbmdJZj1cImRhdGFQZW5kaW5nXCI+PC9hcHAtbG9hZGVyPlxuPGRpdiBjbGFzcz1cIm1vdmUtdXNlci1zdGVwcGVyLWNvbnRhaW5lclwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyX190aXRsZVwiPk1vdmUgVXNlciB7e3VzZXIudXNlcmlkfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci1oZWFkZXJfX2Nsb3NlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtaWNvbiBpY29uLXdoaXRlLWNsb3NlXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gICAgPGFwcC1tb3ZlLXVzZXItc3RlcHBlciAqbmdJZj1cInVzZXJcIiBbY3VzdG9tZXJJZF09XCJjdXN0b21lcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyXT1cInVzZXJcIiAoY2FuY2VsKT1cIm9uQ2xvc2UoKVwiIChkb25lKT1cImRvbmUuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChydW5Nb3ZlVXNlcik9XCJvblJ1bk1vdmVVc2VyKClcIj48L2FwcC1tb3ZlLXVzZXItc3RlcHBlcj5cbjwvZGl2PlxuIl19
@@ -1,18 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { APIService } from './api.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class ApiWebexService extends APIService {
6
- constructor(httpClient) {
7
- super(httpClient);
8
- //this.apiUrl = window.location.protocol + "//"+ window.location.hostname + environment.apiAuthUrl;
9
- this.apiUrl = 'https://webex.car-west.net/webex';
10
- // this.apiUrl = 'https://staging.tuki.io/webex';
11
- }
12
- }
13
- ApiWebexService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
14
- ApiWebexService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, decorators: [{
16
- type: Injectable
17
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXdlYmV4LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvYXBpLXdlYmV4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUM3QyxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixtR0FBbUc7UUFDbkcsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQ0FBa0MsQ0FBQztRQUNqRCxpREFBaUQ7SUFDbkQsQ0FBQzs7NkdBTlUsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcGlXZWJleFNlcnZpY2UgZXh0ZW5kcyBBUElTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoaHR0cENsaWVudDogSHR0cENsaWVudCkge1xuICAgIHN1cGVyKGh0dHBDbGllbnQpO1xuICAgIC8vdGhpcy5hcGlVcmwgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIrIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArIGVudmlyb25tZW50LmFwaUF1dGhVcmw7XG4gICAgdGhpcy5hcGlVcmwgPSAnaHR0cHM6Ly93ZWJleC5jYXItd2VzdC5uZXQvd2ViZXgnO1xuICAgIC8vIHRoaXMuYXBpVXJsID0gJ2h0dHBzOi8vc3RhZ2luZy50dWtpLmlvL3dlYmV4JztcbiAgfVxufVxuIl19
@@ -1,78 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class APIService {
6
- constructor(httpClient) {
7
- this.httpClient = httpClient;
8
- this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
9
- }
10
- fetch(url, params = {}, cache) {
11
- const headers = this.getHeaders(cache);
12
- return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
13
- }
14
- post(url, body, params = {}) {
15
- body = body || null;
16
- const headers = this.getHeaders();
17
- return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
18
- }
19
- // use when response extended data is necessary:
20
- postExtended(url, body = null, params = {}, headers = {}) {
21
- headers = headers || this.getHeaders();
22
- return this.httpClient.post(this.apiUrl + url, body, {
23
- headers,
24
- observe: 'response',
25
- params: this.prepareEncodedParams(params)
26
- });
27
- }
28
- put(url, body = null, params = {}) {
29
- const headers = this.getHeaders();
30
- return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
31
- }
32
- delete(url, params = {}) {
33
- const headers = this.getHeaders();
34
- return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
35
- }
36
- fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
37
- const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
38
- const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
39
- return this.fetch(url, params, cache);
40
- }
41
- prepareEncodedParams(params) {
42
- const result = {};
43
- if (!params) {
44
- return {};
45
- }
46
- for (const key of Object.keys(params)) {
47
- if (params[key]) {
48
- const stringParam = params[key].toString();
49
- result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
50
- }
51
- }
52
- return result;
53
- }
54
- getHeaders(cache) {
55
- let headers = new HttpHeaders();
56
- if (cache) {
57
- headers = headers.append('_Cache', 'true ');
58
- }
59
- const token = this.token || this.getParameterByName('token');
60
- headers = headers.append('Authorization', 'Bearer ' + token);
61
- return headers;
62
- }
63
- getParameterByName(name, url = window.location.href) {
64
- name = name.replace(/[\[\]]/g, '\\$&');
65
- var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
66
- if (!results)
67
- return null;
68
- if (!results[2])
69
- return '';
70
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
71
- }
72
- }
73
- APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
74
- APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
76
- type: Injectable
77
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU8vRCxNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKaEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFNN0UsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFXLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxLQUFlO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDdEMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFF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QUssRUFBRTtZQUNULE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3QztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQzlELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLG1CQUFtQixDQUFDLEVBQ3pELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7d0dBL0VVLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUYWJsZURhdGFJbnRlcmZhY2UgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLWRhdGEnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFQSVNlcnZpY2Uge1xuXG4gIGFwaVVybCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAnL2RjcCc7XG5cbiAgcHVibGljIHRva2VuOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudFxuICApIHtcbiAgfVxuXG4gIGZldGNoKHVybDogc3RyaW5nLCBwYXJhbXMgPSB7fSwgY2FjaGU/OiBib29sZWFuKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycyhjYWNoZSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5hcGlVcmwgKyB1cmwsIHtwYXJhbXM6IHRoaXMucHJlcGFyZUVuY29kZWRQYXJhbXMocGFyYW1zKSwgaGVhZGVyc30pO1xuICB9XG5cbiAgcG9zdCh1cmw6IHN0cmluZywgYm9keTogYW55LCBwYXJhbXMgPSB7fSk6IGFueSB7XG4gICAgYm9keSA9IGJvZHkgfHwgbnVsbDtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuYXBpVXJsICsgdXJsLCBib2R5LCB7cGFyYW1zOiB0aGlzLnByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtcyksIGhlYWRlcnN9KTtcbiAgfVxuXG4gIC8vIHVzZSB3aGVuIHJlc3BvbnNlIGV4dGVuZGVkIGRhdGEgaXMgbmVjZXNzYXJ5OlxuICBwb3N0RXh0ZW5kZWQodXJsOiBzdHJpbmcsIGJvZHkgPSBudWxsLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9KSB7XG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwgdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuYXBpVXJsICsgdXJsLCBib2R5LCB7XG4gICAgICBoZWFkZXJzLFxuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIHBhcmFtczogdGhpcy5wcmVwYXJlRW5jb2RlZFBhcmFtcyhwYXJhbXMpXG4gICAgfSk7XG4gIH1cblxuICBwdXQodXJsOiBzdHJpbmcsIGJvZHkgPSBudWxsLCBwYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0aGlzLmFwaVVybCArIHVybCwgYm9keSwge2hlYWRlcnMsIHBhcmFtczogdGhpcy5wcmVwYXJlRW5jb2RlZFBhcmFtcyhwYXJhbXMpfSk7XG4gIH1cblxuICBkZWxldGUodXJsOiBzdHJpbmcsIHBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHRoaXMuYXBpVXJsICsgdXJsLCB7aGVhZGVycywgcGFyYW1zOiB0aGlzLnByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtcyl9KTtcbiAgfVxuXG4gIGZldGNoUGFnaW5hdGlvbih1cmw6IHN0cmluZywgcGFnZVNpemU6IG51bWJlciwgcGFnZU51bWJlcjogbnVtYmVyLCBhZGRpdGlvbmFsUGFyYW1zID0ge30sIGNhY2hlPzogYm9vbGVhbik6IE9ic2VydmFibGU8VGFibGVEYXRhSW50ZXJmYWNlPiB7XG4gICAgY29uc3QgY29weUFkZGl0aW9uYWxQYXJhbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFkZGl0aW9uYWxQYXJhbXMpKTtcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKGNvcHlBZGRpdGlvbmFsUGFyYW1zLCB7c2l6ZTogcGFnZVNpemUudG9TdHJpbmcoKSwgcGFnZTogcGFnZU51bWJlci50b1N0cmluZygpfSk7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2godXJsLCBwYXJhbXMsIGNhY2hlKSBhcyBPYnNlcnZhYmxlPFRhYmxlRGF0YUludGVyZmFjZT47XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtczogYW55KSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICAgIGlmICghcGFyYW1zKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICAgIGlmIChwYXJhbXNba2V5XSkge1xuICAgICAgICBjb25zdCBzdHJpbmdQYXJhbSA9IHBhcmFtc1trZXldLnRvU3RyaW5nKCk7XG4gICAgICAgIHJlc3VsdFtrZXldID0gc3RyaW5nUGFyYW0uaW5jbHVkZXMoJysnKSA/IGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdQYXJhbSkgOiBzdHJpbmdQYXJhbTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVhZGVycyhjYWNoZT86IGJvb2xlYW4pOiBIdHRwSGVhZGVycyB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgnX0NhY2hlJywgJ3RydWUgJyk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbiB8fCB0aGlzLmdldFBhcmFtZXRlckJ5TmFtZSgndG9rZW4nKTtcbiAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcrIHRva2VuKTtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1ldGVyQnlOYW1lKG5hbWU6IGFueSwgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYpIHtcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXFxdXS9nLCAnXFxcXCQmJyk7XG4gICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgnWz8mXScgKyBuYW1lICsgJyg9KFteJiNdKil8JnwjfCQpJyksXG4gICAgICByZXN1bHRzID0gcmVnZXguZXhlYyh1cmwpO1xuICAgIGlmICghcmVzdWx0cykgcmV0dXJuIG51bGw7XG4gICAgaWYgKCFyZXN1bHRzWzJdKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzJdLnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcbiAgfVxuXG59XG4iXX0=