@tuki-io/tuki-widgets 0.0.63 → 0.0.65

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 (588) 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 +10 -9
  7. package/angular.json +140 -0
  8. package/package.json +47 -57
  9. package/projects/tuki/widgets/README.md +24 -0
  10. package/projects/tuki/widgets/di2mt/README.md +42 -0
  11. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +20 -0
  12. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  13. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  14. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -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/projects/tuki/widgets/di2mt/public-api.ts +26 -0
  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 +76 -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 +52 -0
  43. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +28 -0
  44. package/projects/tuki/widgets/di2mt/shared/material.module.ts +36 -0
  45. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +92 -0
  46. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +38 -0
  47. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +14 -0
  48. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +5 -0
  49. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +14 -0
  50. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +13 -0
  51. package/projects/tuki/widgets/di2mt/styles/variables.scss +92 -0
  52. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +92 -0
  53. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +187 -0
  54. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +205 -0
  55. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +24 -0
  56. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +45 -0
  57. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +15 -0
  58. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +52 -0
  59. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +53 -0
  60. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +67 -0
  61. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +7 -0
  62. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  63. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +45 -0
  64. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +7 -0
  65. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  66. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +45 -0
  67. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +59 -0
  68. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +70 -0
  69. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts +58 -0
  70. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +42 -0
  71. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +95 -0
  72. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts +18 -0
  73. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +131 -0
  74. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +275 -0
  75. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +218 -0
  76. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +24 -0
  77. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +73 -0
  78. package/projects/tuki/widgets/karma.conf.js +44 -0
  79. package/projects/tuki/widgets/ng-package.json +7 -0
  80. package/projects/tuki/widgets/package.json +13 -0
  81. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +23 -0
  82. package/projects/tuki/widgets/src/lib/widgets.component.ts +20 -0
  83. package/projects/tuki/widgets/src/lib/widgets.module.ts +16 -0
  84. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +16 -0
  85. package/projects/tuki/widgets/src/lib/widgets.service.ts +9 -0
  86. package/{public-api.d.ts → projects/tuki/widgets/src/public-api.ts} +4 -0
  87. package/projects/tuki/widgets/src/test.ts +27 -0
  88. package/projects/tuki/widgets/styles.scss +572 -0
  89. package/projects/tuki/widgets/tsconfig.lib.json +36 -0
  90. package/projects/tuki/widgets/tsconfig.lib.prod.json +10 -0
  91. package/projects/tuki/widgets/tsconfig.spec.json +17 -0
  92. package/projects/tuki/widgets/user-device-manage/ng-package.json +7 -0
  93. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +96 -0
  94. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +5 -0
  95. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +5 -0
  96. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +3 -0
  97. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +5 -0
  98. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  99. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +1 -0
  100. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  101. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +292 -0
  102. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +50 -0
  103. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +177 -0
  104. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +21 -0
  105. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +41 -0
  106. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +144 -0
  107. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +40 -0
  108. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +6 -0
  109. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +169 -0
  110. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +167 -0
  111. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +50 -0
  112. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +19 -0
  113. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +225 -0
  114. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +8 -0
  115. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +16 -0
  116. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +14 -0
  117. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +80 -0
  118. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +35 -0
  119. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -0
  120. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +97 -0
  121. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -0
  122. 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
  123. 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
  124. 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
  125. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -0
  126. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -0
  127. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -0
  128. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +241 -0
  129. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +500 -0
  130. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +194 -0
  131. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +27 -0
  132. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +131 -0
  133. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +25 -0
  134. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +209 -0
  135. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +502 -0
  136. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +354 -0
  137. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +9 -0
  138. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +10 -0
  139. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +35 -0
  140. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  141. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  142. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  143. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +87 -0
  144. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +33 -0
  145. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +84 -0
  146. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +46 -0
  147. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +25 -0
  148. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +87 -0
  149. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +17 -0
  150. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +95 -0
  151. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +111 -0
  152. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +89 -0
  153. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +68 -0
  154. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +25 -0
  155. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +82 -0
  156. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +203 -0
  157. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +283 -0
  158. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +87 -0
  159. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +829 -0
  160. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +90 -0
  161. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +231 -0
  162. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +32 -0
  163. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +110 -0
  164. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +30 -0
  165. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +73 -0
  166. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +6 -0
  167. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  168. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +13 -0
  169. package/projects/tuki/widgets/user-manage/ng-package.json +7 -0
  170. package/projects/tuki/widgets/user-manage/src/app.constants.ts +50 -0
  171. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +5 -0
  172. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +5 -0
  173. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +5 -0
  174. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  175. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +1 -0
  176. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  177. package/projects/tuki/widgets/user-manage/src/classes/device.ts +232 -0
  178. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +43 -0
  179. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +161 -0
  180. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +21 -0
  181. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +42 -0
  182. package/projects/tuki/widgets/user-manage/src/classes/line.ts +144 -0
  183. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +39 -0
  184. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +18 -0
  185. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +6 -0
  186. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +165 -0
  187. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +6 -0
  188. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +49 -0
  189. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +225 -0
  190. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +42 -0
  191. package/projects/tuki/widgets/user-manage/src/classes/user.ts +8 -0
  192. package/projects/tuki/widgets/user-manage/src/common-functions.ts +16 -0
  193. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +27 -0
  194. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +131 -0
  195. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +25 -0
  196. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +9 -0
  197. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +10 -0
  198. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +35 -0
  199. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  200. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  201. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  202. package/projects/tuki/widgets/user-manage/src/material.module.ts +85 -0
  203. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +33 -0
  204. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +84 -0
  205. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +46 -0
  206. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +25 -0
  207. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +90 -0
  208. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +116 -0
  209. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +31 -0
  210. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +68 -0
  211. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +25 -0
  212. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +35 -0
  213. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +203 -0
  214. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +242 -0
  215. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +59 -0
  216. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +71 -0
  217. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +90 -0
  218. package/projects/tuki/widgets/user-manage/src/styles/form.scss +231 -0
  219. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +32 -0
  220. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +110 -0
  221. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +30 -0
  222. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -0
  223. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +429 -0
  224. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -0
  225. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +32 -0
  226. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +444 -0
  227. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +89 -0
  228. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +68 -0
  229. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +29 -0
  230. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +64 -0
  231. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +19 -0
  232. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +290 -0
  233. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +463 -0
  234. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +212 -0
  235. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +63 -0
  236. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +6 -0
  237. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  238. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +13 -0
  239. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +26 -0
  240. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +41 -0
  241. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +41 -0
  242. package/projects/tuki/widgets/users-list/ng-package.json +6 -0
  243. package/projects/tuki/widgets/users-list/src/app.constants.ts +54 -0
  244. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +3 -0
  245. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +1 -0
  246. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +14 -0
  247. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +3 -0
  248. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +36 -0
  249. package/projects/tuki/widgets/users-list/src/classes/device.ts +225 -0
  250. package/projects/tuki/widgets/users-list/src/classes/line.ts +144 -0
  251. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +225 -0
  252. package/projects/tuki/widgets/users-list/src/classes/notification.ts +38 -0
  253. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +18 -0
  254. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +74 -0
  255. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +6 -0
  256. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +225 -0
  257. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +47 -0
  258. package/projects/tuki/widgets/users-list/src/classes/user.ts +8 -0
  259. package/projects/tuki/widgets/users-list/src/material.module.ts +94 -0
  260. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +37 -0
  261. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +129 -0
  262. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +46 -0
  263. 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
  264. 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
  265. 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
  266. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +222 -0
  267. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +239 -0
  268. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +206 -0
  269. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +12 -0
  270. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +41 -0
  271. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +36 -0
  272. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +14 -0
  273. package/projects/tuki/widgets/users-list/src/services/api.service.ts +90 -0
  274. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +128 -0
  275. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +11 -0
  276. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +59 -0
  277. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +68 -0
  278. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +25 -0
  279. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +26 -0
  280. package/projects/tuki/widgets/users-list/src/services/user.service.ts +159 -0
  281. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +137 -0
  282. package/projects/tuki/widgets/users-list/src/styles/styles.scss +572 -0
  283. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +15 -0
  284. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +103 -0
  285. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -0
  286. package/projects/tuki/widgets/users-list/src/users-list.component.css +4 -0
  287. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +1 -0
  288. package/projects/tuki/widgets/users-list/src/users-list.component.html +86 -0
  289. package/projects/tuki/widgets/users-list/src/users-list.component.scss +572 -0
  290. package/projects/tuki/widgets/users-list/src/users-list.component.ts +312 -0
  291. package/projects/tuki/widgets/users-list/src/users-list.module.ts +63 -0
  292. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +11 -0
  293. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +1 -0
  294. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +6 -0
  295. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +11 -0
  296. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +13 -0
  297. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +32 -0
  298. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +33 -0
  299. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +84 -0
  300. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +46 -0
  301. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +45 -0
  302. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +1 -0
  303. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +26 -0
  304. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +41 -0
  305. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +41 -0
  306. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +71 -0
  307. package/projects/widgets-playground/src/app/app.component.html +63 -0
  308. package/projects/widgets-playground/src/app/app.component.scss +15 -0
  309. package/projects/widgets-playground/src/app/app.component.spec.ts +31 -0
  310. package/projects/widgets-playground/src/app/app.component.ts +31 -0
  311. package/projects/widgets-playground/src/app/app.module.ts +37 -0
  312. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  313. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  314. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  315. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  316. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  317. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  318. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  319. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  320. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  321. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  322. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  323. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  324. package/projects/widgets-playground/src/favicon.ico +0 -0
  325. package/projects/widgets-playground/src/index.html +13 -0
  326. package/projects/widgets-playground/src/main.ts +7 -0
  327. package/projects/widgets-playground/src/styles.scss +23 -0
  328. package/projects/widgets-playground/tsconfig.app.json +14 -0
  329. package/projects/widgets-playground/tsconfig.spec.json +14 -0
  330. package/proxy.conf.js +23 -0
  331. package/tsconfig.json +46 -0
  332. package/esm2020/lib/widgets.component.mjs +0 -22
  333. package/esm2020/lib/widgets.module.mjs +0 -21
  334. package/esm2020/lib/widgets.service.mjs +0 -14
  335. package/esm2020/public-api.mjs +0 -7
  336. package/esm2020/tuki-io-tuki-widgets.mjs +0 -5
  337. package/esm2020/user-device-manage/public-api.mjs +0 -9
  338. package/esm2020/user-device-manage/src/app.constants.mjs +0 -95
  339. package/esm2020/user-device-manage/src/classes/device.mjs +0 -85
  340. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +0 -2
  341. package/esm2020/user-device-manage/src/classes/line-association.mjs +0 -121
  342. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +0 -10
  343. package/esm2020/user-device-manage/src/classes/line-directory.mjs +0 -27
  344. package/esm2020/user-device-manage/src/classes/line.mjs +0 -18
  345. package/esm2020/user-device-manage/src/classes/notification.mjs +0 -32
  346. package/esm2020/user-device-manage/src/classes/recording-options.mjs +0 -7
  347. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +0 -111
  348. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +0 -21
  349. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +0 -32
  350. package/esm2020/user-device-manage/src/classes/types.mjs +0 -24
  351. package/esm2020/user-device-manage/src/common-functions.mjs +0 -19
  352. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +0 -34
  353. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +0 -31
  354. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +0 -16
  355. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +0 -64
  356. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +0 -179
  357. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +0 -24
  358. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +0 -335
  359. package/esm2020/user-device-manage/src/environments/environment.mjs +0 -11
  360. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +0 -36
  361. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  362. package/esm2020/user-device-manage/src/material.module.mjs +0 -192
  363. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +0 -35
  364. package/esm2020/user-device-manage/src/services/api.service.mjs +0 -79
  365. package/esm2020/user-device-manage/src/services/device.service.mjs +0 -83
  366. package/esm2020/user-device-manage/src/services/dns.service.mjs +0 -104
  367. package/esm2020/user-device-manage/src/services/line.service.mjs +0 -76
  368. package/esm2020/user-device-manage/src/services/notification.service.mjs +0 -62
  369. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  370. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +0 -70
  371. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +0 -197
  372. package/esm2020/user-device-manage/src/services/user.service.mjs +0 -243
  373. package/esm2020/user-device-manage/src/services/utils.service.mjs +0 -87
  374. package/esm2020/user-device-manage/src/services/validation.service.mjs +0 -760
  375. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +0 -107
  376. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +0 -14
  377. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +0 -5
  378. package/esm2020/user-manage/public-api.mjs +0 -7
  379. package/esm2020/user-manage/src/app.constants.mjs +0 -50
  380. package/esm2020/user-manage/src/classes/device.mjs +0 -37
  381. package/esm2020/user-manage/src/classes/line-association-interface.mjs +0 -2
  382. package/esm2020/user-manage/src/classes/line-association.mjs +0 -110
  383. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +0 -10
  384. package/esm2020/user-manage/src/classes/line-directory.mjs +0 -27
  385. package/esm2020/user-manage/src/classes/line.mjs +0 -18
  386. package/esm2020/user-manage/src/classes/notification.mjs +0 -32
  387. package/esm2020/user-manage/src/classes/pagination.mjs +0 -8
  388. package/esm2020/user-manage/src/classes/recording-options.mjs +0 -7
  389. package/esm2020/user-manage/src/classes/simplified-user.mjs +0 -109
  390. package/esm2020/user-manage/src/classes/table-data.mjs +0 -2
  391. package/esm2020/user-manage/src/classes/translation-pattern.mjs +0 -32
  392. package/esm2020/user-manage/src/classes/user-list.mjs +0 -10
  393. package/esm2020/user-manage/src/common-functions.mjs +0 -19
  394. package/esm2020/user-manage/src/device-list/device-list.component.mjs +0 -24
  395. package/esm2020/user-manage/src/environments/environment.mjs +0 -11
  396. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +0 -36
  397. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  398. package/esm2020/user-manage/src/material.module.mjs +0 -188
  399. package/esm2020/user-manage/src/notifications/notification.component.mjs +0 -35
  400. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +0 -25
  401. package/esm2020/user-manage/src/services/api.service.mjs +0 -79
  402. package/esm2020/user-manage/src/services/dns.service.mjs +0 -110
  403. package/esm2020/user-manage/src/services/line.service.mjs +0 -34
  404. package/esm2020/user-manage/src/services/notification.service.mjs +0 -62
  405. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  406. package/esm2020/user-manage/src/services/site-settings.service.mjs +0 -36
  407. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +0 -197
  408. package/esm2020/user-manage/src/services/user.service.mjs +0 -207
  409. package/esm2020/user-manage/src/services/users-search.service.mjs +0 -50
  410. package/esm2020/user-manage/src/services/utils.service.mjs +0 -73
  411. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +0 -65
  412. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +0 -78
  413. package/esm2020/user-manage/src/user-info/user-info.component.mjs +0 -20
  414. package/esm2020/user-manage/src/user-manage-widget.component.mjs +0 -208
  415. package/esm2020/user-manage/src/user-manage.module.mjs +0 -99
  416. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +0 -14
  417. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +0 -43
  418. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +0 -5
  419. package/esm2020/users-list/public-api.mjs +0 -9
  420. package/esm2020/users-list/src/app.constants.mjs +0 -54
  421. package/esm2020/users-list/src/classes/app-location.mjs +0 -32
  422. package/esm2020/users-list/src/classes/device.mjs +0 -7
  423. package/esm2020/users-list/src/classes/line.mjs +0 -18
  424. package/esm2020/users-list/src/classes/move-user.mjs +0 -178
  425. package/esm2020/users-list/src/classes/notification.mjs +0 -31
  426. package/esm2020/users-list/src/classes/pagination.mjs +0 -8
  427. package/esm2020/users-list/src/classes/simlified-user.mjs +0 -50
  428. package/esm2020/users-list/src/classes/table-data.mjs +0 -2
  429. package/esm2020/users-list/src/classes/user-list.mjs +0 -14
  430. package/esm2020/users-list/src/material.module.mjs +0 -209
  431. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +0 -38
  432. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +0 -23
  433. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +0 -189
  434. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +0 -38
  435. package/esm2020/users-list/src/services/api-webex.service.mjs +0 -18
  436. package/esm2020/users-list/src/services/api.service.mjs +0 -78
  437. package/esm2020/users-list/src/services/dns.service.mjs +0 -120
  438. package/esm2020/users-list/src/services/events-communication.service.mjs +0 -14
  439. package/esm2020/users-list/src/services/move-user.service.mjs +0 -53
  440. package/esm2020/users-list/src/services/notification.service.mjs +0 -62
  441. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +0 -25
  442. package/esm2020/users-list/src/services/site-settings.service.mjs +0 -27
  443. package/esm2020/users-list/src/services/user.service.mjs +0 -142
  444. package/esm2020/users-list/src/services/users-search.service.mjs +0 -122
  445. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +0 -34
  446. package/esm2020/users-list/src/users-list.component.mjs +0 -287
  447. package/esm2020/users-list/src/users-list.module.mjs +0 -92
  448. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +0 -14
  449. package/esm2020/users-list/src/utils/common-functions.mjs +0 -32
  450. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +0 -43
  451. package/esm2020/users-list/src/utils/utils.service.mjs +0 -73
  452. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +0 -5
  453. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3402
  454. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  455. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +0 -2124
  456. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  457. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +0 -1994
  458. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  459. package/fesm2015/tuki-io-tuki-widgets.mjs +0 -63
  460. package/fesm2015/tuki-io-tuki-widgets.mjs.map +0 -1
  461. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3364
  462. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  463. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +0 -2107
  464. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  465. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +0 -1973
  466. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  467. package/fesm2020/tuki-io-tuki-widgets.mjs +0 -63
  468. package/fesm2020/tuki-io-tuki-widgets.mjs.map +0 -1
  469. package/index.d.ts +0 -5
  470. package/lib/widgets.component.d.ts +0 -8
  471. package/lib/widgets.module.d.ts +0 -7
  472. package/lib/widgets.service.d.ts +0 -6
  473. package/user-device-manage/index.d.ts +0 -5
  474. package/user-device-manage/src/app.constants.d.ts +0 -74
  475. package/user-device-manage/src/classes/device.d.ts +0 -233
  476. package/user-device-manage/src/classes/line-association-interface.d.ts +0 -45
  477. package/user-device-manage/src/classes/line-association.d.ts +0 -62
  478. package/user-device-manage/src/classes/line-call-info-display.d.ts +0 -11
  479. package/user-device-manage/src/classes/line-directory.d.ts +0 -15
  480. package/user-device-manage/src/classes/line.d.ts +0 -140
  481. package/user-device-manage/src/classes/notification.d.ts +0 -18
  482. package/user-device-manage/src/classes/recording-options.d.ts +0 -5
  483. package/user-device-manage/src/classes/simplified-user.d.ts +0 -52
  484. package/user-device-manage/src/classes/site-defaults.d.ts +0 -146
  485. package/user-device-manage/src/classes/translation-pattern.d.ts +0 -19
  486. package/user-device-manage/src/classes/types.d.ts +0 -19
  487. package/user-device-manage/src/common-functions.d.ts +0 -1
  488. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +0 -20
  489. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +0 -15
  490. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +0 -7
  491. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +0 -24
  492. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +0 -89
  493. package/user-device-manage/src/device-list/device-list.component.d.ts +0 -11
  494. package/user-device-manage/src/device-manage-widget.component.d.ts +0 -71
  495. package/user-device-manage/src/environments/environment.d.ts +0 -9
  496. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  497. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  498. package/user-device-manage/src/material.module.d.ts +0 -29
  499. package/user-device-manage/src/notifications/notification.component.d.ts +0 -19
  500. package/user-device-manage/src/services/api.service.d.ts +0 -20
  501. package/user-device-manage/src/services/device.service.d.ts +0 -21
  502. package/user-device-manage/src/services/dns.service.d.ts +0 -14
  503. package/user-device-manage/src/services/line.service.d.ts +0 -33
  504. package/user-device-manage/src/services/notification.service.d.ts +0 -18
  505. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  506. package/user-device-manage/src/services/site-settings.service.d.ts +0 -25
  507. package/user-device-manage/src/services/sorting-utils.service.d.ts +0 -26
  508. package/user-device-manage/src/services/user.service.d.ts +0 -51
  509. package/user-device-manage/src/services/utils.service.d.ts +0 -10
  510. package/user-device-manage/src/services/validation.service.d.ts +0 -165
  511. package/user-device-manage/src/user-device-manage.module.d.ts +0 -22
  512. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  513. package/user-manage/index.d.ts +0 -5
  514. package/user-manage/src/app.constants.d.ts +0 -29
  515. package/user-manage/src/classes/device.d.ts +0 -203
  516. package/user-manage/src/classes/line-association-interface.d.ts +0 -40
  517. package/user-manage/src/classes/line-association.d.ts +0 -55
  518. package/user-manage/src/classes/line-call-info-display.d.ts +0 -11
  519. package/user-manage/src/classes/line-directory.d.ts +0 -16
  520. package/user-manage/src/classes/line.d.ts +0 -140
  521. package/user-manage/src/classes/notification.d.ts +0 -18
  522. package/user-manage/src/classes/pagination.d.ts +0 -13
  523. package/user-manage/src/classes/recording-options.d.ts +0 -5
  524. package/user-manage/src/classes/simplified-user.d.ts +0 -50
  525. package/user-manage/src/classes/table-data.d.ts +0 -5
  526. package/user-manage/src/classes/translation-pattern.d.ts +0 -18
  527. package/user-manage/src/classes/user-list.d.ts +0 -34
  528. package/user-manage/src/common-functions.d.ts +0 -1
  529. package/user-manage/src/device-list/device-list.component.d.ts +0 -11
  530. package/user-manage/src/environments/environment.d.ts +0 -9
  531. package/user-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  532. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  533. package/user-manage/src/material.module.d.ts +0 -28
  534. package/user-manage/src/notifications/notification.component.d.ts +0 -19
  535. package/user-manage/src/removeKynFromIBM.service.d.ts +0 -8
  536. package/user-manage/src/services/api.service.d.ts +0 -21
  537. package/user-manage/src/services/dns.service.d.ts +0 -14
  538. package/user-manage/src/services/line.service.d.ts +0 -17
  539. package/user-manage/src/services/notification.service.d.ts +0 -18
  540. package/user-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  541. package/user-manage/src/services/site-settings.service.d.ts +0 -9
  542. package/user-manage/src/services/sorting-utils.service.d.ts +0 -26
  543. package/user-manage/src/services/user.service.d.ts +0 -43
  544. package/user-manage/src/services/users-search.service.d.ts +0 -25
  545. package/user-manage/src/services/utils.service.d.ts +0 -9
  546. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +0 -24
  547. package/user-manage/src/user-calling/user-calling.component.d.ts +0 -30
  548. package/user-manage/src/user-info/user-info.component.d.ts +0 -9
  549. package/user-manage/src/user-manage-widget.component.d.ts +0 -45
  550. package/user-manage/src/user-manage.module.d.ts +0 -21
  551. package/user-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  552. package/user-manage/src/utils/pagination/pagination.component.d.ts +0 -18
  553. package/users-list/index.d.ts +0 -5
  554. package/users-list/src/app.constants.d.ts +0 -36
  555. package/users-list/src/classes/app-location.d.ts +0 -17
  556. package/users-list/src/classes/device.d.ts +0 -224
  557. package/users-list/src/classes/line.d.ts +0 -140
  558. package/users-list/src/classes/move-user.d.ts +0 -85
  559. package/users-list/src/classes/notification.d.ts +0 -18
  560. package/users-list/src/classes/pagination.d.ts +0 -13
  561. package/users-list/src/classes/simlified-user.d.ts +0 -25
  562. package/users-list/src/classes/table-data.d.ts +0 -5
  563. package/users-list/src/classes/user-list.d.ts +0 -36
  564. package/users-list/src/material.module.d.ts +0 -31
  565. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +0 -21
  566. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +0 -12
  567. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +0 -55
  568. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +0 -17
  569. package/users-list/src/services/api-webex.service.d.ts +0 -8
  570. package/users-list/src/services/api.service.d.ts +0 -21
  571. package/users-list/src/services/dns.service.d.ts +0 -18
  572. package/users-list/src/services/events-communication.service.d.ts +0 -8
  573. package/users-list/src/services/move-user.service.d.ts +0 -17
  574. package/users-list/src/services/notification.service.d.ts +0 -18
  575. package/users-list/src/services/removeKynFromIBM.service.d.ts +0 -8
  576. package/users-list/src/services/site-settings.service.d.ts +0 -11
  577. package/users-list/src/services/user.service.d.ts +0 -35
  578. package/users-list/src/services/users-search.service.d.ts +0 -34
  579. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +0 -20
  580. package/users-list/src/users-list.component.d.ts +0 -60
  581. package/users-list/src/users-list.module.d.ts +0 -18
  582. package/users-list/src/utils/app-loader/app-loader.d.ts +0 -6
  583. package/users-list/src/utils/common-functions.d.ts +0 -2
  584. package/users-list/src/utils/pagination/pagination.component.d.ts +0 -18
  585. package/users-list/src/utils/utils.service.d.ts +0 -9
  586. /package/{user-device-manage/public-api.d.ts → projects/tuki/widgets/user-device-manage/public-api.ts} +0 -0
  587. /package/{user-manage/public-api.d.ts → projects/tuki/widgets/user-manage/public-api.ts} +0 -0
  588. /package/{users-list/public-api.d.ts → projects/tuki/widgets/users-list/public-api.ts} +0 -0
@@ -1,287 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { MatTableDataSource } from '@angular/material/table';
3
- import { UserListConfirmDialogComponent } from './user-list-confirm-dialog/user-list-confirm-dialog.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./services/user.service";
6
- import * as i2 from "./services/api.service";
7
- import * as i3 from "./services/api-webex.service";
8
- import * as i4 from "./services/notification.service";
9
- import * as i5 from "./services/users-search.service";
10
- import * as i6 from "@angular/material/dialog";
11
- import * as i7 from "@angular/common";
12
- import * as i8 from "@angular/material/button";
13
- import * as i9 from "@angular/material/progress-spinner";
14
- import * as i10 from "@angular/material/table";
15
- import * as i11 from "@angular/material/menu";
16
- import * as i12 from "./utils/pagination/pagination.component";
17
- import * as i13 from "./utils/app-loader/app-loader";
18
- import * as i14 from "./move-user-wizard/move-user-wizard.component";
19
- const DISPLAYED_COLS = ['user-icon', 'name', 'email', 'status', 'role', 'actions'];
20
- const LOCAL_STORAGE = {
21
- USER_IN_MIGRATION: 'userIdInMigration'
22
- };
23
- export class UsersListComponent {
24
- get form() {
25
- return this.userService?.user?.form;
26
- }
27
- constructor(userService, apiService, apiWebexService, notifications, usersSearchService, dialog) {
28
- this.userService = userService;
29
- this.apiService = apiService;
30
- this.apiWebexService = apiWebexService;
31
- this.notifications = notifications;
32
- this.usersSearchService = usersSearchService;
33
- this.dialog = dialog;
34
- this.openUser = new EventEmitter();
35
- this.userMoved = new EventEmitter();
36
- this.switchToWizard = new EventEmitter();
37
- this.displayedColumns = DISPLAYED_COLS;
38
- this.showMoveUserWizard = false;
39
- this.moveUserPending = false;
40
- this.subscriptions = [];
41
- }
42
- ngOnInit() {
43
- this.usersSearchService.setDefaultValues();
44
- this.usersSearchService.customerId = this.customerId;
45
- this.usersSearchService.siteId = this.siteId;
46
- this.apiService.token = this.token;
47
- this.apiWebexService.token = this.token;
48
- this.apiService.apiUrl = this.host + '/dcp';
49
- this.apiWebexService.apiUrl = this.host + '/webex';
50
- this.getMigratedUsers();
51
- const subscription = this.usersSearchService.foundUsers$
52
- .subscribe((users) => {
53
- this.initializeDataSource(users);
54
- });
55
- this.subscriptions.push(subscription);
56
- console.log('users list paris 7773');
57
- }
58
- ngOnDestroy() {
59
- if (this.subscriptions?.length) {
60
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
61
- }
62
- }
63
- pageNumberChangeEvent(perPageNumber) {
64
- this.usersSearchService.pageSize = perPageNumber;
65
- this.usersSearchService.pageIndex = 0;
66
- this.runSearch();
67
- }
68
- closeMoveUserWizard(afterUserMove) {
69
- this.moveUser = null;
70
- this.moveUserIndex = null;
71
- localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
72
- this.showMoveUserWizard = false;
73
- this.switchToWizard.emit(false);
74
- if (afterUserMove) {
75
- this.getMigratedUsers();
76
- }
77
- }
78
- pageEvent(event) {
79
- this.usersSearchService.pageSize = event.pageSize;
80
- this.usersSearchService.pageIndex = event.pageIndex;
81
- this.runSearch();
82
- }
83
- onUserClick(user) {
84
- this.openUser.emit(user);
85
- }
86
- moveUserToMT(user, index) {
87
- if (user && user.siteId && user.userid) {
88
- this.moveUserPending = true;
89
- this.moveInProgressUserId = user.userid;
90
- this.setStatusToUser(index, 'In Progress');
91
- localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
92
- const subscription = this.userService.moveUserToMT(this.customerId, user)
93
- .subscribe(() => {
94
- this.moveUser = null;
95
- this.moveUserIndex = null;
96
- this.getMigratedUsers();
97
- }, () => {
98
- this.removeUserInMigrationProgress();
99
- this.setStatusToUser(index, 'Migration Error');
100
- });
101
- this.subscriptions.push(subscription);
102
- }
103
- }
104
- moveUserToDI(user, index) {
105
- if (user && user.siteId && user.webexUUID) {
106
- this.moveUserPending = true;
107
- this.moveInProgressUserId = user.userid;
108
- this.users[index].status = 'In Progress';
109
- localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
110
- const subscription = this.userService.moveUserToDI(this.customerId, user)
111
- .subscribe(() => {
112
- this.removeUserInMigrationProgress();
113
- this.setStatusToUser(index, 'Active');
114
- this.users[index].webexUUID = '';
115
- if (this.usersSearchService.migratedUsers && this.usersSearchService.migratedUsers.length) {
116
- this.usersSearchService.migratedUsers = this.usersSearchService.migratedUsers.filter((migratedUser) => migratedUser.userid !== user.email);
117
- }
118
- }, () => {
119
- this.removeUserInMigrationProgress();
120
- this.setStatusToUser(index, 'Migration Error');
121
- });
122
- }
123
- }
124
- removeUserInMigrationProgress() {
125
- localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
126
- this.moveInProgressUserId = '';
127
- this.moveUserPending = false;
128
- }
129
- setStatusToUser(index, status) {
130
- if (this.users && this.users[index]) {
131
- this.users[index].status = status;
132
- if (status === 'Migrated') {
133
- this.users[index].roleName = '';
134
- this.users[index].isMigrated = true;
135
- this.users[index].status = status;
136
- }
137
- else {
138
- this.users[index].roleName = 'Dedicated Instance Calling user';
139
- this.users[index].isMigrated = false;
140
- this.users[index].status = status;
141
- }
142
- }
143
- this.dataSource = new MatTableDataSource(this.users);
144
- }
145
- initializeDataSource(users) {
146
- if (users?.length) {
147
- // this.setRandomUserRole(users);
148
- this.users = users;
149
- this.setUserMigrationProgress();
150
- this.usersSearchService.setMigratedPropToUsers(this.users);
151
- this.dataSource = new MatTableDataSource(users);
152
- }
153
- }
154
- setUserRole() {
155
- if (this.users?.length) {
156
- this.users.forEach(user => {
157
- if (!user.isMigrated) {
158
- user.roleName = 'Dedicated Instance Calling user';
159
- }
160
- });
161
- }
162
- }
163
- setRandomUserRole(users) {
164
- const max = Math.round(this.usersSearchService.pageSize - this.usersSearchService.pageSize / 4);
165
- const min = Math.round(this.usersSearchService.pageSize / 2);
166
- const randomAmount = Math.round(Math.random() * (max - min) + min);
167
- const indexes = this.getArrayOfRandomUserIndexes(randomAmount);
168
- indexes.forEach(index => {
169
- if (users[index]) {
170
- users[index].roleName = 'Dedicated Instance Calling user';
171
- }
172
- });
173
- }
174
- getArrayOfRandomUserIndexes(randomAmount) {
175
- const indexes = [];
176
- while (randomAmount > 0) {
177
- const index = Math.round(Math.random() * (this.usersSearchService.pageSize - 1));
178
- indexes.push(index);
179
- randomAmount--;
180
- }
181
- return indexes;
182
- }
183
- runSearch() {
184
- this.dataPending = true;
185
- this.usersSearchService.quickRegularUsersSearch()
186
- .subscribe(() => {
187
- this.dataPending = false;
188
- }, () => {
189
- this.dataPending = false;
190
- this.notifications.error('The data can not be received');
191
- });
192
- }
193
- setUserMigrationProgress() {
194
- const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
195
- if (userIdInMigration) {
196
- const index = this.users.findIndex(user => user.userid === userIdInMigration);
197
- this.moveInProgressUserId = index > -1 ? this.users[index].userid : '';
198
- this.moveUserPending = index > -1;
199
- }
200
- }
201
- getMigratedUsers() {
202
- this.dataPending = true;
203
- const searchParams = {
204
- customerid: this.customerId,
205
- siteid: this.siteId,
206
- 'cloud-only': 'true'
207
- };
208
- // this.usersSearchService.quickWebexUsersSearch(searchParams, true, MAX_INTEGER)
209
- this.usersSearchService.getMigratedUsers(this.customerId)
210
- // this.usersSearchService.getMigratedWebexUsers(this.customerId)
211
- .subscribe(() => {
212
- const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
213
- if (userIdInMigration && this.usersSearchService.migratedUsers.filter((migratedUser) => migratedUser.userid === userIdInMigration)) {
214
- localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
215
- }
216
- this.runSearch();
217
- }, () => {
218
- this.dataPending = false;
219
- this.notifications.error('The data can not be received');
220
- });
221
- }
222
- onMoveUser(user, index, type, title) {
223
- const dialogRef = this.dialog.open(UserListConfirmDialogComponent, {
224
- data: {
225
- title: `Move user ${user.userid} to ${title}?`,
226
- message: `<p>By moving out of Dedicated Instance, you may need to reassign directory numbers and lose calling services.</p>
227
- <p>Are you sure you want to continue?</p>`,
228
- confirmButtonText: 'Yes, continue'
229
- }
230
- });
231
- dialogRef.beforeClosed().subscribe((result) => {
232
- if (result) {
233
- switch (type) {
234
- case 'QuickMove':
235
- this.moveUserToMT(user, index);
236
- break;
237
- case 'MT':
238
- this.moveUser = user;
239
- this.moveUserIndex = index;
240
- this.showMoveUserWizard = true;
241
- this.switchToWizard.emit(true);
242
- break;
243
- case 'DI':
244
- this.moveUserToDI(user, index);
245
- break;
246
- }
247
- }
248
- });
249
- }
250
- runMoveUserToMT() {
251
- if (this.moveUser && this.moveUser.siteId && this.moveUser.userid) {
252
- this.userService.moveUserPending = true;
253
- this.moveInProgressUserId = this.moveUser.userid;
254
- this.setStatusToUser(this.moveUserIndex, 'In Progress');
255
- localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, this.moveUser.userid);
256
- }
257
- const subscription = this.userService.moveUserToMT(this.customerId, this.moveUser)
258
- .subscribe(() => {
259
- this.userService.userMoved$.next(true);
260
- }, () => {
261
- this.removeUserInMigrationProgress();
262
- this.setStatusToUser(this.moveUserIndex, 'Migration Error');
263
- });
264
- this.subscriptions.push(subscription);
265
- }
266
- }
267
- UsersListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, deps: [{ token: i1.UserService }, { token: i2.APIService }, { token: i3.ApiWebexService }, { token: i4.NotificationService }, { token: i5.UsersSearchService }, { token: i6.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
268
- UsersListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UsersListComponent, selector: "app-users-list", inputs: { token: "token", customerId: "customerId", siteId: "siteId", host: "host" }, outputs: { openUser: "openUser", userMoved: "userMoved", switchToWizard: "switchToWizard" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!showMoveUserWizard\" id=\"users-list\">\r\n <app-pagination\r\n [pagination]=\"usersSearchService.getPagination()\"\r\n [showPageSizeOptions]=\"true\"\r\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\r\n (pageEmitter)=\"pageEvent($event)\">\r\n </app-pagination>\r\n\r\n <table class=\"webex-table\" mat-table *ngIf=\"users?.length\" #table [dataSource]=\"dataSource\">\r\n\r\n <ng-container matColumnDef=\"user-icon\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">First / Last Name</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\"> {{ user.firstName }} {{ user.lastName }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\r\n <td class=\"user-site\" [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">\r\n {{ user.email }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Status</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-user-status icon-user-status-active\"></span>{{user.status}}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user, let i = index\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\">\r\n <mat-progress-spinner class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\"\r\n *ngIf=\"user.status === 'In Progress'\"></mat-progress-spinner>\r\n <button *ngIf=\"!(moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid)\"\r\n class=\"button-action-dot\" mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <div class=\"icon-actions-dots\">\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n </div>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\r\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'QuickMove', 'MT')\">Quick Move User to MT</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'MT', 'MT')\">Move User to MT</button>\r\n <button *ngIf=\"user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'DI', 'DI')\">Revert User to UCM/DI</button>\r\n <button mat-menu-item [disabled]=\"true\">Deactivate User</button>\r\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Administrator Role</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">{{ user.roleName || '' }}</td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</div>\r\n\r\n<app-move-user-wizard *ngIf=\"showMoveUserWizard\" [user]=\"moveUser\" (done)=\"closeMoveUserWizard(true)\"\r\n [customerId]=\"customerId\" (runMoveUser)=\"runMoveUserToMT()\"\r\n (closeMoveUserWizard)=\"closeMoveUserWizard(false)\"></app-move-user-wizard>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";table.mat-table{border-spacing:0;width:100%}::ng-deep .mat-paginator{background:none}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#000;font-size:14px}.webex-table tr:hover td:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-paginator{background:transparent!important}::ng-deep .mat-paginator-container{min-height:30px!important}::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}::ng-deep .pagination{font-size:13px;color:#0000008a}::ng-deep .per-page-block{display:flex;line-height:42px!important}::ng-deep .item_per_page{line-height:42px!important}::ng-deep .select-page-size{line-height:42px!important}::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}::ng-deep mat-progress-spinner.field-spinner{position:relative;margin:-20px auto auto}::ng-deep mat-progress-spinner.tab-spinner{position:relative;margin:0 auto auto}.icon-dot{display:block;color:#4f4f4f;font-size:16px;line-height:5px}.button-action-dot:hover{background:#dfdfdf}.button-action-dot{padding:0 5px 5px;border-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.PaginationComponent, selector: "app-pagination", inputs: ["pagination", "showPageSizeOptions", "showRefreshButton", "lengthPending"], outputs: ["pageEmitter", "pageNumberChangeEmitter"] }, { kind: "component", type: i13.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i14.MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: ["user", "customerId"], outputs: ["closeMoveUserWizard", "done", "runMoveUser"] }] });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, decorators: [{
270
- type: Component,
271
- args: [{ selector: 'app-users-list', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!showMoveUserWizard\" id=\"users-list\">\r\n <app-pagination\r\n [pagination]=\"usersSearchService.getPagination()\"\r\n [showPageSizeOptions]=\"true\"\r\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\r\n (pageEmitter)=\"pageEvent($event)\">\r\n </app-pagination>\r\n\r\n <table class=\"webex-table\" mat-table *ngIf=\"users?.length\" #table [dataSource]=\"dataSource\">\r\n\r\n <ng-container matColumnDef=\"user-icon\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">First / Last Name</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\"> {{ user.firstName }} {{ user.lastName }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\r\n <td class=\"user-site\" [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">\r\n {{ user.email }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Status</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-user-status icon-user-status-active\"></span>{{user.status}}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user, let i = index\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\">\r\n <mat-progress-spinner class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\"\r\n *ngIf=\"user.status === 'In Progress'\"></mat-progress-spinner>\r\n <button *ngIf=\"!(moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid)\"\r\n class=\"button-action-dot\" mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <div class=\"icon-actions-dots\">\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n </div>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\r\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'QuickMove', 'MT')\">Quick Move User to MT</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'MT', 'MT')\">Move User to MT</button>\r\n <button *ngIf=\"user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'DI', 'DI')\">Revert User to UCM/DI</button>\r\n <button mat-menu-item [disabled]=\"true\">Deactivate User</button>\r\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Administrator Role</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">{{ user.roleName || '' }}</td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</div>\r\n\r\n<app-move-user-wizard *ngIf=\"showMoveUserWizard\" [user]=\"moveUser\" (done)=\"closeMoveUserWizard(true)\"\r\n [customerId]=\"customerId\" (runMoveUser)=\"runMoveUserToMT()\"\r\n (closeMoveUserWizard)=\"closeMoveUserWizard(false)\"></app-move-user-wizard>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";table.mat-table{border-spacing:0;width:100%}::ng-deep .mat-paginator{background:none}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#000;font-size:14px}.webex-table tr:hover td:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-paginator{background:transparent!important}::ng-deep .mat-paginator-container{min-height:30px!important}::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}::ng-deep .pagination{font-size:13px;color:#0000008a}::ng-deep .per-page-block{display:flex;line-height:42px!important}::ng-deep .item_per_page{line-height:42px!important}::ng-deep .select-page-size{line-height:42px!important}::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}::ng-deep mat-progress-spinner.field-spinner{position:relative;margin:-20px auto auto}::ng-deep mat-progress-spinner.tab-spinner{position:relative;margin:0 auto auto}.icon-dot{display:block;color:#4f4f4f;font-size:16px;line-height:5px}.button-action-dot:hover{background:#dfdfdf}.button-action-dot{padding:0 5px 5px;border-radius:.25rem}\n"] }]
272
- }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.APIService }, { type: i3.ApiWebexService }, { type: i4.NotificationService }, { type: i5.UsersSearchService }, { type: i6.MatDialog }]; }, propDecorators: { token: [{
273
- type: Input
274
- }], customerId: [{
275
- type: Input
276
- }], siteId: [{
277
- type: Input
278
- }], openUser: [{
279
- type: Output
280
- }], userMoved: [{
281
- type: Output
282
- }], switchToWizard: [{
283
- type: Output
284
- }], host: [{
285
- type: Input
286
- }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvdXNlcnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvdXNlcnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVExRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUs3RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRyxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbkYsTUFBTSxhQUFhLEdBQUc7SUFDcEIsaUJBQWlCLEVBQUUsbUJBQW1CO0NBQ3ZDLENBQUM7QUFPRixNQUFNLE9BQU8sa0JBQWtCO0lBb0I3QixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFDUyxXQUF3QixFQUN2QixVQUFzQixFQUN0QixlQUFnQyxFQUNoQyxhQUFrQyxFQUNuQyxrQkFBc0MsRUFDckMsTUFBaUI7UUFMbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FB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LENBQUM7WUFDeEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3RTtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUMvRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O2dIQTNSVSxrQkFBa0I7b0dBQWxCLGtCQUFrQix5T0N6Qi9CLGc3SkFzRkE7NEZEN0RhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7b1BBS2pCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2FwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVzZXJzU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlcnMtc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaXN0VXNlciB9IGZyb20gJy4vY2xhc3Nlcy91c2VyLWxpc3QnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IEFwaVdlYmV4U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBpLXdlYmV4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNQVhfSU5URUdFUiB9IGZyb20gJy4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFVzZXJMaXN0Q29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vdXNlci1saXN0LWNvbmZpcm0tZGlhbG9nL3VzZXItbGlzdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgRElTUExBWUVEX0NPTFMgPSBbJ3VzZXItaWNvbicsICduYW1lJywgJ2VtYWlsJywgJ3N0YXR1cycsICdyb2xlJywgJ2FjdGlvbnMnXTtcclxuY29uc3QgTE9DQUxfU1RPUkFHRSA9IHtcclxuICBVU0VSX0lOX01JR1JBVElPTjogJ3VzZXJJZEluTWlncmF0aW9uJ1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdXNlcnMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXJzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXJzLWxpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlcnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVySWQhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc2l0ZUlkITogbnVtYmVyO1xyXG4gIEBPdXRwdXQoKSBvcGVuVXNlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgdXNlck1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzd2l0Y2hUb1dpemFyZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBob3N0ITogc3RyaW5nO1xyXG5cclxuICBkYXRhUGVuZGluZyE6IGJvb2xlYW47XHJcbiAgbW92ZUluUHJvZ3Jlc3NVc2VySWQhOiBzdHJpbmc7XHJcbiAgdXNlcnMhOiBMaXN0VXNlcltdO1xyXG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8TGlzdFVzZXI+O1xyXG4gIGRpc3BsYXllZENvbHVtbnMgPSBESVNQTEFZRURfQ09MUztcclxuICBtb3ZlVXNlcjogYW55O1xyXG4gIG1vdmVVc2VySW5kZXg6IGFueTtcclxuICBzaG93TW92ZVVzZXJXaXphcmQgPSBmYWxzZTtcclxuICBtb3ZlVXNlclBlbmRpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZm9ybTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpV2ViZXhTZXJ2aWNlOiBBcGlXZWJleFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXNlcnNTZWFyY2hTZXJ2aWNlOiBVc2Vyc1NlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJzU2VhcmNoU2VydmljZS5zZXREZWZhdWx0VmFsdWVzKCk7XHJcbiAgICB0aGlzLnVzZXJzU2VhcmNoU2VydmljZS5jdXN0b21lcklkID0gdGhpcy5jdXN0b21lcklkO1xyXG4gICAgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2Uuc2l0ZUlkID0gdGhpcy5zaXRlSWQ7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlXZWJleFNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdCArICcvZGNwJztcclxuICAgIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdCArICcvd2ViZXgnO1xyXG5cclxuICAgIHRoaXMuZ2V0TWlncmF0ZWRVc2VycygpO1xyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2UuZm91bmRVc2VycyRcclxuICAgICAgLnN1YnNjcmliZSgodXNlcnM6IExpc3RVc2VyW10pID0+IHtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRhU291cmNlKHVzZXJzKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKCd1c2VycyBsaXN0IHBhcmlzIDc3NzMnKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYWdlTnVtYmVyQ2hhbmdlRXZlbnQocGVyUGFnZU51bWJlcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJzU2VhcmNoU2VydmljZS5wYWdlU2l6ZSA9IHBlclBhZ2VOdW1iZXI7XHJcbiAgICB0aGlzLnVzZXJzU2VhcmNoU2VydmljZS5wYWdlSW5kZXggPSAwO1xyXG4gICAgdGhpcy5ydW5TZWFyY2goKTtcclxuICB9XHJcblxyXG4gIGNsb3NlTW92ZVVzZXJXaXphcmQoYWZ0ZXJVc2VyTW92ZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMubW92ZVVzZXIgPSBudWxsO1xyXG4gICAgdGhpcy5tb3ZlVXNlckluZGV4ID0gbnVsbDtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKExPQ0FMX1NUT1JBR0UuVVNFUl9JTl9NSUdSQVRJT04pO1xyXG4gICAgdGhpcy5zaG93TW92ZVVzZXJXaXphcmQgPSBmYWxzZTtcclxuICAgIHRoaXMuc3dpdGNoVG9XaXphcmQuZW1pdChmYWxzZSk7XHJcbiAgICBpZiAoYWZ0ZXJVc2VyTW92ZSkge1xyXG4gICAgICB0aGlzLmdldE1pZ3JhdGVkVXNlcnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBhZ2VFdmVudChldmVudDogUGFnZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJzU2VhcmNoU2VydmljZS5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xyXG4gICAgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2UucGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gICAgdGhpcy5ydW5TZWFyY2goKTtcclxuICB9XHJcblxyXG4gIG9uVXNlckNsaWNrKHVzZXI6IExpc3RVc2VyKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5Vc2VyLmVtaXQodXNlcik7XHJcbiAgfVxyXG5cclxuICBtb3ZlVXNlclRvTVQodXNlcjogTGlzdFVzZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodXNlciAmJiB1c2VyLnNpdGVJZCAmJiB1c2VyLnVzZXJpZCkge1xyXG4gICAgICB0aGlzLm1vdmVVc2VyUGVuZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMubW92ZUluUHJvZ3Jlc3NVc2VySWQgPSB1c2VyLnVzZXJpZDtcclxuICAgICAgdGhpcy5zZXRTdGF0dXNUb1VzZXIoaW5kZXgsICdJbiBQcm9ncmVzcycpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMT0NBTF9TVE9SQUdFLlVTRVJfSU5fTUlHUkFUSU9OLCB1c2VyLnVzZXJpZCk7XHJcblxyXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJTZXJ2aWNlLm1vdmVVc2VyVG9NVCh0aGlzLmN1c3RvbWVySWQsIHVzZXIpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1vdmVVc2VyID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMubW92ZVVzZXJJbmRleCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmdldE1pZ3JhdGVkVXNlcnMoKTtcclxuICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVVzZXJJbk1pZ3JhdGlvblByb2dyZXNzKCk7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXR1c1RvVXNlcihpbmRleCwgJ01pZ3JhdGlvbiBFcnJvcicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW92ZVVzZXJUb0RJKHVzZXI6IExpc3RVc2VyLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHVzZXIgJiYgdXNlci5zaXRlSWQgJiYgdXNlci53ZWJleFVVSUQpIHtcclxuICAgICAgdGhpcy5tb3ZlVXNlclBlbmRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1vdmVJblByb2dyZXNzVXNlcklkID0gdXNlci51c2VyaWQ7XHJcbiAgICAgIHRoaXMudXNlcnNbaW5kZXhdLnN0YXR1cyA9ICdJbiBQcm9ncmVzcydcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxfU1RPUkFHRS5VU0VSX0lOX01JR1JBVElPTiwgdXNlci51c2VyaWQpO1xyXG5cclxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy51c2VyU2VydmljZS5tb3ZlVXNlclRvREkodGhpcy5jdXN0b21lcklkLCB1c2VyKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVVc2VySW5NaWdyYXRpb25Qcm9ncmVzcygpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0dXNUb1VzZXIoaW5kZXgsICdBY3RpdmUnKTtcclxuICAgICAgICAgIHRoaXMudXNlcnNbaW5kZXhdLndlYmV4VVVJRCA9ICcnO1xyXG4gICAgICAgICAgaWYgKHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLm1pZ3JhdGVkVXNlcnMgJiYgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2UubWlncmF0ZWRVc2Vycy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2UubWlncmF0ZWRVc2VycyA9IHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLm1pZ3JhdGVkVXNlcnMuZmlsdGVyKChtaWdyYXRlZFVzZXI6IGFueSkgPT4gbWlncmF0ZWRVc2VyLnVzZXJpZCAhPT0gdXNlci5lbWFpbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVVc2VySW5NaWdyYXRpb25Qcm9ncmVzcygpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0dXNUb1VzZXIoaW5kZXgsICdNaWdyYXRpb24gRXJyb3InKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlVXNlckluTWlncmF0aW9uUHJvZ3Jlc3MoKTogdm9pZCB7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShMT0NBTF9TVE9SQUdFLlVTRVJfSU5fTUlHUkFUSU9OKTtcclxuICAgIHRoaXMubW92ZUluUHJvZ3Jlc3NVc2VySWQgPSAnJztcclxuICAgIHRoaXMubW92ZVVzZXJQZW5kaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0YXR1c1RvVXNlcihpbmRleDogbnVtYmVyLCBzdGF0dXM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlcnMgJiYgdGhpcy51c2Vyc1tpbmRleF0pIHtcclxuICAgICAgdGhpcy51c2Vyc1tpbmRleF0uc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnTWlncmF0ZWQnKSB7XHJcbiAgICAgICAgdGhpcy51c2Vyc1tpbmRleF0ucm9sZU5hbWUgPSAnJztcclxuICAgICAgICB0aGlzLnVzZXJzW2luZGV4XS5pc01pZ3JhdGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnVzZXJzW2luZGV4XS5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51c2Vyc1tpbmRleF0ucm9sZU5hbWUgPSAnRGVkaWNhdGVkIEluc3RhbmNlIENhbGxpbmcgdXNlcic7XHJcbiAgICAgICAgdGhpcy51c2Vyc1tpbmRleF0uaXNNaWdyYXRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXNlcnNbaW5kZXhdLnN0YXR1cyA9IHN0YXR1cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLnVzZXJzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhdGFTb3VyY2UodXNlcnM6IExpc3RVc2VyW10pOiB2b2lkIHtcclxuICAgIGlmKHVzZXJzPy5sZW5ndGgpIHtcclxuICAgICAgLy8gdGhpcy5zZXRSYW5kb21Vc2VyUm9sZSh1c2Vycyk7XHJcbiAgICAgIHRoaXMudXNlcnMgPSB1c2VycztcclxuICAgICAgdGhpcy5zZXRVc2VyTWlncmF0aW9uUHJvZ3Jlc3MoKTtcclxuICAgICAgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2Uuc2V0TWlncmF0ZWRQcm9wVG9Vc2Vycyh0aGlzLnVzZXJzKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh1c2Vycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVzZXJSb2xlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlcnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnVzZXJzLmZvckVhY2godXNlciA9PiB7XHJcbiAgICAgICAgaWYgKCF1c2VyLmlzTWlncmF0ZWQpIHtcclxuICAgICAgICAgIHVzZXIucm9sZU5hbWUgPSAnRGVkaWNhdGVkIEluc3RhbmNlIENhbGxpbmcgdXNlcic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSYW5kb21Vc2VyUm9sZSh1c2VyczogTGlzdFVzZXJbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgbWF4ID0gTWF0aC5yb3VuZCh0aGlzLnVzZXJzU2VhcmNoU2VydmljZS5wYWdlU2l6ZSAtIHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLnBhZ2VTaXplIC8gNCk7XHJcbiAgICBjb25zdCBtaW4gPSBNYXRoLnJvdW5kKHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLnBhZ2VTaXplIC8gMik7XHJcbiAgICBjb25zdCByYW5kb21BbW91bnQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbik7XHJcbiAgICBjb25zdCBpbmRleGVzID0gdGhpcy5nZXRBcnJheU9mUmFuZG9tVXNlckluZGV4ZXMocmFuZG9tQW1vdW50KTtcclxuICAgIGluZGV4ZXMuZm9yRWFjaChpbmRleCA9PiB7XHJcbiAgICAgIGlmICh1c2Vyc1tpbmRleF0pIHtcclxuICAgICAgICB1c2Vyc1tpbmRleF0ucm9sZU5hbWUgPSAnRGVkaWNhdGVkIEluc3RhbmNlIENhbGxpbmcgdXNlcidcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFycmF5T2ZSYW5kb21Vc2VySW5kZXhlcyhyYW5kb21BbW91bnQ6IG51bWJlcik6IG51bWJlcltdIHtcclxuICAgIGNvbnN0IGluZGV4ZXMgPSBbXTtcclxuICAgIHdoaWxlIChyYW5kb21BbW91bnQgPiAwKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogKHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLnBhZ2VTaXplIC0gMSkpO1xyXG4gICAgICBpbmRleGVzLnB1c2goaW5kZXgpXHJcbiAgICAgIHJhbmRvbUFtb3VudC0tO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluZGV4ZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJ1blNlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVBlbmRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2UucXVpY2tSZWd1bGFyVXNlcnNTZWFyY2goKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sICgpID0+IHtcclxuICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLmVycm9yKCdUaGUgZGF0YSBjYW4gbm90IGJlIHJlY2VpdmVkJyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVc2VyTWlncmF0aW9uUHJvZ3Jlc3MoKTogdm9pZCB7XHJcbiAgICBjb25zdCB1c2VySWRJbk1pZ3JhdGlvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKExPQ0FMX1NUT1JBR0UuVVNFUl9JTl9NSUdSQVRJT04pO1xyXG4gICAgaWYgKHVzZXJJZEluTWlncmF0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy51c2Vycy5maW5kSW5kZXgodXNlciA9PiB1c2VyLnVzZXJpZCA9PT0gdXNlcklkSW5NaWdyYXRpb24pO1xyXG4gICAgICB0aGlzLm1vdmVJblByb2dyZXNzVXNlcklkID0gaW5kZXggPiAtMSA/IHRoaXMudXNlcnNbaW5kZXhdLnVzZXJpZCA6ICcnO1xyXG4gICAgICB0aGlzLm1vdmVVc2VyUGVuZGluZyA9IGluZGV4ID4gLTE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1pZ3JhdGVkVXNlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHtcclxuICAgICAgY3VzdG9tZXJpZDogdGhpcy5jdXN0b21lcklkLFxyXG4gICAgICBzaXRlaWQ6IHRoaXMuc2l0ZUlkLFxyXG4gICAgICAnY2xvdWQtb25seSc6ICd0cnVlJ1xyXG4gICAgfTtcclxuICAgIC8vIHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLnF1aWNrV2ViZXhVc2Vyc1NlYXJjaChzZWFyY2hQYXJhbXMsIHRydWUsIE1BWF9JTlRFR0VSKVxyXG4gICAgdGhpcy51c2Vyc1NlYXJjaFNlcnZpY2UuZ2V0TWlncmF0ZWRVc2Vycyh0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgIC8vIHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLmdldE1pZ3JhdGVkV2ViZXhVc2Vycyh0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHVzZXJJZEluTWlncmF0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTE9DQUxfU1RPUkFHRS5VU0VSX0lOX01JR1JBVElPTik7XHJcbiAgICAgICAgaWYgKHVzZXJJZEluTWlncmF0aW9uICYmIHRoaXMudXNlcnNTZWFyY2hTZXJ2aWNlLm1pZ3JhdGVkVXNlcnMuZmlsdGVyKChtaWdyYXRlZFVzZXI6IGFueSkgPT4gbWlncmF0ZWRVc2VyLnVzZXJpZCA9PT0gdXNlcklkSW5NaWdyYXRpb24pKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShMT0NBTF9TVE9SQUdFLlVTRVJfSU5fTUlHUkFUSU9OKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ydW5TZWFyY2goKTtcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuZXJyb3IoJ1RoZSBkYXRhIGNhbiBub3QgYmUgcmVjZWl2ZWQnKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbk1vdmVVc2VyKHVzZXI6IExpc3RVc2VyLCBpbmRleDogbnVtYmVyLCB0eXBlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVXNlckxpc3RDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0aXRsZTogYE1vdmUgdXNlciAke3VzZXIudXNlcmlkfSB0byAke3RpdGxlfT9gLFxyXG4gICAgICAgIG1lc3NhZ2U6IGA8cD5CeSBtb3Zpbmcgb3V0IG9mIERlZGljYXRlZCBJbnN0YW5jZSwgeW91IG1heSBuZWVkIHRvIHJlYXNzaWduIGRpcmVjdG9yeSBudW1iZXJzIGFuZCBsb3NlIGNhbGxpbmcgc2VydmljZXMuPC9wPlxyXG48cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPmAsXHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdZZXMsIGNvbnRpbnVlJ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgJ1F1aWNrTW92ZSc6XHJcbiAgICAgICAgICAgIHRoaXMubW92ZVVzZXJUb01UKHVzZXIsIGluZGV4KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdNVCc6XHJcbiAgICAgICAgICAgIHRoaXMubW92ZVVzZXIgPSB1c2VyO1xyXG4gICAgICAgICAgICB0aGlzLm1vdmVVc2VySW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgdGhpcy5zaG93TW92ZVVzZXJXaXphcmQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnN3aXRjaFRvV2l6YXJkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnREknOlxyXG4gICAgICAgICAgICB0aGlzLm1vdmVVc2VyVG9ESSh1c2VyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcnVuTW92ZVVzZXJUb01UKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW92ZVVzZXIgJiYgdGhpcy5tb3ZlVXNlci5zaXRlSWQgJiYgdGhpcy5tb3ZlVXNlci51c2VyaWQpIHtcclxuICAgICAgdGhpcy51c2VyU2VydmljZS5tb3ZlVXNlclBlbmRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1vdmVJblByb2dyZXNzVXNlcklkID0gdGhpcy5tb3ZlVXNlci51c2VyaWQ7XHJcbiAgICAgIHRoaXMuc2V0U3RhdHVzVG9Vc2VyKHRoaXMubW92ZVVzZXJJbmRleCwgJ0luIFByb2dyZXNzJyk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKExPQ0FMX1NUT1JBR0UuVVNFUl9JTl9NSUdSQVRJT04sIHRoaXMubW92ZVVzZXIudXNlcmlkKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJTZXJ2aWNlLm1vdmVVc2VyVG9NVCh0aGlzLmN1c3RvbWVySWQsIHRoaXMubW92ZVVzZXIpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlck1vdmVkJC5uZXh0KHRydWUpO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVVc2VySW5NaWdyYXRpb25Qcm9ncmVzcygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzVG9Vc2VyKHRoaXMubW92ZVVzZXJJbmRleCwgJ01pZ3JhdGlvbiBFcnJvcicpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPGFwcC1sb2FkZXIgKm5nSWY9XCJkYXRhUGVuZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuPGRpdiAqbmdJZj1cIiFzaG93TW92ZVVzZXJXaXphcmRcIiBpZD1cInVzZXJzLWxpc3RcIj5cclxuICA8YXBwLXBhZ2luYXRpb25cclxuICAgIFtwYWdpbmF0aW9uXT1cInVzZXJzU2VhcmNoU2VydmljZS5nZXRQYWdpbmF0aW9uKClcIlxyXG4gICAgW3Nob3dQYWdlU2l6ZU9wdGlvbnNdPVwidHJ1ZVwiXHJcbiAgICAocGFnZU51bWJlckNoYW5nZUVtaXR0ZXIpPVwicGFnZU51bWJlckNoYW5nZUV2ZW50KCRldmVudClcIlxyXG4gICAgKHBhZ2VFbWl0dGVyKT1cInBhZ2VFdmVudCgkZXZlbnQpXCI+XHJcbiAgPC9hcHAtcGFnaW5hdGlvbj5cclxuXHJcbiAgPHRhYmxlIGNsYXNzPVwid2ViZXgtdGFibGVcIiBtYXQtdGFibGUgKm5nSWY9XCJ1c2Vycz8ubGVuZ3RoXCIgI3RhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXItaWNvblwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwid2ViZXgtdGFibGUtdGhcIj48L3RoPlxyXG4gICAgICA8dGQgY2xhc3M9XCJ1c2VyLXNpdGVcIiBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCB1c2VyXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQtdXNlci1yb3cnOiBtb3ZlVXNlclBlbmRpbmcgJiYgbW92ZUluUHJvZ3Jlc3NVc2VySWQgJiYgbW92ZUluUHJvZ3Jlc3NVc2VySWQgPT09IHVzZXI/LnVzZXJpZH1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uVXNlckNsaWNrKHVzZXIpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXdlYmV4LWJveFwiPjxzcGFuIGNsYXNzPVwiaWNvbi13ZWJleCBpY29uLXdlYmV4LXVzZXJcIj48L3NwYW4+PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJ3ZWJleC10YWJsZS10aFwiPkZpcnN0IC8gTGFzdCBOYW1lPC90aD5cclxuICAgICAgPHRkIGNsYXNzPVwidXNlci1zaXRlXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgdXNlclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkLXVzZXItcm93JzogbW92ZVVzZXJQZW5kaW5nICYmIG1vdmVJblByb2dyZXNzVXNlcklkICYmIG1vdmVJblByb2dyZXNzVXNlcklkID09PSB1c2VyPy51c2VyaWR9XCJcclxuICAgICAgICAgIChjbGljayk9XCJvblVzZXJDbGljayh1c2VyKVwiPiB7eyB1c2VyLmZpcnN0TmFtZSB9fSB7eyB1c2VyLmxhc3ROYW1lIH19XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImVtYWlsXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJ3ZWJleC10YWJsZS10aFwiPkVtYWlsPC90aD5cclxuICAgICAgPHRkIGNsYXNzPVwidXNlci1zaXRlXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZC11c2VyLXJvdyc6IG1vdmVVc2VyUGVuZGluZyAmJiBtb3ZlSW5Qcm9ncmVzc1VzZXJJZCAmJiBtb3ZlSW5Qcm9ncmVzc1VzZXJJZCA9PT0gdXNlcj8udXNlcmlkfVwiXHJcbiAgICAgICAgICBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCB1c2VyXCIgKGNsaWNrKT1cIm9uVXNlckNsaWNrKHVzZXIpXCI+XHJcbiAgICAgICAge3sgdXNlci5lbWFpbCB9fVxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGF0dXNcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cIndlYmV4LXRhYmxlLXRoXCI+U3RhdHVzPC90aD5cclxuICAgICAgPHRkIGNsYXNzPVwidXNlci1zaXRlXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgdXNlclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkLXVzZXItcm93JzogbW92ZVVzZXJQZW5kaW5nICYmIG1vdmVJblByb2dyZXNzVXNlcklkICYmIG1vdmVJblByb2dyZXNzVXNlcklkID09PSB1c2VyPy51c2VyaWR9XCJcclxuICAgICAgICAgIChjbGljayk9XCJvblVzZXJDbGljayh1c2VyKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi11c2VyLXN0YXR1cyBpY29uLXVzZXItc3RhdHVzLWFjdGl2ZVwiPjwvc3Bhbj57e3VzZXIuc3RhdHVzfX1cclxuICAgICAgPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwid2ViZXgtdGFibGUtdGhcIj48L3RoPlxyXG4gICAgICA8dGQgY2xhc3M9XCJ1c2VyLXNpdGVcIiBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCB1c2VyLCBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQtdXNlci1yb3cnOiBtb3ZlVXNlclBlbmRpbmcgJiYgbW92ZUluUHJvZ3Jlc3NVc2VySWQgJiYgbW92ZUluUHJvZ3Jlc3NVc2VySWQgPT09IHVzZXI/LnVzZXJpZH1cIj5cclxuICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgY2xhc3M9XCJmaWVsZC1zcGlubmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInVzZXIuc3RhdHVzID09PSAnSW4gUHJvZ3Jlc3MnXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIShtb3ZlVXNlclBlbmRpbmcgJiYgbW92ZUluUHJvZ3Jlc3NVc2VySWQgJiYgbW92ZUluUHJvZ3Jlc3NVc2VySWQgPT09IHVzZXI/LnVzZXJpZClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tYWN0aW9uLWRvdFwiIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYWN0aW9ucy1kb3RzXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1kb3RcIj4uPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tZG90XCI+Ljwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWRvdFwiPi48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cInRydWVcIj5SZXNlbmQgSW52aXRhdGlvbjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJ0cnVlXCI+UmVzZXQgUGFzc3dvcmQ8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhdXNlci5pc01pZ3JhdGVkXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25Nb3ZlVXNlcih1c2VyLCBpLCAnUXVpY2tNb3ZlJywgJ01UJylcIj5RdWljayBNb3ZlIFVzZXIgdG8gTVQ8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhdXNlci5pc01pZ3JhdGVkXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25Nb3ZlVXNlcih1c2VyLCBpLCAnTVQnLCAnTVQnKVwiPk1vdmUgVXNlciB0byBNVDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInVzZXIuaXNNaWdyYXRlZFwiIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uTW92ZVVzZXIodXNlciwgaSwgJ0RJJywgJ0RJJylcIj5SZXZlcnQgVXNlciB0byBVQ00vREk8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwidHJ1ZVwiPkRlYWN0aXZhdGUgVXNlcjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJ0cnVlXCI+RGVsZXRlIFVzZXI8L2J1dHRvbj5cclxuICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyb2xlXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJ3ZWJleC10YWJsZS10aFwiPkFkbWluaXN0cmF0b3IgUm9sZTwvdGg+XHJcbiAgICAgIDx0ZCBjbGFzcz1cInVzZXItc2l0ZVwiIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHVzZXJcIiAoY2xpY2spPVwib25Vc2VyQ2xpY2sodXNlcilcIj57eyB1c2VyLnJvbGVOYW1lIHx8ICcnIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC90cj5cclxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XHJcbiAgPC90YWJsZT5cclxuPC9kaXY+XHJcblxyXG48YXBwLW1vdmUtdXNlci13aXphcmQgKm5nSWY9XCJzaG93TW92ZVVzZXJXaXphcmRcIiBbdXNlcl09XCJtb3ZlVXNlclwiIChkb25lKT1cImNsb3NlTW92ZVVzZXJXaXphcmQodHJ1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbWVySWRdPVwiY3VzdG9tZXJJZFwiIChydW5Nb3ZlVXNlcik9XCJydW5Nb3ZlVXNlclRvTVQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VNb3ZlVXNlcldpemFyZCk9XCJjbG9zZU1vdmVVc2VyV2l6YXJkKGZhbHNlKVwiPjwvYXBwLW1vdmUtdXNlci13aXphcmQ+XHJcbiJdfQ==
@@ -1,92 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { UsersListComponent } from './users-list.component';
3
- import { FormsModule } from '@angular/forms';
4
- import { ReactiveFormsModule } from '@angular/forms';
5
- import { BrowserModule } from '@angular/platform-browser';
6
- import { MaterialModule } from './material.module';
7
- import { PaginationComponent } from './utils/pagination/pagination.component';
8
- import { UserService } from './services/user.service';
9
- import { APIService } from './services/api.service';
10
- import { EventsCommunicationService } from './services/events-communication.service';
11
- import { UsersSearchService } from './services/users-search.service';
12
- import { NotificationService } from './services/notification.service';
13
- import { RemoveKynFromIBMService } from './services/removeKynFromIBM.service';
14
- import { HttpClientModule } from '@angular/common/http';
15
- import { ApiWebexService } from './services/api-webex.service';
16
- import { AppLoaderComponent } from './utils/app-loader/app-loader';
17
- import { MoveUserWizardComponent } from './move-user-wizard/move-user-wizard.component';
18
- import { MoveUserStepperComponent } from './move-user-wizard/move-user-stepper/move-user-stepper.component';
19
- import { UserListConfirmDialogComponent } from './user-list-confirm-dialog/user-list-confirm-dialog.component';
20
- import { DnsService } from './services/dns.service';
21
- import { SiteSettingsService } from './services/site-settings.service';
22
- import { MoveUserService } from './services/move-user.service';
23
- import { DevicesMoveUserWizardTabComponent } from './move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component';
24
- import { DeviceMoveUserWizardComponent } from './move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component';
25
- import * as i0 from "@angular/core";
26
- export class UsersListModule {
27
- }
28
- UsersListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
- UsersListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, declarations: [UsersListComponent,
30
- PaginationComponent,
31
- AppLoaderComponent,
32
- MoveUserWizardComponent,
33
- MoveUserStepperComponent,
34
- UserListConfirmDialogComponent,
35
- DevicesMoveUserWizardTabComponent,
36
- DeviceMoveUserWizardComponent], imports: [BrowserModule,
37
- FormsModule,
38
- ReactiveFormsModule,
39
- HttpClientModule,
40
- MaterialModule], exports: [UsersListComponent] });
41
- UsersListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, providers: [
42
- UserService,
43
- APIService,
44
- EventsCommunicationService,
45
- UsersSearchService,
46
- NotificationService,
47
- RemoveKynFromIBMService,
48
- ApiWebexService,
49
- DnsService,
50
- SiteSettingsService,
51
- MoveUserService
52
- ], imports: [BrowserModule,
53
- FormsModule,
54
- ReactiveFormsModule,
55
- HttpClientModule,
56
- MaterialModule] });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, decorators: [{
58
- type: NgModule,
59
- args: [{
60
- declarations: [
61
- UsersListComponent,
62
- PaginationComponent,
63
- AppLoaderComponent,
64
- MoveUserWizardComponent,
65
- MoveUserStepperComponent,
66
- UserListConfirmDialogComponent,
67
- DevicesMoveUserWizardTabComponent,
68
- DeviceMoveUserWizardComponent
69
- ],
70
- imports: [
71
- BrowserModule,
72
- FormsModule,
73
- ReactiveFormsModule,
74
- HttpClientModule,
75
- MaterialModule
76
- ],
77
- providers: [
78
- UserService,
79
- APIService,
80
- EventsCommunicationService,
81
- UsersSearchService,
82
- NotificationService,
83
- RemoveKynFromIBMService,
84
- ApiWebexService,
85
- DnsService,
86
- SiteSettingsService,
87
- MoveUserService
88
- ],
89
- exports: [UsersListComponent]
90
- }]
91
- }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvdXNlcnMtbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFDTCxpQ0FBaUMsRUFDbEMsTUFBTSxrR0FBa0csQ0FBQztBQUMxRyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzlCLE1BQU0seUZBQXlGLENBQUM7O0FBbUNqRyxNQUFNLE9BQU8sZUFBZTs7NkdBQWYsZUFBZTs4R0FBZixlQUFlLGlCQTlCeEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtRQUN4Qiw4QkFBOEI7UUFDOUIsaUNBQWlDO1FBQ2pDLDZCQUE2QixhQUc3QixhQUFhO1FBQ2IsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsY0FBYyxhQWNOLGtCQUFrQjs4R0FFakIsZUFBZSxhQWRmO1FBQ1QsV0FBVztRQUNYLFVBQVU7UUFDViwwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsZUFBZTtRQUNmLFVBQVU7UUFDVixtQkFBbUI7UUFDbkIsZUFBZTtLQUNoQixZQWpCQyxhQUFhO1FBQ2IsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsY0FBYzs0RkFnQkwsZUFBZTtrQkFoQzNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4Qiw4QkFBOEI7d0JBQzlCLGlDQUFpQzt3QkFDakMsNkJBQTZCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3FCQUNmO29CQUNELFNBQVMsRUFBRTt3QkFDVCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLFVBQVU7d0JBQ1YsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVc2Vyc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3VzZXJzLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3V0aWxzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFdmVudHNDb21tdW5pY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnRzLWNvbW11bmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJzU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlcnMtc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFJlbW92ZUt5bkZyb21JQk1TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZW1vdmVLeW5Gcm9tSUJNLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBcGlXZWJleFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwaS13ZWJleC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi91dGlscy9hcHAtbG9hZGVyL2FwcC1sb2FkZXInO1xyXG5pbXBvcnQgeyBNb3ZlVXNlcldpemFyZENvbXBvbmVudCB9IGZyb20gJy4vbW92ZS11c2VyLXdpemFyZC9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vdmVVc2VyU3RlcHBlckNvbXBvbmVudCB9IGZyb20gJy4vbW92ZS11c2VyLXdpemFyZC9tb3ZlLXVzZXItc3RlcHBlci9tb3ZlLXVzZXItc3RlcHBlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyTGlzdENvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3VzZXItbGlzdC1jb25maXJtLWRpYWxvZy91c2VyLWxpc3QtY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG5zU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaXRlU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zaXRlLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb3ZlVXNlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21vdmUtdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBEZXZpY2VzTW92ZVVzZXJXaXphcmRUYWJDb21wb25lbnRcclxufSBmcm9tICcuL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvZGV2aWNlLW1vdmUtdXNlci10YWIvZGV2aWNlcy1tb3ZlLXVzZXItd2l6YXJkLXRhYi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIERldmljZU1vdmVVc2VyV2l6YXJkQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9tb3ZlLXVzZXItd2l6YXJkL21vdmUtdXNlci1zdGVwcGVyL2RldmljZS1tb3ZlLXVzZXIvZGV2aWNlLW1vdmUtdXNlci13aXphcmQuY29tcG9uZW50JztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVXNlcnNMaXN0Q29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIEFwcExvYWRlckNvbXBvbmVudCxcclxuICAgIE1vdmVVc2VyV2l6YXJkQ29tcG9uZW50LFxyXG4gICAgTW92ZVVzZXJTdGVwcGVyQ29tcG9uZW50LFxyXG4gICAgVXNlckxpc3RDb25maXJtRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgRGV2aWNlc01vdmVVc2VyV2l6YXJkVGFiQ29tcG9uZW50LFxyXG4gICAgRGV2aWNlTW92ZVVzZXJXaXphcmRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVXNlclNlcnZpY2UsXHJcbiAgICBBUElTZXJ2aWNlLFxyXG4gICAgRXZlbnRzQ29tbXVuaWNhdGlvblNlcnZpY2UsXHJcbiAgICBVc2Vyc1NlYXJjaFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgUmVtb3ZlS3luRnJvbUlCTVNlcnZpY2UsXHJcbiAgICBBcGlXZWJleFNlcnZpY2UsXHJcbiAgICBEbnNTZXJ2aWNlLFxyXG4gICAgU2l0ZVNldHRpbmdzU2VydmljZSxcclxuICAgIE1vdmVVc2VyU2VydmljZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1VzZXJzTGlzdENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJzTGlzdE1vZHVsZSB7IH1cclxuIl19
@@ -1,14 +0,0 @@
1
- import { Component, ViewEncapsulation } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/material/progress-spinner";
4
- export class AppLoaderComponent {
5
- constructor() {
6
- }
7
- }
8
- AppLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- AppLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AppLoaderComponent, selector: "app-loader", ngImport: i0, template: "<div class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"120\"></mat-progress-spinner>\r\n</div>\r\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}\n"], dependencies: [{ kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, decorators: [{
11
- type: Component,
12
- args: [{ selector: 'app-loader', encapsulation: ViewEncapsulation.None, template: "<div class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"120\"></mat-progress-spinner>\r\n</div>\r\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}\n"] }]
13
- }], ctorParameters: function () { return []; } });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy91dGlscy9hcHAtbG9hZGVyL2FwcC1sb2FkZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvdXRpbHMvYXBwLWxvYWRlci9hcHAtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVE3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCO0lBQ0EsQ0FBQzs7Z0hBRlUsa0JBQWtCO29HQUFsQixrQkFBa0Isa0RDUi9CLGdMQU1BOzRGREVhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHAtbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcExvYWRlckNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmxheVwiPlxyXG4gIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxyXG4gICAgY2xhc3M9XCJwYWdlLXNwaW5uZXJcIlxyXG4gICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgW2RpYW1ldGVyXT1cIjEyMFwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,32 +0,0 @@
1
- export const getSavableData = (model, exclude) => {
2
- let result = Object.keys(model);
3
- if (exclude && exclude.length) {
4
- result = result.filter(key => !exclude.some(item => item === key));
5
- }
6
- return result.reduce((result, key) => {
7
- if (model[key] instanceof Array && model[key].length && model[key][0].getSavableData) {
8
- result[key] = model[key].map((item) => item.getSavableData());
9
- }
10
- else if (model[key] instanceof Object && model[key].getSavableData) {
11
- result[key] = model[key].getSavableData();
12
- }
13
- else {
14
- result[key] = model[key];
15
- }
16
- return result;
17
- }, {});
18
- };
19
- export const filterOptions = (options, query, shownValue, field) => {
20
- if (!options) {
21
- return [];
22
- }
23
- if (!query) {
24
- return options;
25
- }
26
- return options.filter(option => {
27
- return (field ? String(option[field]).toLowerCase().includes(String(query).toLowerCase()) :
28
- String(option).toLowerCase().includes(String(query).toLowerCase()) ||
29
- (shownValue && shownValue === option));
30
- });
31
- };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy91dGlscy9jb21tb24tZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxPQUF1QixFQUFFLEVBQUU7SUFDcEUsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQzdCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDcEU7SUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDbkMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRTtZQUNuRixNQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7U0FDN0U7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRTtZQUNuRSxNQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3BEO2FBQU07WUFDSixNQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBYyxFQUFFLEtBQWEsRUFBRSxVQUFtQixFQUFFLEtBQWMsRUFBRSxFQUFFO0lBQ2xHLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzdCLE9BQU8sQ0FDTCxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEUsQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUN4QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZ2V0U2F2YWJsZURhdGEgPSAobW9kZWw6IGFueSwgZXhjbHVkZT86IEFycmF5PHN0cmluZz4pID0+IHtcclxuICBsZXQgcmVzdWx0ID0gT2JqZWN0LmtleXMobW9kZWwpO1xyXG4gIGlmIChleGNsdWRlICYmIGV4Y2x1ZGUubGVuZ3RoKSB7XHJcbiAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKGtleSA9PiAhZXhjbHVkZS5zb21lKGl0ZW0gPT4gaXRlbSA9PT0ga2V5KSk7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xyXG4gICAgaWYgKG1vZGVsW2tleV0gaW5zdGFuY2VvZiBBcnJheSAmJiBtb2RlbFtrZXldLmxlbmd0aCAmJiBtb2RlbFtrZXldWzBdLmdldFNhdmFibGVEYXRhKSB7XHJcbiAgICAgIChyZXN1bHQgYXMgYW55KVtrZXldID0gbW9kZWxba2V5XS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5nZXRTYXZhYmxlRGF0YSgpKTtcclxuICAgIH0gZWxzZSBpZiAobW9kZWxba2V5XSBpbnN0YW5jZW9mIE9iamVjdCAmJiBtb2RlbFtrZXldLmdldFNhdmFibGVEYXRhKSB7XHJcbiAgICAgIChyZXN1bHQgYXMgYW55KVtrZXldID0gbW9kZWxba2V5XS5nZXRTYXZhYmxlRGF0YSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgKHJlc3VsdCBhcyBhbnkpW2tleV0gPSBtb2RlbFtrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9LCB7fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZmlsdGVyT3B0aW9ucyA9IChvcHRpb25zOiBhbnlbXSwgcXVlcnk6IHN0cmluZywgc2hvd25WYWx1ZT86IHN0cmluZywgZmllbGQ/OiBzdHJpbmcpID0+IHtcclxuICBpZiAoIW9wdGlvbnMpIHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgaWYgKCFxdWVyeSkge1xyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG4gIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZmllbGQgPyBTdHJpbmcob3B0aW9uW2ZpZWxkXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTdHJpbmcocXVlcnkpLnRvTG93ZXJDYXNlKCkpIDpcclxuICAgICAgICBTdHJpbmcob3B0aW9uKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFN0cmluZyhxdWVyeSkudG9Mb3dlckNhc2UoKSkgfHxcclxuICAgICAgICAoc2hvd25WYWx1ZSAmJiBzaG93blZhbHVlID09PSBvcHRpb24pXHJcbiAgICApO1xyXG4gIH0pO1xyXG59O1xyXG4iXX0=