@tuki-io/tuki-widgets 0.0.43 → 0.0.45

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 (473) hide show
  1. package/README.md +9 -10
  2. package/esm2020/lib/widgets.component.mjs +22 -0
  3. package/esm2020/lib/widgets.module.mjs +21 -0
  4. package/esm2020/lib/widgets.service.mjs +14 -0
  5. package/esm2020/public-api.mjs +7 -0
  6. package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
  7. package/esm2020/user-device-manage/public-api.mjs +9 -0
  8. package/esm2020/user-device-manage/src/app.constants.mjs +95 -0
  9. package/esm2020/user-device-manage/src/classes/device.mjs +85 -0
  10. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -0
  11. package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -0
  12. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -0
  13. package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -0
  14. package/esm2020/user-device-manage/src/classes/line.mjs +18 -0
  15. package/esm2020/user-device-manage/src/classes/notification.mjs +32 -0
  16. package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -0
  17. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -0
  18. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -0
  19. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -0
  20. package/esm2020/user-device-manage/src/classes/types.mjs +24 -0
  21. package/esm2020/user-device-manage/src/common-functions.mjs +19 -0
  22. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -0
  23. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -0
  24. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -0
  25. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +64 -0
  26. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -0
  27. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -0
  28. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +335 -0
  29. package/esm2020/user-device-manage/src/environments/environment.mjs +11 -0
  30. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -0
  31. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  32. package/esm2020/user-device-manage/src/material.module.mjs +192 -0
  33. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -0
  34. package/esm2020/user-device-manage/src/services/api.service.mjs +79 -0
  35. package/esm2020/user-device-manage/src/services/device.service.mjs +83 -0
  36. package/esm2020/user-device-manage/src/services/dns.service.mjs +104 -0
  37. package/esm2020/user-device-manage/src/services/line.service.mjs +76 -0
  38. package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -0
  39. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  40. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -0
  41. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -0
  42. package/esm2020/user-device-manage/src/services/user.service.mjs +243 -0
  43. package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -0
  44. package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -0
  45. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +107 -0
  46. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -0
  47. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +5 -0
  48. package/esm2020/user-manage/public-api.mjs +7 -0
  49. package/esm2020/user-manage/src/app.constants.mjs +50 -0
  50. package/esm2020/user-manage/src/classes/device.mjs +37 -0
  51. package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -0
  52. package/esm2020/user-manage/src/classes/line-association.mjs +110 -0
  53. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -0
  54. package/esm2020/user-manage/src/classes/line-directory.mjs +27 -0
  55. package/esm2020/user-manage/src/classes/line.mjs +18 -0
  56. package/esm2020/user-manage/src/classes/notification.mjs +32 -0
  57. package/esm2020/user-manage/src/classes/pagination.mjs +8 -0
  58. package/esm2020/user-manage/src/classes/recording-options.mjs +7 -0
  59. package/esm2020/user-manage/src/classes/simplified-user.mjs +109 -0
  60. package/esm2020/user-manage/src/classes/table-data.mjs +2 -0
  61. package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -0
  62. package/esm2020/user-manage/src/classes/user-list.mjs +10 -0
  63. package/esm2020/user-manage/src/common-functions.mjs +19 -0
  64. package/esm2020/user-manage/src/device-list/device-list.component.mjs +24 -0
  65. package/esm2020/user-manage/src/environments/environment.mjs +11 -0
  66. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -0
  67. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  68. package/esm2020/user-manage/src/material.module.mjs +188 -0
  69. package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -0
  70. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -0
  71. package/esm2020/user-manage/src/services/api.service.mjs +79 -0
  72. package/esm2020/user-manage/src/services/dns.service.mjs +110 -0
  73. package/esm2020/user-manage/src/services/line.service.mjs +34 -0
  74. package/esm2020/user-manage/src/services/notification.service.mjs +62 -0
  75. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  76. package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -0
  77. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -0
  78. package/esm2020/user-manage/src/services/user.service.mjs +207 -0
  79. package/esm2020/user-manage/src/services/users-search.service.mjs +49 -0
  80. package/esm2020/user-manage/src/services/utils.service.mjs +73 -0
  81. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -0
  82. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +78 -0
  83. package/esm2020/user-manage/src/user-info/user-info.component.mjs +20 -0
  84. package/esm2020/user-manage/src/user-manage-widget.component.mjs +208 -0
  85. package/esm2020/user-manage/src/user-manage.module.mjs +99 -0
  86. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -0
  87. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -0
  88. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +5 -0
  89. package/esm2020/users-list/public-api.mjs +9 -0
  90. package/esm2020/users-list/src/app.constants.mjs +50 -0
  91. package/esm2020/users-list/src/classes/device.mjs +7 -0
  92. package/esm2020/users-list/src/classes/line.mjs +18 -0
  93. package/esm2020/users-list/src/classes/notification.mjs +31 -0
  94. package/esm2020/users-list/src/classes/pagination.mjs +8 -0
  95. package/esm2020/users-list/src/classes/simlified-user.mjs +50 -0
  96. package/esm2020/users-list/src/classes/table-data.mjs +2 -0
  97. package/esm2020/users-list/src/classes/user-list.mjs +13 -0
  98. package/esm2020/users-list/src/material.module.mjs +209 -0
  99. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +111 -0
  100. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +38 -0
  101. package/esm2020/users-list/src/services/api-webex.service.mjs +18 -0
  102. package/esm2020/users-list/src/services/api.service.mjs +78 -0
  103. package/esm2020/users-list/src/services/dns.service.mjs +120 -0
  104. package/esm2020/users-list/src/services/events-communication.service.mjs +14 -0
  105. package/esm2020/users-list/src/services/notification.service.mjs +62 -0
  106. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -0
  107. package/esm2020/users-list/src/services/user.service.mjs +142 -0
  108. package/esm2020/users-list/src/services/users-search.service.mjs +120 -0
  109. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -0
  110. package/esm2020/users-list/src/users-list.component.mjs +287 -0
  111. package/esm2020/users-list/src/users-list.module.mjs +80 -0
  112. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -0
  113. package/esm2020/users-list/src/utils/common-functions.mjs +19 -0
  114. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -0
  115. package/esm2020/users-list/src/utils/utils.service.mjs +73 -0
  116. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +5 -0
  117. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3402 -0
  118. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  119. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2123 -0
  120. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  121. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +1563 -0
  122. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  123. package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
  124. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
  125. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3364 -0
  126. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  127. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2106 -0
  128. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  129. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +1550 -0
  130. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  131. package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
  132. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
  133. package/index.d.ts +5 -0
  134. package/lib/widgets.component.d.ts +8 -0
  135. package/lib/widgets.module.d.ts +7 -0
  136. package/lib/widgets.service.d.ts +6 -0
  137. package/package.json +57 -46
  138. package/{projects/tuki/widgets/src/public-api.ts → public-api.d.ts} +0 -4
  139. package/user-device-manage/index.d.ts +5 -0
  140. package/user-device-manage/src/app.constants.d.ts +74 -0
  141. package/user-device-manage/src/classes/device.d.ts +233 -0
  142. package/user-device-manage/src/classes/line-association-interface.d.ts +45 -0
  143. package/user-device-manage/src/classes/line-association.d.ts +62 -0
  144. package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -0
  145. package/user-device-manage/src/classes/line-directory.d.ts +15 -0
  146. package/user-device-manage/src/classes/line.d.ts +140 -0
  147. package/user-device-manage/src/classes/notification.d.ts +18 -0
  148. package/user-device-manage/src/classes/recording-options.d.ts +5 -0
  149. package/user-device-manage/src/classes/simplified-user.d.ts +52 -0
  150. package/user-device-manage/src/classes/site-defaults.d.ts +146 -0
  151. package/user-device-manage/src/classes/translation-pattern.d.ts +19 -0
  152. package/user-device-manage/src/classes/types.d.ts +19 -0
  153. package/user-device-manage/src/common-functions.d.ts +1 -0
  154. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -0
  155. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -0
  156. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -0
  157. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +24 -0
  158. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -0
  159. package/user-device-manage/src/device-list/device-list.component.d.ts +11 -0
  160. package/user-device-manage/src/device-manage-widget.component.d.ts +71 -0
  161. package/user-device-manage/src/environments/environment.d.ts +9 -0
  162. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  163. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  164. package/user-device-manage/src/material.module.d.ts +29 -0
  165. package/user-device-manage/src/notifications/notification.component.d.ts +19 -0
  166. package/user-device-manage/src/services/api.service.d.ts +20 -0
  167. package/user-device-manage/src/services/device.service.d.ts +21 -0
  168. package/user-device-manage/src/services/dns.service.d.ts +14 -0
  169. package/user-device-manage/src/services/line.service.d.ts +33 -0
  170. package/user-device-manage/src/services/notification.service.d.ts +18 -0
  171. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  172. package/user-device-manage/src/services/site-settings.service.d.ts +25 -0
  173. package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -0
  174. package/user-device-manage/src/services/user.service.d.ts +51 -0
  175. package/user-device-manage/src/services/utils.service.d.ts +10 -0
  176. package/user-device-manage/src/services/validation.service.d.ts +165 -0
  177. package/user-device-manage/src/user-device-manage.module.d.ts +22 -0
  178. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  179. package/user-manage/index.d.ts +5 -0
  180. package/user-manage/src/app.constants.d.ts +29 -0
  181. package/user-manage/src/classes/device.d.ts +203 -0
  182. package/user-manage/src/classes/line-association-interface.d.ts +40 -0
  183. package/user-manage/src/classes/line-association.d.ts +55 -0
  184. package/user-manage/src/classes/line-call-info-display.d.ts +11 -0
  185. package/user-manage/src/classes/line-directory.d.ts +16 -0
  186. package/user-manage/src/classes/line.d.ts +140 -0
  187. package/user-manage/src/classes/notification.d.ts +18 -0
  188. package/user-manage/src/classes/pagination.d.ts +13 -0
  189. package/user-manage/src/classes/recording-options.d.ts +5 -0
  190. package/user-manage/src/classes/simplified-user.d.ts +50 -0
  191. package/user-manage/src/classes/table-data.d.ts +5 -0
  192. package/user-manage/src/classes/translation-pattern.d.ts +18 -0
  193. package/user-manage/src/classes/user-list.d.ts +34 -0
  194. package/user-manage/src/common-functions.d.ts +1 -0
  195. package/user-manage/src/device-list/device-list.component.d.ts +11 -0
  196. package/user-manage/src/environments/environment.d.ts +9 -0
  197. package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  198. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  199. package/user-manage/src/material.module.d.ts +28 -0
  200. package/user-manage/src/notifications/notification.component.d.ts +19 -0
  201. package/user-manage/src/removeKynFromIBM.service.d.ts +8 -0
  202. package/user-manage/src/services/api.service.d.ts +21 -0
  203. package/user-manage/src/services/dns.service.d.ts +14 -0
  204. package/user-manage/src/services/line.service.d.ts +17 -0
  205. package/user-manage/src/services/notification.service.d.ts +18 -0
  206. package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  207. package/user-manage/src/services/site-settings.service.d.ts +9 -0
  208. package/user-manage/src/services/sorting-utils.service.d.ts +26 -0
  209. package/user-manage/src/services/user.service.d.ts +43 -0
  210. package/user-manage/src/services/users-search.service.d.ts +25 -0
  211. package/user-manage/src/services/utils.service.d.ts +9 -0
  212. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -0
  213. package/user-manage/src/user-calling/user-calling.component.d.ts +30 -0
  214. package/user-manage/src/user-info/user-info.component.d.ts +9 -0
  215. package/user-manage/src/user-manage-widget.component.d.ts +45 -0
  216. package/user-manage/src/user-manage.module.d.ts +21 -0
  217. package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  218. package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -0
  219. package/users-list/index.d.ts +5 -0
  220. package/users-list/src/app.constants.d.ts +32 -0
  221. package/users-list/src/classes/device.d.ts +224 -0
  222. package/users-list/src/classes/line.d.ts +140 -0
  223. package/users-list/src/classes/notification.d.ts +18 -0
  224. package/users-list/src/classes/pagination.d.ts +13 -0
  225. package/users-list/src/classes/simlified-user.d.ts +25 -0
  226. package/users-list/src/classes/table-data.d.ts +5 -0
  227. package/users-list/src/classes/user-list.d.ts +36 -0
  228. package/users-list/src/material.module.d.ts +31 -0
  229. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +31 -0
  230. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +17 -0
  231. package/users-list/src/services/api-webex.service.d.ts +8 -0
  232. package/users-list/src/services/api.service.d.ts +21 -0
  233. package/users-list/src/services/dns.service.d.ts +18 -0
  234. package/users-list/src/services/events-communication.service.d.ts +8 -0
  235. package/users-list/src/services/notification.service.d.ts +18 -0
  236. package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -0
  237. package/users-list/src/services/user.service.d.ts +35 -0
  238. package/users-list/src/services/users-search.service.d.ts +34 -0
  239. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -0
  240. package/users-list/src/users-list.component.d.ts +60 -0
  241. package/users-list/src/users-list.module.d.ts +16 -0
  242. package/users-list/src/utils/app-loader/app-loader.d.ts +6 -0
  243. package/users-list/src/utils/common-functions.d.ts +1 -0
  244. package/users-list/src/utils/pagination/pagination.component.d.ts +18 -0
  245. package/users-list/src/utils/utils.service.d.ts +9 -0
  246. package/.editorconfig +0 -16
  247. package/.vscode/extensions.json +0 -4
  248. package/.vscode/launch.json +0 -20
  249. package/.vscode/tasks.json +0 -42
  250. package/angular.json +0 -41
  251. package/projects/tuki/widgets/README.md +0 -24
  252. package/projects/tuki/widgets/karma.conf.js +0 -44
  253. package/projects/tuki/widgets/ng-package.json +0 -7
  254. package/projects/tuki/widgets/package.json +0 -13
  255. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +0 -23
  256. package/projects/tuki/widgets/src/lib/widgets.component.ts +0 -20
  257. package/projects/tuki/widgets/src/lib/widgets.module.ts +0 -16
  258. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +0 -16
  259. package/projects/tuki/widgets/src/lib/widgets.service.ts +0 -9
  260. package/projects/tuki/widgets/src/test.ts +0 -27
  261. package/projects/tuki/widgets/styles.scss +0 -572
  262. package/projects/tuki/widgets/tsconfig.lib.json +0 -36
  263. package/projects/tuki/widgets/tsconfig.lib.prod.json +0 -10
  264. package/projects/tuki/widgets/tsconfig.spec.json +0 -17
  265. package/projects/tuki/widgets/user-device-manage/ng-package.json +0 -7
  266. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +0 -96
  267. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
  268. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
  269. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
  270. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
  271. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  272. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +0 -1
  273. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  274. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +0 -292
  275. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +0 -50
  276. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +0 -177
  277. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +0 -21
  278. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +0 -41
  279. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +0 -144
  280. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +0 -40
  281. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +0 -6
  282. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +0 -169
  283. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +0 -167
  284. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +0 -50
  285. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +0 -19
  286. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +0 -225
  287. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +0 -8
  288. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +0 -16
  289. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
  290. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
  291. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
  292. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
  293. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
  294. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
  295. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
  296. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
  297. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
  298. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -6
  299. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -4
  300. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -63
  301. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
  302. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
  303. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
  304. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +0 -27
  305. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +0 -131
  306. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +0 -25
  307. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +0 -209
  308. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +0 -502
  309. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +0 -354
  310. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +0 -9
  311. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +0 -10
  312. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
  313. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  314. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  315. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  316. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +0 -87
  317. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +0 -33
  318. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +0 -84
  319. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +0 -46
  320. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
  321. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +0 -87
  322. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +0 -17
  323. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +0 -95
  324. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +0 -111
  325. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +0 -89
  326. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +0 -68
  327. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
  328. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +0 -82
  329. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +0 -203
  330. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +0 -283
  331. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +0 -87
  332. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +0 -829
  333. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +0 -90
  334. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +0 -231
  335. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +0 -32
  336. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +0 -110
  337. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +0 -30
  338. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +0 -73
  339. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -6
  340. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  341. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
  342. package/projects/tuki/widgets/user-manage/ng-package.json +0 -7
  343. package/projects/tuki/widgets/user-manage/src/app.constants.ts +0 -50
  344. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +0 -5
  345. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +0 -5
  346. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +0 -5
  347. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  348. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +0 -1
  349. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  350. package/projects/tuki/widgets/user-manage/src/classes/device.ts +0 -232
  351. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +0 -43
  352. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +0 -161
  353. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +0 -21
  354. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +0 -42
  355. package/projects/tuki/widgets/user-manage/src/classes/line.ts +0 -144
  356. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +0 -39
  357. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +0 -18
  358. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +0 -6
  359. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +0 -165
  360. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +0 -6
  361. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +0 -49
  362. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +0 -225
  363. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +0 -42
  364. package/projects/tuki/widgets/user-manage/src/classes/user.ts +0 -8
  365. package/projects/tuki/widgets/user-manage/src/common-functions.ts +0 -16
  366. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +0 -27
  367. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +0 -131
  368. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +0 -25
  369. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +0 -9
  370. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +0 -10
  371. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +0 -35
  372. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  373. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  374. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  375. package/projects/tuki/widgets/user-manage/src/material.module.ts +0 -85
  376. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +0 -33
  377. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +0 -84
  378. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +0 -46
  379. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +0 -25
  380. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +0 -90
  381. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +0 -116
  382. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +0 -31
  383. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +0 -68
  384. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
  385. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +0 -35
  386. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +0 -203
  387. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +0 -242
  388. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +0 -58
  389. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +0 -71
  390. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +0 -90
  391. package/projects/tuki/widgets/user-manage/src/styles/form.scss +0 -231
  392. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +0 -32
  393. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +0 -110
  394. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +0 -30
  395. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
  396. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -429
  397. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
  398. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +0 -32
  399. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +0 -444
  400. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +0 -89
  401. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +0 -68
  402. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +0 -29
  403. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +0 -64
  404. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +0 -19
  405. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +0 -290
  406. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +0 -463
  407. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +0 -212
  408. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +0 -63
  409. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +0 -6
  410. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  411. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +0 -13
  412. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +0 -26
  413. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +0 -41
  414. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +0 -41
  415. package/projects/tuki/widgets/users-list/ng-package.json +0 -6
  416. package/projects/tuki/widgets/users-list/src/app.constants.ts +0 -50
  417. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +0 -3
  418. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +0 -1
  419. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
  420. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +0 -3
  421. package/projects/tuki/widgets/users-list/src/classes/device.ts +0 -225
  422. package/projects/tuki/widgets/users-list/src/classes/line.ts +0 -144
  423. package/projects/tuki/widgets/users-list/src/classes/notification.ts +0 -38
  424. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +0 -18
  425. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +0 -74
  426. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +0 -6
  427. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +0 -225
  428. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +0 -47
  429. package/projects/tuki/widgets/users-list/src/classes/user.ts +0 -8
  430. package/projects/tuki/widgets/users-list/src/material.module.ts +0 -94
  431. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -95
  432. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -182
  433. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -110
  434. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
  435. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
  436. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
  437. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +0 -14
  438. package/projects/tuki/widgets/users-list/src/services/api.service.ts +0 -90
  439. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +0 -128
  440. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +0 -11
  441. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +0 -68
  442. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +0 -25
  443. package/projects/tuki/widgets/users-list/src/services/user.service.ts +0 -159
  444. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +0 -135
  445. package/projects/tuki/widgets/users-list/src/styles/styles.scss +0 -572
  446. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
  447. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
  448. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
  449. package/projects/tuki/widgets/users-list/src/users-list.component.css +0 -4
  450. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +0 -1
  451. package/projects/tuki/widgets/users-list/src/users-list.component.html +0 -85
  452. package/projects/tuki/widgets/users-list/src/users-list.component.scss +0 -572
  453. package/projects/tuki/widgets/users-list/src/users-list.component.ts +0 -312
  454. package/projects/tuki/widgets/users-list/src/users-list.module.ts +0 -51
  455. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +0 -11
  456. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
  457. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +0 -6
  458. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +0 -11
  459. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +0 -13
  460. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +0 -16
  461. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +0 -33
  462. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +0 -84
  463. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +0 -46
  464. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +0 -45
  465. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +0 -1
  466. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +0 -26
  467. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +0 -41
  468. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +0 -41
  469. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +0 -71
  470. package/tsconfig.json +0 -46
  471. /package/{projects/tuki/widgets/user-device-manage/public-api.ts → user-device-manage/public-api.d.ts} +0 -0
  472. /package/{projects/tuki/widgets/user-manage/public-api.ts → user-manage/public-api.d.ts} +0 -0
  473. /package/{projects/tuki/widgets/users-list/public-api.ts → users-list/public-api.d.ts} +0 -0
@@ -0,0 +1,111 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/dns.service";
4
+ import * as i2 from "../../services/user.service";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/forms";
7
+ import * as i5 from "@angular/material/button";
8
+ import * as i6 from "@angular/material/progress-spinner";
9
+ import * as i7 from "@angular/material/form-field";
10
+ import * as i8 from "@angular/material/input";
11
+ import * as i9 from "@angular/material/core";
12
+ import * as i10 from "@angular/material/stepper";
13
+ import * as i11 from "@angular/material/checkbox";
14
+ import * as i12 from "@angular/material/select";
15
+ import * as i13 from "@angular/material/radio";
16
+ import * as i14 from "../../utils/app-loader/app-loader";
17
+ // for test only
18
+ const LOCATION = 'Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzE2YjY0NjljLTBjZmQtNDJjMS1iOWJjLTUyN2FlZTNhN2RlOQ';
19
+ export class MoveUserStepperComponent {
20
+ get moveUserPending() {
21
+ return this.userService.moveUserPending;
22
+ }
23
+ get currentNumber() {
24
+ if (this.user?.devices?.length && this.user.devices[0]?.lineAssociations && this.user.devices[0].lineAssociations[0]) {
25
+ return this.user.devices[0].lineAssociations[0].directoryNumber.directoryNumber;
26
+ }
27
+ return '';
28
+ }
29
+ constructor(dnsService, userService) {
30
+ this.dnsService = dnsService;
31
+ this.userService = userService;
32
+ this.done = new EventEmitter();
33
+ this.runMoveUser = new EventEmitter();
34
+ this.cancel = new EventEmitter();
35
+ this.isLinear = false;
36
+ this.phoneNumberPending = false;
37
+ }
38
+ ngOnInit() {
39
+ if (this.user) {
40
+ this.user.moveType = {
41
+ phoneNumber: '1',
42
+ extension: '1'
43
+ };
44
+ this.userService.userMoved$.subscribe((result) => {
45
+ this.userService.moveUserPending = false;
46
+ if (result && this.nextAfterMoveBtn?._elementRef?.nativeElement) {
47
+ this.nextAfterMoveBtn._elementRef.nativeElement.click();
48
+ }
49
+ });
50
+ }
51
+ }
52
+ onMoveUser(stepper) {
53
+ this.stepper = stepper;
54
+ this.runMoveUser.emit();
55
+ }
56
+ selectPhoneNumberMigrationType(event) {
57
+ if (event.value && event.value === '2') {
58
+ this.getPhoneNumbers();
59
+ }
60
+ }
61
+ onPhoneNumberChange(event) {
62
+ this.user.newNumber;
63
+ }
64
+ onExtensionCHange(event) {
65
+ this.user.newExtension;
66
+ }
67
+ isFieldAvailable(type, value) {
68
+ if (this.user?.moveType) {
69
+ return this.user.moveType[type] && this.user.moveType[type] === value;
70
+ }
71
+ return false;
72
+ }
73
+ getPhoneNumbers() {
74
+ this.phoneNumberPending = true;
75
+ this.dnsService.fetchPhoneNumbers(this.customerId, LOCATION)
76
+ .subscribe(() => {
77
+ this.phoneNumberPending = false;
78
+ }, () => this.phoneNumberPending = false);
79
+ }
80
+ goNextStep(stepper) {
81
+ const currentStep = stepper.selectedIndex;
82
+ if (currentStep === 1) {
83
+ stepper.selectedIndex = 3;
84
+ }
85
+ // else if (currentStep === 3) { stepper.selectedIndex = 0; }
86
+ [
87
+ stepper.steps.get(1),
88
+ stepper.steps.get(2)
89
+ ].map(step => step ? step.completed = true : undefined);
90
+ }
91
+ }
92
+ MoveUserStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, deps: [{ token: i1.DnsService }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Component });
93
+ MoveUserStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: { user: "user", customerId: "customerId" }, outputs: { done: "done", runMoveUser: "runMoveUser", cancel: "cancel" }, viewQueries: [{ propertyName: "nextAfterMoveBtn", first: true, predicate: ["nextAfterMoveBtn"], descendants: true }], ngImport: i0, template: "<app-loader *ngIf=\"moveUserPending\"></app-loader>\r\n<mat-stepper *ngIf=\"user?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group\r\n class=\"radio-group\"\r\n [(ngModel)]=\"user.moveType.phoneNumber\"\r\n name=\"phoneNumber\" (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current number {{currentNumber}}</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new number</mat-radio-button>\r\n\r\n <div *ngIf=\"user.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\"\r\n class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-select class=\"select\" placeholder=\"Select number\" [(ngModel)]=\"user.newNumber\"\r\n (selectionChange)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let option of dnsService.phoneNumbers\" value=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove number</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"extension\"\r\n [(ngModel)]=\"user.moveType.extension\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current extension</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new extension</mat-radio-button>\r\n <mat-form-field *ngIf=\"user.moveType.extension === '2'\" appearance=\"outline\">\r\n <input matInput type=\"text\" (change)=\"onExtensionCHange($event)\"\r\n [(ngModel)]=\"user.newExtension\"\r\n [placeholder]=\"'Enter extension'\" />\r\n </mat-form-field>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove extension</mat-radio-button>\r\n </mat-radio-group>\r\n <!-- </form>-->\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" (click)=\"onMoveUser(stepper)\">Move</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <form></form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <form>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n <mat-label class=\"mat-label\">Validation Success!</mat-label>\r\n <p class=\"validation-text\">There is no issue for moving this user to the new location, $MTlocationname. Please be aware of the changes below once the user is being moved to the new location.</p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Tablet device (TABAVICK) needs to be reconfigured with Webex App. User will receive an email with link to download.</li>\r\n <li>Cisco 8875 (SEP751FC9BAB854) will not be migrated.</li>\r\n <li>The user will be removed from Call Park Group.</li>\r\n <li>If the device is using the location level device settings, the device will pick up the new location device settings once the user is moved. If some of the device settings are overwritten at the user level, these user level settings will be retained and the rest of the settings will be picked up at the higher level (organization or location) settings.</li>\r\n <li>If the current location has a different recording service from the one of the new location, the recording of this user may be lost after moving location.</li>\r\n </ul>\r\n <div>\r\n <mat-checkbox class=\"checkbox\" checked=\"true\" color=\"primary\">I confirm that I understand these conditions. I acknowledge the changes.</mat-checkbox>\r\n </div>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n <form>\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location, $MTlocationname.\r\n <br>\r\n For the progress of move, please visit the <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">Done</button>\r\n </div>\r\n </mat-step>\r\n</mat-stepper>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:18px;height:18px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-width:3px!important;background-color:#7b7b7b}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}form{background-color:#fff;padding:2.5rem;min-height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i10.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i10.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i10.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i10.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i13.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i13.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i14.AppLoaderComponent, selector: "app-loader" }] });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'app-move-user-stepper', template: "<app-loader *ngIf=\"moveUserPending\"></app-loader>\r\n<mat-stepper *ngIf=\"user?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group\r\n class=\"radio-group\"\r\n [(ngModel)]=\"user.moveType.phoneNumber\"\r\n name=\"phoneNumber\" (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current number {{currentNumber}}</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new number</mat-radio-button>\r\n\r\n <div *ngIf=\"user.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\"\r\n class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-select class=\"select\" placeholder=\"Select number\" [(ngModel)]=\"user.newNumber\"\r\n (selectionChange)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let option of dnsService.phoneNumbers\" value=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove number</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"extension\"\r\n [(ngModel)]=\"user.moveType.extension\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current extension</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new extension</mat-radio-button>\r\n <mat-form-field *ngIf=\"user.moveType.extension === '2'\" appearance=\"outline\">\r\n <input matInput type=\"text\" (change)=\"onExtensionCHange($event)\"\r\n [(ngModel)]=\"user.newExtension\"\r\n [placeholder]=\"'Enter extension'\" />\r\n </mat-form-field>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove extension</mat-radio-button>\r\n </mat-radio-group>\r\n <!-- </form>-->\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" (click)=\"onMoveUser(stepper)\">Move</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <form></form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <form>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n <mat-label class=\"mat-label\">Validation Success!</mat-label>\r\n <p class=\"validation-text\">There is no issue for moving this user to the new location, $MTlocationname. Please be aware of the changes below once the user is being moved to the new location.</p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Tablet device (TABAVICK) needs to be reconfigured with Webex App. User will receive an email with link to download.</li>\r\n <li>Cisco 8875 (SEP751FC9BAB854) will not be migrated.</li>\r\n <li>The user will be removed from Call Park Group.</li>\r\n <li>If the device is using the location level device settings, the device will pick up the new location device settings once the user is moved. If some of the device settings are overwritten at the user level, these user level settings will be retained and the rest of the settings will be picked up at the higher level (organization or location) settings.</li>\r\n <li>If the current location has a different recording service from the one of the new location, the recording of this user may be lost after moving location.</li>\r\n </ul>\r\n <div>\r\n <mat-checkbox class=\"checkbox\" checked=\"true\" color=\"primary\">I confirm that I understand these conditions. I acknowledge the changes.</mat-checkbox>\r\n </div>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n <form>\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location, $MTlocationname.\r\n <br>\r\n For the progress of move, please visit the <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">Done</button>\r\n </div>\r\n </mat-step>\r\n</mat-stepper>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:18px;height:18px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-width:3px!important;background-color:#7b7b7b}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}form{background-color:#fff;padding:2.5rem;min-height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}\n"] }]
97
+ }], ctorParameters: function () { return [{ type: i1.DnsService }, { type: i2.UserService }]; }, propDecorators: { nextAfterMoveBtn: [{
98
+ type: ViewChild,
99
+ args: ['nextAfterMoveBtn']
100
+ }], done: [{
101
+ type: Output
102
+ }], user: [{
103
+ type: Input
104
+ }], customerId: [{
105
+ type: Input
106
+ }], runMoveUser: [{
107
+ type: Output
108
+ }], cancel: [{
109
+ type: Output
110
+ }] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLMUYsZ0JBQWdCO0FBQ2hCLE1BQU0sUUFBUSxHQUFHLG9GQUFvRixDQUFDO0FBT3RHLE1BQU0sT0FBTyx3QkFBd0I7SUFnQm5DLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7U0FDakY7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LENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7c0hBL0ZVLHdCQUF3QjswR0FBeEIsd0JBQXdCLGdUQ2JyQyxtMkxBK0ZBOzRGRGxGYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsdUJBQXVCOzJIQU1GLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRTdCLElBQUk7c0JBREgsTUFBTTtnQkFHUCxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXJcIjtcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG4vLyBmb3IgdGVzdCBvbmx5XHJcbmNvbnN0IExPQ0FUSU9OID0gJ1kybHpZMjl6Y0dGeWF6b3ZMM1Z6TDB4UFEwRlVTVTlPTHpFMllqWTBOamxqTFRCalptUXROREpqTVMxaU9XSmpMVFV5TjJGbFpUTmhOMlJsT1EnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tb3ZlLXVzZXItc3RlcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vdmUtdXNlci1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb3ZlLXVzZXItc3RlcHBlci5jb21wb25lbnQuc2NzcyddXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW92ZVVzZXJTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCduZXh0QWZ0ZXJNb3ZlQnRuJykgbmV4dEFmdGVyTW92ZUJ0bjogYW55O1xyXG4gIEBPdXRwdXQoKVxyXG4gIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KClcclxuICB1c2VyOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21lcklkITogbnVtYmVyO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc0xpbmVhciA9IGZhbHNlO1xyXG4gIHBob25lTnVtYmVyUGVuZGluZyA9IGZhbHNlO1xyXG4gIHN0ZXBwZXIhOiBNYXRTdGVwcGVyO1xyXG5cclxuICBnZXQgbW92ZVVzZXJQZW5kaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UubW92ZVVzZXJQZW5kaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnROdW1iZXIoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnVzZXI/LmRldmljZXM/Lmxlbmd0aCAmJiB0aGlzLnVzZXIuZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlLFxyXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy51c2VyKSB7XHJcbiAgICAgIHRoaXMudXNlci5tb3ZlVHlwZSA9IHtcclxuICAgICAgICBwaG9uZU51bWJlcjogJzEnLFxyXG4gICAgICAgIGV4dGVuc2lvbjogJzEnXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlck1vdmVkJC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UubW92ZVVzZXJQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAmJiB0aGlzLm5leHRBZnRlck1vdmVCdG4/Ll9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLm5leHRBZnRlck1vdmVCdG4uX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW92ZVVzZXIoc3RlcHBlcjogTWF0U3RlcHBlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwcGVyID0gc3RlcHBlcjtcclxuICAgIHRoaXMucnVuTW92ZVVzZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UGhvbmVOdW1iZXJNaWdyYXRpb25UeXBlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC52YWx1ZSAmJiBldmVudC52YWx1ZSA9PT0gJzInKSB7XHJcbiAgICAgIHRoaXMuZ2V0UGhvbmVOdW1iZXJzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblBob25lTnVtYmVyQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlci5uZXdOdW1iZXJcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uQ0hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlci5uZXdFeHRlbnNpb25cclxuICB9XHJcblxyXG4gIGlzRmllbGRBdmFpbGFibGUodHlwZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51c2VyPy5tb3ZlVHlwZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy51c2VyLm1vdmVUeXBlW3R5cGVdICYmIHRoaXMudXNlci5tb3ZlVHlwZVt0eXBlXSA9PT0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRQaG9uZU51bWJlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lTnVtYmVyUGVuZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRuc1NlcnZpY2UuZmV0Y2hQaG9uZU51bWJlcnModGhpcy5jdXN0b21lcklkLCBMT0NBVElPTilcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgKCkgPT4gdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnb05leHRTdGVwKHN0ZXBwZXI6IE1hdFN0ZXBwZXIpIHtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHN0ZXBwZXIuc2VsZWN0ZWRJbmRleDtcclxuXHJcbiAgICBpZiAoY3VycmVudFN0ZXAgPT09IDEpIHsgc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gMzsgfVxyXG4gICAgLy8gZWxzZSBpZiAoY3VycmVudFN0ZXAgPT09IDMpIHsgc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gMDsgfVxyXG5cclxuICAgIFtcclxuICAgICAgc3RlcHBlci5zdGVwcy5nZXQoMSksXHJcbiAgICAgIHN0ZXBwZXIuc3RlcHMuZ2V0KDIpXHJcblxyXG4gICAgXS5tYXAoc3RlcCA9PiBzdGVwID8gc3RlcC5jb21wbGV0ZWQgPSB0cnVlIDogdW5kZWZpbmVkKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1sb2FkZXIgKm5nSWY9XCJtb3ZlVXNlclBlbmRpbmdcIj48L2FwcC1sb2FkZXI+XHJcbjxtYXQtc3RlcHBlciAqbmdJZj1cInVzZXI/Lm1vdmVUeXBlXCIgW2xpbmVhcl09XCJpc0xpbmVhclwiIGxhYmVsUG9zaXRpb249XCJib3R0b21cIiAjc3RlcHBlcj5cclxuICA8bWF0LXN0ZXA+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMTogU2VsZWN0IGxvY2F0aW9uPC9kaXY+XHJcbiAgICA8IS0tICAgICAgPGZvcm0+LS0+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlNlbGVjdCBsb2NhdGlvbjwvbmctdGVtcGxhdGU+XHJcbiAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+UGhvbmUgbnVtYmVyPC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgIGNsYXNzPVwicmFkaW8tZ3JvdXBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInVzZXIubW92ZVR5cGUucGhvbmVOdW1iZXJcIlxyXG4gICAgICBuYW1lPVwicGhvbmVOdW1iZXJcIiAoY2hhbmdlKT1cInNlbGVjdFBob25lTnVtYmVyTWlncmF0aW9uVHlwZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicmFkaW8tYnV0dG9uXCIgdmFsdWU9XCIxXCIgY29sb3I9XCJwcmltYXJ5XCI+S2VlcCBjdXJyZW50IG51bWJlciB7e2N1cnJlbnROdW1iZXJ9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJyYWRpby1idXR0b25cIiB2YWx1ZT1cIjJcIiBjb2xvcj1cInByaW1hcnlcIj5TZWxlY3QgYSBuZXcgbnVtYmVyPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInVzZXIubW92ZVR5cGUucGhvbmVOdW1iZXIgPT09ICcyJ1wiIGNsYXNzPVwic2VsZWN0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cInBob25lTnVtYmVyUGVuZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmllbGQtc3Bpbm5lclwiIG1vZGU9XCJpbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuXHJcbiAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJzZWxlY3RcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBudW1iZXJcIiBbKG5nTW9kZWwpXT1cInVzZXIubmV3TnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uUGhvbmVOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkbnNTZXJ2aWNlLnBob25lTnVtYmVyc1wiIHZhbHVlPVwib3B0aW9uXCI+e3tvcHRpb259fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJyYWRpby1idXR0b25cIiB2YWx1ZT1cIjNcIiBjb2xvcj1cInByaW1hcnlcIj5SZW1vdmUgbnVtYmVyPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+RXh0ZW5zaW9uPC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwicmFkaW8tZ3JvdXBcIiBuYW1lPVwiZXh0ZW5zaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyLm1vdmVUeXBlLmV4dGVuc2lvblwiPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiMVwiIGNvbG9yPVwicHJpbWFyeVwiPktlZXAgY3VycmVudCBleHRlbnNpb248L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicmFkaW8tYnV0dG9uXCIgdmFsdWU9XCIyXCIgY29sb3I9XCJwcmltYXJ5XCI+U2VsZWN0IGEgbmV3IGV4dGVuc2lvbjwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidXNlci5tb3ZlVHlwZS5leHRlbnNpb24gPT09ICcyJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgKGNoYW5nZSk9XCJvbkV4dGVuc2lvbkNIYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyLm5ld0V4dGVuc2lvblwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRW50ZXIgZXh0ZW5zaW9uJ1wiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiM1wiIGNvbG9yPVwicHJpbWFyeVwiPlJlbW92ZSBleHRlbnNpb248L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgIDwhLS0gICAgICA8L2Zvcm0+LS0+XHJcbiAgICA8YnV0dG9uICNuZXh0QWZ0ZXJNb3ZlQnRuIG1hdC1idXR0b24gY2xhc3M9XCJpbnZpc2libGUtbmV4dC1idG5cIiBtYXRTdGVwcGVyTmV4dCAoY2xpY2spPVwiZ29OZXh0U3RlcChzdGVwcGVyKVwiPjwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLW5leHRcIiAoY2xpY2spPVwib25Nb3ZlVXNlcihzdGVwcGVyKVwiPk1vdmU8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwid2ViZXgtYnRuIGJ0bi1jYW5jZWxcIiAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXAgW2FyaWEtbGFiZWxsZWRieV09XCInZGlzYWJsZWRfYWYnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMjogRGV2aWNlIGVsaWdpYmlsaXR5IGNoZWNrPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPkRldmljZSBlbGlnaWJpbGl0eSBjaGVjazwvbmctdGVtcGxhdGU+XHJcbiAgICA8Zm9ybT48L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0IChjbGljayk9XCJnb05leHRTdGVwKHN0ZXBwZXIpXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIG1hdFN0ZXBwZXJQcmV2aW91cz5QcmV2aW91czwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXAgW2FyaWEtbGFiZWxsZWRieV09XCInZGlzYWJsZWRfYWYnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMzogVmFsaWRhdGlvbjwvZGl2PlxyXG4gICAgPGZvcm0+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+VmFsaWRhdGlvbjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtYXQtbGFiZWxcIj5WYWxpZGF0aW9uIFN1Y2Nlc3MhPC9tYXQtbGFiZWw+XHJcbiAgICAgIDxwIGNsYXNzPVwidmFsaWRhdGlvbi10ZXh0XCI+VGhlcmUgaXMgbm8gaXNzdWUgZm9yIG1vdmluZyB0aGlzIHVzZXIgdG8gdGhlIG5ldyBsb2NhdGlvbiwgJE1UbG9jYXRpb25uYW1lLiBQbGVhc2UgYmUgYXdhcmUgb2YgdGhlIGNoYW5nZXMgYmVsb3cgb25jZSB0aGUgdXNlciBpcyBiZWluZyBtb3ZlZCB0byB0aGUgbmV3IGxvY2F0aW9uLjwvcD5cclxuICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cIm1hdC1sYWJlbFwiPkV4cGVjdGVkIGNoYW5nZXM8L21hdC1sYWJlbD5cclxuICAgICAgPHVsPlxyXG4gICAgICAgIDxsaT5UYWJsZXQgZGV2aWNlIChUQUJBVklDSykgbmVlZHMgdG8gYmUgcmVjb25maWd1cmVkIHdpdGggV2ViZXggQXBwLiBVc2VyIHdpbGwgcmVjZWl2ZSBhbiBlbWFpbCB3aXRoIGxpbmsgdG8gZG93bmxvYWQuPC9saT5cclxuICAgICAgICA8bGk+Q2lzY28gODg3NSAoU0VQNzUxRkM5QkFCODU0KSB3aWxsIG5vdCBiZSBtaWdyYXRlZC48L2xpPlxyXG4gICAgICAgIDxsaT5UaGUgdXNlciB3aWxsIGJlIHJlbW92ZWQgZnJvbSBDYWxsIFBhcmsgR3JvdXAuPC9saT5cclxuICAgICAgICA8bGk+SWYgdGhlIGRldmljZSBpcyB1c2luZyB0aGUgbG9jYXRpb24gbGV2ZWwgZGV2aWNlIHNldHRpbmdzLCB0aGUgZGV2aWNlIHdpbGwgcGljayB1cCB0aGUgbmV3IGxvY2F0aW9uIGRldmljZSBzZXR0aW5ncyBvbmNlIHRoZSB1c2VyIGlzIG1vdmVkLiBJZiBzb21lIG9mIHRoZSBkZXZpY2Ugc2V0dGluZ3MgYXJlIG92ZXJ3cml0dGVuIGF0IHRoZSB1c2VyIGxldmVsLCB0aGVzZSB1c2VyIGxldmVsIHNldHRpbmdzIHdpbGwgYmUgcmV0YWluZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzZXR0aW5ncyB3aWxsIGJlIHBpY2tlZCB1cCBhdCB0aGUgaGlnaGVyIGxldmVsIChvcmdhbml6YXRpb24gb3IgbG9jYXRpb24pIHNldHRpbmdzLjwvbGk+XHJcbiAgICAgICAgPGxpPklmIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIGRpZmZlcmVudCByZWNvcmRpbmcgc2VydmljZSBmcm9tIHRoZSBvbmUgb2YgdGhlIG5ldyBsb2NhdGlvbiwgdGhlIHJlY29yZGluZyBvZiB0aGlzIHVzZXIgbWF5IGJlIGxvc3QgYWZ0ZXIgbW92aW5nIGxvY2F0aW9uLjwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94XCIgY2hlY2tlZD1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIj5JIGNvbmZpcm0gdGhhdCBJIHVuZGVyc3RhbmQgdGhlc2UgY29uZGl0aW9ucy4gSSBhY2tub3dsZWRnZSB0aGUgY2hhbmdlcy48L21hdC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0IChjbGljayk9XCJnb05leHRTdGVwKHN0ZXBwZXIpXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIG1hdFN0ZXBwZXJQcmV2aW91cz5QcmV2aW91czwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXA+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgNDogUmVzdWx0PC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlJlc3VsdDwvbmctdGVtcGxhdGU+XHJcbiAgICA8Zm9ybT5cclxuICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cIm1hdC1sYWJlbFwiPk1vdmluZyB1c2VyIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBpbml0aWF0ZWQhPC9tYXQtbGFiZWw+XHJcbiAgICAgIDxwIGNsYXNzPVwidmFsaWRhdGlvbi10ZXh0XCI+XHJcbiAgICAgICAgVGhlIHVzZXIgd2lsbCBiZSBtb3ZlZCB0byB0aGUgbmV3IGxvY2F0aW9uLCAkTVRsb2NhdGlvbm5hbWUuXHJcbiAgICAgICAgPGJyPlxyXG4gICAgICAgIEZvciB0aGUgcHJvZ3Jlc3Mgb2YgbW92ZSwgcGxlYXNlIHZpc2l0IHRoZSA8YSBjbGFzcz1cImZvcm0tbGlua1wiIGhyZWY9XCIjXCI+dXNlciBkZXRhaWxzPC9hPi5cclxuICAgICAgPC9wPlxyXG4gICAgPC9mb3JtPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWRvbmVcIiAoY2xpY2spPVwiZG9uZS5lbWl0KHRydWUpXCI+RG9uZTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuPC9tYXQtc3RlcHBlcj5cclxuIl19
@@ -0,0 +1,38 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/dns.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../utils/app-loader/app-loader";
6
+ import * as i4 from "./move-user-stepper/move-user-stepper.component";
7
+ export class MoveUserWizardComponent {
8
+ constructor(dnsService) {
9
+ this.dnsService = dnsService;
10
+ this.closeMoveUserWizard = new EventEmitter();
11
+ this.done = new EventEmitter();
12
+ this.runMoveUser = new EventEmitter();
13
+ this.dataPending = false;
14
+ }
15
+ onClose() {
16
+ this.closeMoveUserWizard.emit();
17
+ }
18
+ onRunMoveUser() {
19
+ this.runMoveUser.emit();
20
+ }
21
+ }
22
+ MoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, deps: [{ token: i1.DnsService }], target: i0.ɵɵFactoryTarget.Component });
23
+ MoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: { user: "user", customerId: "customerId" }, outputs: { closeMoveUserWizard: "closeMoveUserWizard", done: "done", runMoveUser: "runMoveUser" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\")}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i4.MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: ["user", "customerId"], outputs: ["done", "runMoveUser", "cancel"] }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'app-move-user-wizard', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\")}\n"] }]
27
+ }], ctorParameters: function () { return [{ type: i1.DnsService }]; }, propDecorators: { user: [{
28
+ type: Input
29
+ }], customerId: [{
30
+ type: Input
31
+ }], closeMoveUserWizard: [{
32
+ type: Output
33
+ }], done: [{
34
+ type: Output
35
+ }], runMoveUser: [{
36
+ type: Output
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvbW92ZS11c2VyLXdpemFyZC9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9tb3ZlLXVzZXItd2l6YXJkL21vdmUtdXNlci13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFhaEMsWUFDUyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUmpDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBTWxCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOztxSEF6QlEsdUJBQXVCO3lHQUF2Qix1QkFBdUIsbU5DVHBDLG9wQkFZQTs0RkRIYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksc0JBQXNCO2lHQU1sQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFHUCxJQUFJO3NCQURILE1BQU07Z0JBR1AsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtbW92ZS11c2VyLXdpemFyZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vdmVVc2VyV2l6YXJkQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHVzZXI6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGN1c3RvbWVySWQhOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2xvc2VNb3ZlVXNlcldpemFyZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBkb25lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRhdGFQZW5kaW5nID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHB1YmxpYyBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5jbG9zZU1vdmVVc2VyV2l6YXJkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJ1bk1vdmVVc2VyKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnJ1bk1vdmVVc2VyLmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8YXBwLWxvYWRlciAqbmdJZj1cImRhdGFQZW5kaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG48ZGl2IGNsYXNzPVwibW92ZS11c2VyLXN0ZXBwZXItY29udGFpbmVyXCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwibW92ZS11c2VyLWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyX190aXRsZVwiPk1vdmUgVXNlciB7e3VzZXIudXNlcmlkfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLWhlYWRlcl9fY2xvc2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gaWNvbi13aGl0ZS1jbG9zZVwiIChjbGljayk9XCJvbkNsb3NlKClcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxhcHAtbW92ZS11c2VyLXN0ZXBwZXIgKm5nSWY9XCJ1c2VyXCIgW2N1c3RvbWVySWRdPVwiY3VzdG9tZXJJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyXT1cInVzZXJcIiAoY2FuY2VsKT1cIm9uQ2xvc2UoKVwiIChkb25lKT1cImRvbmUuZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bk1vdmVVc2VyKT1cIm9uUnVuTW92ZVVzZXIoKVwiPjwvYXBwLW1vdmUtdXNlci1zdGVwcGVyPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,18 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { APIService } from './api.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class ApiWebexService extends APIService {
6
+ constructor(httpClient) {
7
+ super(httpClient);
8
+ //this.apiUrl = window.location.protocol + "//"+ window.location.hostname + environment.apiAuthUrl;
9
+ this.apiUrl = 'https://webex.car-west.net/webex';
10
+ // this.apiUrl = 'https://staging.tuki.io/webex';
11
+ }
12
+ }
13
+ ApiWebexService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
14
+ ApiWebexService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, decorators: [{
16
+ type: Injectable
17
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXdlYmV4LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvYXBpLXdlYmV4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUM3QyxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixtR0FBbUc7UUFDbkcsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQ0FBa0MsQ0FBQztRQUNqRCxpREFBaUQ7SUFDbkQsQ0FBQzs7NkdBTlUsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcGlXZWJleFNlcnZpY2UgZXh0ZW5kcyBBUElTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcihodHRwQ2xpZW50KTtcclxuICAgIC8vdGhpcy5hcGlVcmwgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIrIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArIGVudmlyb25tZW50LmFwaUF1dGhVcmw7XHJcbiAgICB0aGlzLmFwaVVybCA9ICdodHRwczovL3dlYmV4LmNhci13ZXN0Lm5ldC93ZWJleCc7XHJcbiAgICAvLyB0aGlzLmFwaVVybCA9ICdodHRwczovL3N0YWdpbmcudHVraS5pby93ZWJleCc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class APIService {
6
+ constructor(httpClient) {
7
+ this.httpClient = httpClient;
8
+ this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
9
+ }
10
+ fetch(url, params = {}, cache) {
11
+ const headers = this.getHeaders(cache);
12
+ return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
13
+ }
14
+ post(url, body, params = {}) {
15
+ body = body || null;
16
+ const headers = this.getHeaders();
17
+ return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
18
+ }
19
+ // use when response extended data is necessary:
20
+ postExtended(url, body = null, params = {}, headers = {}) {
21
+ headers = headers || this.getHeaders();
22
+ return this.httpClient.post(this.apiUrl + url, body, {
23
+ headers,
24
+ observe: 'response',
25
+ params: this.prepareEncodedParams(params)
26
+ });
27
+ }
28
+ put(url, body = null, params = {}) {
29
+ const headers = this.getHeaders();
30
+ return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
31
+ }
32
+ delete(url, params = {}) {
33
+ const headers = this.getHeaders();
34
+ return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
35
+ }
36
+ fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
37
+ const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
38
+ const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
39
+ return this.fetch(url, params, cache);
40
+ }
41
+ prepareEncodedParams(params) {
42
+ const result = {};
43
+ if (!params) {
44
+ return {};
45
+ }
46
+ for (const key of Object.keys(params)) {
47
+ if (params[key]) {
48
+ const stringParam = params[key].toString();
49
+ result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ getHeaders(cache) {
55
+ let headers = new HttpHeaders();
56
+ if (cache) {
57
+ headers = headers.append('_Cache', 'true ');
58
+ }
59
+ const token = this.token || this.getParameterByName('token');
60
+ headers = headers.append('Authorization', 'Bearer ' + token);
61
+ return headers;
62
+ }
63
+ getParameterByName(name, url = window.location.href) {
64
+ name = name.replace(/[\[\]]/g, '\\$&');
65
+ var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
66
+ if (!results)
67
+ return null;
68
+ if (!results[2])
69
+ return '';
70
+ return decodeURIComponent(results[2].replace(/\+/g, ' '));
71
+ }
72
+ }
73
+ APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
76
+ type: Injectable
77
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU8vRCxNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKaEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFNN0UsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFXLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxLQUFlO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDdEMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsWUFBWSxDQUFDLEdBQVcsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDOUQsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDbkQsT0FBTztZQUNQLE9BQU8sRUFBRSxVQUFVO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVyxFQUFFLE1BQU0sR0FBRyxFQUFFO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVyxFQUFFLFFBQWdCLEVBQUUsVUFBa0IsRUFBRSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUUsS0FBZTtRQUN2RyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDN0csT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFtQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFXO1FBQ3RDLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDZixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO2FBQ3pGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWU7UUFDaEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3QztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQzlELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLG1CQUFtQixDQUFDLEVBQ3pELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7d0dBL0VVLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgVGFibGVEYXRhSW50ZXJmYWNlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1kYXRhJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBUElTZXJ2aWNlIHtcclxuXHJcbiAgYXBpVXJsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICcvZGNwJztcclxuXHJcbiAgcHVibGljIHRva2VuOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcclxuICApIHtcclxuICB9XHJcblxyXG4gIGZldGNoKHVybDogc3RyaW5nLCBwYXJhbXMgPSB7fSwgY2FjaGU/OiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKGNhY2hlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuYXBpVXJsICsgdXJsLCB7cGFyYW1zOiB0aGlzLnByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtcyksIGhlYWRlcnN9KTtcclxuICB9XHJcblxyXG4gIHBvc3QodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zID0ge30pOiBhbnkge1xyXG4gICAgYm9keSA9IGJvZHkgfHwgbnVsbDtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmFwaVVybCArIHVybCwgYm9keSwge3BhcmFtczogdGhpcy5wcmVwYXJlRW5jb2RlZFBhcmFtcyhwYXJhbXMpLCBoZWFkZXJzfSk7XHJcbiAgfVxyXG5cclxuICAvLyB1c2Ugd2hlbiByZXNwb25zZSBleHRlbmRlZCBkYXRhIGlzIG5lY2Vzc2FyeTpcclxuICBwb3N0RXh0ZW5kZWQodXJsOiBzdHJpbmcsIGJvZHkgPSBudWxsLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9KSB7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycyB8fCB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmFwaVVybCArIHVybCwgYm9keSwge1xyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICBwYXJhbXM6IHRoaXMucHJlcGFyZUVuY29kZWRQYXJhbXMocGFyYW1zKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdXQodXJsOiBzdHJpbmcsIGJvZHkgPSBudWxsLCBwYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodGhpcy5hcGlVcmwgKyB1cmwsIGJvZHksIHtoZWFkZXJzLCBwYXJhbXM6IHRoaXMucHJlcGFyZUVuY29kZWRQYXJhbXMocGFyYW1zKX0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKHVybDogc3RyaW5nLCBwYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodGhpcy5hcGlVcmwgKyB1cmwsIHtoZWFkZXJzLCBwYXJhbXM6IHRoaXMucHJlcGFyZUVuY29kZWRQYXJhbXMocGFyYW1zKX0pO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hQYWdpbmF0aW9uKHVybDogc3RyaW5nLCBwYWdlU2l6ZTogbnVtYmVyLCBwYWdlTnVtYmVyOiBudW1iZXIsIGFkZGl0aW9uYWxQYXJhbXMgPSB7fSwgY2FjaGU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxUYWJsZURhdGFJbnRlcmZhY2U+IHtcclxuICAgIGNvbnN0IGNvcHlBZGRpdGlvbmFsUGFyYW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsUGFyYW1zKSk7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKGNvcHlBZGRpdGlvbmFsUGFyYW1zLCB7c2l6ZTogcGFnZVNpemUudG9TdHJpbmcoKSwgcGFnZTogcGFnZU51bWJlci50b1N0cmluZygpfSk7XHJcbiAgICByZXR1cm4gdGhpcy5mZXRjaCh1cmwsIHBhcmFtcywgY2FjaGUpIGFzIE9ic2VydmFibGU8VGFibGVEYXRhSW50ZXJmYWNlPjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZUVuY29kZWRQYXJhbXMocGFyYW1zOiBhbnkpIHtcclxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XHJcblxyXG4gICAgaWYgKCFwYXJhbXMpIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICBpZiAocGFyYW1zW2tleV0pIHtcclxuICAgICAgICBjb25zdCBzdHJpbmdQYXJhbSA9IHBhcmFtc1trZXldLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgcmVzdWx0W2tleV0gPSBzdHJpbmdQYXJhbS5pbmNsdWRlcygnKycpID8gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ1BhcmFtKSA6IHN0cmluZ1BhcmFtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIZWFkZXJzKGNhY2hlPzogYm9vbGVhbik6IEh0dHBIZWFkZXJzIHtcclxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdfQ2FjaGUnLCAndHJ1ZSAnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbiB8fCB0aGlzLmdldFBhcmFtZXRlckJ5TmFtZSgndG9rZW4nKTtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJysgdG9rZW4pO1xyXG4gICAgcmV0dXJuIGhlYWRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmFtZXRlckJ5TmFtZShuYW1lOiBhbnksIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmKSB7XHJcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXFxdXS9nLCAnXFxcXCQmJyk7XHJcbiAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCdbPyZdJyArIG5hbWUgKyAnKD0oW14mI10qKXwmfCN8JCknKSxcclxuICAgICAgcmVzdWx0cyA9IHJlZ2V4LmV4ZWModXJsKTtcclxuICAgIGlmICghcmVzdWx0cykgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAoIXJlc3VsdHNbMl0pIHJldHVybiAnJztcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1syXS5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,120 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { API } from '../app.constants';
3
+ import { map } from 'rxjs/operators';
4
+ import * as Big from 'big.js';
5
+ import { Observable } from 'rxjs';
6
+ import { DnRangeType } from '../classes/line';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./api.service";
9
+ import * as i2 from "../services/api-webex.service";
10
+ export class DnsService {
11
+ constructor(apiService, apiWebexService) {
12
+ this.apiService = apiService;
13
+ this.apiWebexService = apiWebexService;
14
+ this.availableNumbers = {};
15
+ this.phoneNumbers = [];
16
+ }
17
+ getNumberRange(siteId, routePartition, withdids, from, pageSize) {
18
+ // @ts-ignore
19
+ if (this.availableNumbers[routePartition]?.length) {
20
+ return new Observable(observer => {
21
+ // @ts-ignore
22
+ observer.next(this.availableNumbers[routePartition]);
23
+ });
24
+ }
25
+ this.availableDidPatternsMappedToDn = {};
26
+ pageSize = pageSize ? pageSize : 20;
27
+ const params = { dntype: DnRangeType.extension, routepartition: routePartition, size: pageSize, page: 0 };
28
+ if (withdids) {
29
+ // @ts-ignore
30
+ params['withdids'] = 'true';
31
+ }
32
+ if (from) {
33
+ // @ts-ignore
34
+ params['from'] = from;
35
+ }
36
+ // @ts-ignore
37
+ this.availableNumbers[routePartition] = this.availableNumbers[routePartition] || [];
38
+ return this.apiService.fetch(API.AVAILABLE_DN_IN_RANGES.replace(':siteId', siteId), params)
39
+ .pipe(map((res) => {
40
+ res.availableNumberList.forEach((availableNumber) => {
41
+ this.setAvailableDidMappedToDn(availableNumber);
42
+ // @ts-ignore
43
+ this.availableNumbers[routePartition] = [...this.availableNumbers[routePartition], ...this.getUnwrapNumberRange(availableNumber)];
44
+ });
45
+ }));
46
+ // .pipe(this.handleError(true, false));
47
+ }
48
+ setAvailableDidMappedToDn(availableNumber) {
49
+ if (availableNumber.unUsedNumbersWithDids && availableNumber.unUsedNumbersWithDids.length) {
50
+ availableNumber.unUsedNumbersWithDids.forEach((numberWithDids) => {
51
+ const dn = numberWithDids['unUsedNumber'];
52
+ this.availableDidPatternsMappedToDn[dn] = [{}];
53
+ if (numberWithDids['translationPatternList'] && numberWithDids['translationPatternList'].length > 0) {
54
+ this.availableDidPatternsMappedToDn[dn] = numberWithDids['translationPatternList'];
55
+ this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] = [{}];
56
+ if (numberWithDids['mappedDids'] && numberWithDids['mappedDids'].length > 0) {
57
+ this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] = numberWithDids['mappedDids'];
58
+ }
59
+ }
60
+ this.availableDidPatternsMappedToDn[dn][0]['vm'] = numberWithDids['vm'];
61
+ });
62
+ }
63
+ }
64
+ getUnwrapNumberRange(availableNumber) {
65
+ let unwrapNumberRange = this.unwrapNumberRange(availableNumber.phoneNumberRange.from, availableNumber.phoneNumberRange.to)
66
+ .map((unwrappedNumber) => {
67
+ const dn = availableNumber.phoneNumberRange.prefix + unwrappedNumber;
68
+ let str = dn;
69
+ if (this.availableDidPatternsMappedToDn[dn] && this.availableDidPatternsMappedToDn[dn].length > 0) {
70
+ if (this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] && this.availableDidPatternsMappedToDn[dn][0]['mappedDids'].length > 0) {
71
+ str += ' DID: ' + (this.availableDidPatternsMappedToDn[dn][0]['mappedDids'].length > 1 ? 'multiple' :
72
+ this.availableDidPatternsMappedToDn[dn][0]['mappedDids'][0]);
73
+ }
74
+ if (this.availableDidPatternsMappedToDn[dn][0]['vm']) {
75
+ str += ' In Use - VM';
76
+ }
77
+ }
78
+ return str;
79
+ });
80
+ unwrapNumberRange = unwrapNumberRange.filter((unwrappedNumber) => !availableNumber.usedNumbers.includes(unwrappedNumber));
81
+ return unwrapNumberRange;
82
+ }
83
+ unwrapNumberRange(start, end) {
84
+ const regExp = /(^0+)/;
85
+ let leadingZeros = '';
86
+ const matches = start.match(regExp);
87
+ if (matches) {
88
+ leadingZeros = matches[1];
89
+ }
90
+ const startNumeric = new Big(start);
91
+ const endNumeric = new Big(end);
92
+ // @ts-ignore
93
+ return Array.from({ length: (endNumeric.minus(startNumeric).plus(new Big(1)).toFixed(0)) }, (v, k) => {
94
+ const number = String(startNumeric.plus(new Big(k)).toFixed(0));
95
+ if ((leadingZeros + number).length > start.length) {
96
+ leadingZeros = leadingZeros.substr(1);
97
+ }
98
+ return leadingZeros + number;
99
+ });
100
+ }
101
+ fetchPhoneNumbers(customerId, locationId) {
102
+ const params = {
103
+ available: true,
104
+ numberType: 'NUMBER'
105
+ };
106
+ return this.apiWebexService.fetch(API.PHONE_NUMBERS.replace(':customerId', String(customerId)).replace(':locationId', locationId), params)
107
+ .pipe(map((result) => {
108
+ if (result?.length) {
109
+ this.phoneNumbers = result.map((item) => item.phoneNumber);
110
+ }
111
+ return result;
112
+ }));
113
+ }
114
+ }
115
+ DnsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, deps: [{ token: i1.APIService }, { token: i2.ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
116
+ DnsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, decorators: [{
118
+ type: Injectable
119
+ }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvZG5zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUlsRixNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTjFDLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixpQkFBWSxHQUFhLEVBQUUsQ0FBQztJQU81QixDQUFDO0lBQ00sY0FBYyxDQUFDLE1BQWMsRUFBRSxjQUFzQixFQUFFLFFBQWtCLEVBQUUsSUFBYSxFQUFFLFFBQWlCO1FBQ2hILGFBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDakQsT0FBTyxJQUFJLFVBQVUsQ0FBTSxRQUFRLENBQUMsRUFBRTtnQkFDcEMsYUFBYTtnQkFDYixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsOEJBQThCLEdBQUcsRUFB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QUFDLENBQUMsQ0FBQzthQUN2QztZQUNELE9BQU8sWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzdELE1BQU0sTUFBTSxHQUFHO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsUUFBUTtTQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUM7YUFDdkksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hCLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakU7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7d0dBbkhVLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIEJpZyBmcm9tICdiaWcuanMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwaVdlYmV4U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwaS13ZWJleC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXZhaWxhYmxlUGhvbmVOdW1iZXJSYW5nZUludGVyZmFjZSwgRG5SYW5nZVR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL2xpbmUnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERuc1NlcnZpY2Uge1xyXG4gIGF2YWlsYWJsZU51bWJlcnMgPSB7fTtcclxuICBhdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG4hOiBhbnk7XHJcbiAgcGhvbmVOdW1iZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpV2ViZXhTZXJ2aWNlOiBBcGlXZWJleFNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG4gIHB1YmxpYyBnZXROdW1iZXJSYW5nZShzaXRlSWQ6IHN0cmluZywgcm91dGVQYXJ0aXRpb246IHN0cmluZywgd2l0aGRpZHM/OiBib29sZWFuLCBmcm9tPzogc3RyaW5nLCBwYWdlU2l6ZT86IG51bWJlcik6IGFueSB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAodGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXT8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmVyID0+IHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLmF2YWlsYWJsZU51bWJlcnNbcm91dGVQYXJ0aXRpb25dKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG4gPSB7fTtcclxuICAgIHBhZ2VTaXplID0gcGFnZVNpemUgPyBwYWdlU2l6ZSA6IDIwO1xyXG4gICAgY29uc3QgcGFyYW1zID0ge2RudHlwZTogRG5SYW5nZVR5cGUuZXh0ZW5zaW9uLCByb3V0ZXBhcnRpdGlvbjogcm91dGVQYXJ0aXRpb24sIHNpemU6IHBhZ2VTaXplLCBwYWdlOiAwfTtcclxuICAgIGlmICh3aXRoZGlkcykge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHBhcmFtc1snd2l0aGRpZHMnXSA9ICd0cnVlJztcclxuICAgIH1cclxuICAgIGlmIChmcm9tKSB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgcGFyYW1zWydmcm9tJ10gPSBmcm9tO1xyXG4gICAgfVxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXSA9IHRoaXMuYXZhaWxhYmxlTnVtYmVyc1tyb3V0ZVBhcnRpdGlvbl0gfHwgW107XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuQVZBSUxBQkxFX0ROX0lOX1JBTkdFUy5yZXBsYWNlKCc6c2l0ZUlkJywgc2l0ZUlkKSwgcGFyYW1zKVxyXG4gICAgICAucGlwZShtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXMuYXZhaWxhYmxlTnVtYmVyTGlzdC5mb3JFYWNoKChhdmFpbGFibGVOdW1iZXI6IEF2YWlsYWJsZVBob25lTnVtYmVyUmFuZ2VJbnRlcmZhY2UpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRBdmFpbGFibGVEaWRNYXBwZWRUb0RuKGF2YWlsYWJsZU51bWJlcik7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXSA9IFsuLi50aGlzLmF2YWlsYWJsZU51bWJlcnNbcm91dGVQYXJ0aXRpb25dLCAuLi50aGlzLmdldFVud3JhcE51bWJlclJhbmdlKGF2YWlsYWJsZU51bWJlcildO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QXZhaWxhYmxlRGlkTWFwcGVkVG9EbihhdmFpbGFibGVOdW1iZXI6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGF2YWlsYWJsZU51bWJlci51blVzZWROdW1iZXJzV2l0aERpZHMgJiYgYXZhaWxhYmxlTnVtYmVyLnVuVXNlZE51bWJlcnNXaXRoRGlkcy5sZW5ndGgpIHtcclxuXHJcbiAgICAgIGF2YWlsYWJsZU51bWJlci51blVzZWROdW1iZXJzV2l0aERpZHMuZm9yRWFjaCgobnVtYmVyV2l0aERpZHM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRuID0gbnVtYmVyV2l0aERpZHNbJ3VuVXNlZE51bWJlciddO1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXSA9IFt7fV07XHJcbiAgICAgICAgaWYgKG51bWJlcldpdGhEaWRzWyd0cmFuc2xhdGlvblBhdHRlcm5MaXN0J10gJiYgbnVtYmVyV2l0aERpZHNbJ3RyYW5zbGF0aW9uUGF0dGVybkxpc3QnXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0gPSBudW1iZXJXaXRoRGlkc1sndHJhbnNsYXRpb25QYXR0ZXJuTGlzdCddO1xyXG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10gPSBbe31dO1xyXG4gICAgICAgICAgaWYgKG51bWJlcldpdGhEaWRzWydtYXBwZWREaWRzJ10gJiYgbnVtYmVyV2l0aERpZHNbJ21hcHBlZERpZHMnXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddID0gbnVtYmVyV2l0aERpZHNbJ21hcHBlZERpZHMnXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWyd2bSddID0gbnVtYmVyV2l0aERpZHNbJ3ZtJ107XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVud3JhcE51bWJlclJhbmdlKGF2YWlsYWJsZU51bWJlcjogYW55KTogc3RyaW5nW10ge1xyXG4gICAgbGV0IHVud3JhcE51bWJlclJhbmdlID0gdGhpcy51bndyYXBOdW1iZXJSYW5nZShhdmFpbGFibGVOdW1iZXIucGhvbmVOdW1iZXJSYW5nZS5mcm9tLCBhdmFpbGFibGVOdW1iZXIucGhvbmVOdW1iZXJSYW5nZS50bylcclxuICAgICAgLm1hcCgodW53cmFwcGVkTnVtYmVyOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBkbiA9IGF2YWlsYWJsZU51bWJlci5waG9uZU51bWJlclJhbmdlLnByZWZpeCArIHVud3JhcHBlZE51bWJlcjtcclxuICAgICAgICBsZXQgc3RyID0gZG47XHJcbiAgICAgICAgaWYgKHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXSAmJiB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddICYmIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgc3RyICs9ICcgICAgICAgIERJRDogICcgKyAodGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10ubGVuZ3RoID4gMSA/ICdtdWx0aXBsZScgOlxyXG4gICAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddWzBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl1bMF1bJ3ZtJ10pIHtcclxuICAgICAgICAgICAgc3RyICs9ICcgICAgICAgIEluIFVzZSAtIFZNJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgICAgfSk7XHJcbiAgICB1bndyYXBOdW1iZXJSYW5nZSA9IHVud3JhcE51bWJlclJhbmdlLmZpbHRlcigodW53cmFwcGVkTnVtYmVyOiBzdHJpbmcpID0+ICFhdmFpbGFibGVOdW1iZXIudXNlZE51bWJlcnMuaW5jbHVkZXModW53cmFwcGVkTnVtYmVyKSk7XHJcbiAgICByZXR1cm4gdW53cmFwTnVtYmVyUmFuZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW53cmFwTnVtYmVyUmFuZ2Uoc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCByZWdFeHAgPSAvKF4wKykvO1xyXG4gICAgbGV0IGxlYWRpbmdaZXJvcyA9ICcnO1xyXG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0YXJ0Lm1hdGNoKHJlZ0V4cCk7XHJcbiAgICBpZiAobWF0Y2hlcykge1xyXG4gICAgICBsZWFkaW5nWmVyb3MgPSBtYXRjaGVzWzFdO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhcnROdW1lcmljID0gbmV3IEJpZyhzdGFydCk7XHJcbiAgICBjb25zdCBlbmROdW1lcmljID0gbmV3IEJpZyhlbmQpO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDogKGVuZE51bWVyaWMubWludXMoc3RhcnROdW1lcmljKS5wbHVzKG5ldyBCaWcoMSkpLnRvRml4ZWQoMCkpfSwgKHYsIGspID0+IHtcclxuICAgICAgY29uc3QgbnVtYmVyID0gU3RyaW5nKHN0YXJ0TnVtZXJpYy5wbHVzKG5ldyBCaWcoaykpLnRvRml4ZWQoMCkpO1xyXG4gICAgICBpZiAoKGxlYWRpbmdaZXJvcyArIG51bWJlcikubGVuZ3RoID4gc3RhcnQubGVuZ3RoKSB7XHJcbiAgICAgICAgbGVhZGluZ1plcm9zID0gbGVhZGluZ1plcm9zLnN1YnN0cigxKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbGVhZGluZ1plcm9zICsgbnVtYmVyO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hQaG9uZU51bWJlcnMoY3VzdG9tZXJJZDogbnVtYmVyLCBsb2NhdGlvbklkOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICAgIG51bWJlclR5cGU6ICdOVU1CRVInXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmZldGNoKEFQSS5QSE9ORV9OVU1CRVJTLnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKS5yZXBsYWNlKCc6bG9jYXRpb25JZCcsIGxvY2F0aW9uSWQpLCBwYXJhbXMpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0Py5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMucGhvbmVOdW1iZXJzID0gcmVzdWx0Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnBob25lTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class EventsCommunicationService {
5
+ constructor() {
6
+ this.onSuccessfulLoginEvent = new Subject();
7
+ }
8
+ }
9
+ EventsCommunicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10
+ EventsCommunicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, decorators: [{
12
+ type: Injectable
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLWNvbW11bmljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9zZXJ2aWNlcy9ldmVudHMtY29tbXVuaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQztRQUZPLDJCQUFzQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFHOUMsQ0FBQzs7d0hBSlUsMEJBQTBCOzRIQUExQiwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXZlbnRzQ29tbXVuaWNhdGlvblNlcnZpY2Uge1xyXG4gIHB1YmxpYyBvblN1Y2Nlc3NmdWxMb2dpbkV2ZW50ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=