@tuki-io/tuki-widgets 0.0.133 → 0.0.134

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 (825) hide show
  1. package/.editorconfig +16 -0
  2. package/.hintrc +14 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +10 -9
  7. package/angular.json +141 -0
  8. package/package.json +49 -73
  9. package/projects/tuki/widgets/README.md +24 -0
  10. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.module.ts +44 -0
  11. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.service.spec.ts +16 -0
  12. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.service.ts +33 -0
  13. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.html +11 -0
  14. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.scss +48 -0
  15. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.ts +10 -0
  16. package/projects/tuki/widgets/contact-center/cc-readiness/types/cc-readiness.ts +34 -0
  17. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.html +74 -0
  18. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.scss +177 -0
  19. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.spec.ts +35 -0
  20. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.ts +237 -0
  21. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.html +19 -0
  22. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.scss +38 -0
  23. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.ts +57 -0
  24. package/projects/tuki/widgets/contact-center/ng-package.json +7 -0
  25. package/projects/tuki/widgets/contact-center/public-api.ts +6 -0
  26. package/projects/tuki/widgets/contact-center/shared/api.endpoints.ts +6 -0
  27. package/projects/tuki/widgets/contact-center/shared/api.service.ts +91 -0
  28. package/projects/tuki/widgets/contact-center/shared/assets/icons/applications.svg +6 -0
  29. package/projects/tuki/widgets/contact-center/shared/assets/icons/audioPrompts.svg +4 -0
  30. package/projects/tuki/widgets/contact-center/shared/assets/icons/contactServiceQueues.svg +3 -0
  31. package/projects/tuki/widgets/contact-center/shared/assets/icons/phonebooks.svg +6 -0
  32. package/projects/tuki/widgets/contact-center/shared/assets/icons/resourceGroups.svg +6 -0
  33. package/projects/tuki/widgets/contact-center/shared/assets/icons/resources.svg +3 -0
  34. package/projects/tuki/widgets/contact-center/shared/assets/icons/scripts.svg +12 -0
  35. package/projects/tuki/widgets/contact-center/shared/assets/icons/skills.svg +3 -0
  36. package/projects/tuki/widgets/contact-center/shared/assets/icons/teams.svg +3 -0
  37. package/projects/tuki/widgets/contact-center/shared/assets/icons/triggers.svg +4 -0
  38. package/projects/tuki/widgets/contact-center/shared/assets/icons/wrapUpCodes.svg +3 -0
  39. package/projects/tuki/widgets/contact-center/shared/assets/icons/xml.svg +6 -0
  40. package/projects/tuki/widgets/contact-center/shared/material.module.ts +36 -0
  41. package/projects/tuki/widgets/contact-center/shared/shared.module.ts +20 -0
  42. package/projects/tuki/widgets/contact-center/shared/styles/tuki-widgets-theme.scss +13 -0
  43. package/projects/tuki/widgets/contact-center/shared/styles/variables.scss +94 -0
  44. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +31 -0
  45. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  46. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  47. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  48. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +3 -0
  49. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  50. package/projects/tuki/widgets/di2mt/assets/icons/icon_play.svg +3 -0
  51. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  52. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  53. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  54. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  55. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  56. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  57. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  58. package/projects/tuki/widgets/di2mt/ng-package.json +7 -0
  59. package/projects/tuki/widgets/di2mt/public-api.ts +27 -0
  60. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +11 -0
  61. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +48 -0
  62. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +10 -0
  63. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +15 -0
  64. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +38 -0
  65. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +76 -0
  66. package/projects/tuki/widgets/di2mt/shared/components/index.ts +6 -0
  67. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +43 -0
  68. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +74 -0
  69. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +44 -0
  70. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +57 -0
  71. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +187 -0
  72. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +41 -0
  73. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +12 -0
  74. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +78 -0
  75. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +27 -0
  76. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +28 -0
  77. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +245 -0
  78. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +28 -0
  79. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +96 -0
  80. package/projects/tuki/widgets/di2mt/shared/material.module.ts +36 -0
  81. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +91 -0
  82. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +39 -0
  83. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +22 -0
  84. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +5 -0
  85. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +14 -0
  86. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +13 -0
  87. package/projects/tuki/widgets/di2mt/styles/variables.scss +94 -0
  88. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +6 -0
  89. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +45 -0
  90. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +27 -0
  91. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +160 -0
  92. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +460 -0
  93. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +506 -0
  94. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +33 -0
  95. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +172 -0
  96. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +27 -0
  97. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +52 -0
  98. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +53 -0
  99. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +82 -0
  100. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +7 -0
  101. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  102. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +45 -0
  103. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +7 -0
  104. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  105. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +45 -0
  106. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +81 -0
  107. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +70 -0
  108. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts +58 -0
  109. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +42 -0
  110. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +95 -0
  111. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts +35 -0
  112. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +204 -0
  113. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +462 -0
  114. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +438 -0
  115. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +34 -0
  116. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +137 -0
  117. package/projects/tuki/widgets/karma.conf.js +44 -0
  118. package/projects/tuki/widgets/ng-package.json +10 -0
  119. package/projects/tuki/widgets/package.json +13 -0
  120. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +23 -0
  121. package/projects/tuki/widgets/src/lib/widgets.component.ts +20 -0
  122. package/projects/tuki/widgets/src/lib/widgets.module.ts +16 -0
  123. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +16 -0
  124. package/projects/tuki/widgets/src/lib/widgets.service.ts +9 -0
  125. package/projects/tuki/widgets/src/public-api.ts +7 -0
  126. package/projects/tuki/widgets/src/test.ts +27 -0
  127. package/projects/tuki/widgets/styles.scss +558 -0
  128. package/projects/tuki/widgets/tsconfig.lib.json +37 -0
  129. package/projects/tuki/widgets/tsconfig.lib.prod.json +10 -0
  130. package/projects/tuki/widgets/tsconfig.spec.json +17 -0
  131. package/projects/tuki/widgets/user-device-manage/ng-package.json +7 -0
  132. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +98 -0
  133. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-down-bold.svg +1 -0
  134. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +5 -0
  135. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right-regular.svg +1 -0
  136. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +5 -0
  137. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cancel-regular.svg +1 -0
  138. package/projects/tuki/widgets/user-device-manage/src/assets/icons/check-circle-regular.svg +1 -0
  139. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco.svg +8 -0
  140. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_7841.png +0 -0
  141. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_8841.png +0 -0
  142. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_8851.png +0 -0
  143. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_9861.png +0 -0
  144. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +3 -0
  145. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +5 -0
  146. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  147. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +1 -0
  148. package/projects/tuki/widgets/user-device-manage/src/assets/icons/info-circle-regular.svg +1 -0
  149. package/projects/tuki/widgets/user-device-manage/src/assets/icons/people-regular.svg +1 -0
  150. package/projects/tuki/widgets/user-device-manage/src/assets/icons/plus-regular.svg +1 -0
  151. package/projects/tuki/widgets/user-device-manage/src/assets/icons/settings-light.svg +1 -0
  152. package/projects/tuki/widgets/user-device-manage/src/assets/icons/settings-regular.svg +1 -0
  153. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  154. package/projects/tuki/widgets/user-device-manage/src/assets/icons/warning-regular.svg +1 -0
  155. package/projects/tuki/widgets/user-device-manage/src/assets/info-circle-bold.svg +1 -0
  156. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +292 -0
  157. package/projects/tuki/widgets/user-device-manage/src/classes/deviceProfile.ts +60 -0
  158. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +50 -0
  159. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +177 -0
  160. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +21 -0
  161. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +41 -0
  162. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +144 -0
  163. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +40 -0
  164. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +6 -0
  165. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +169 -0
  166. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +167 -0
  167. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +50 -0
  168. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +19 -0
  169. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +225 -0
  170. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +8 -0
  171. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +16 -0
  172. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +14 -0
  173. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +80 -0
  174. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +35 -0
  175. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -0
  176. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +97 -0
  177. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -0
  178. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +6 -0
  179. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +20 -0
  180. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +13 -0
  181. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -0
  182. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -0
  183. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -0
  184. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +241 -0
  185. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +500 -0
  186. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +194 -0
  187. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.html +52 -0
  188. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.scss +219 -0
  189. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.ts +38 -0
  190. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +27 -0
  191. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +131 -0
  192. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +25 -0
  193. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +281 -0
  194. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +766 -0
  195. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +142 -0
  196. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +9 -0
  197. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +10 -0
  198. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +35 -0
  199. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +67 -0
  200. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +98 -0
  201. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  202. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +87 -0
  203. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +33 -0
  204. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +84 -0
  205. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +46 -0
  206. package/projects/tuki/widgets/user-device-manage/src/pipes/mac-address.pipe.ts +24 -0
  207. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +25 -0
  208. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +87 -0
  209. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +17 -0
  210. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +95 -0
  211. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +111 -0
  212. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +89 -0
  213. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +68 -0
  214. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +25 -0
  215. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +82 -0
  216. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +203 -0
  217. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +360 -0
  218. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +87 -0
  219. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +829 -0
  220. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.html +13 -0
  221. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.scss +48 -0
  222. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.spec.ts +23 -0
  223. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.ts +10 -0
  224. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +90 -0
  225. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +284 -0
  226. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +33 -0
  227. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +127 -0
  228. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +30 -0
  229. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +79 -0
  230. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +7 -0
  231. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  232. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +13 -0
  233. package/projects/tuki/widgets/user-manage/ng-package.json +7 -0
  234. package/projects/tuki/widgets/user-manage/src/app.constants.ts +54 -0
  235. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-down-bold.svg +1 -0
  236. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +5 -0
  237. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right-bold.svg +1 -0
  238. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +5 -0
  239. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_7841.png +0 -0
  240. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_8841.png +0 -0
  241. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_8851.png +0 -0
  242. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_9861.png +0 -0
  243. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +5 -0
  244. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  245. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +1 -0
  246. package/projects/tuki/widgets/user-manage/src/assets/icons/info-circle-bold.svg +1 -0
  247. package/projects/tuki/widgets/user-manage/src/assets/icons/people-regular.svg +1 -0
  248. package/projects/tuki/widgets/user-manage/src/assets/icons/settings-light.svg +1 -0
  249. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  250. package/projects/tuki/widgets/user-manage/src/classes/device.ts +232 -0
  251. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +44 -0
  252. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +161 -0
  253. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +21 -0
  254. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +44 -0
  255. package/projects/tuki/widgets/user-manage/src/classes/line.ts +145 -0
  256. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +39 -0
  257. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +18 -0
  258. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +6 -0
  259. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +165 -0
  260. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +6 -0
  261. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +49 -0
  262. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +225 -0
  263. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +42 -0
  264. package/projects/tuki/widgets/user-manage/src/classes/user.ts +8 -0
  265. package/projects/tuki/widgets/user-manage/src/common-functions.ts +16 -0
  266. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +32 -0
  267. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +305 -0
  268. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +26 -0
  269. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.html +13 -0
  270. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.scss +154 -0
  271. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.ts +34 -0
  272. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +9 -0
  273. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +10 -0
  274. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +35 -0
  275. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +68 -0
  276. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +125 -0
  277. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +93 -0
  278. package/projects/tuki/widgets/user-manage/src/material.module.ts +85 -0
  279. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +33 -0
  280. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +84 -0
  281. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +46 -0
  282. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +25 -0
  283. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +90 -0
  284. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +116 -0
  285. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +31 -0
  286. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +68 -0
  287. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +25 -0
  288. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +35 -0
  289. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +203 -0
  290. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +288 -0
  291. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +59 -0
  292. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +71 -0
  293. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +93 -0
  294. package/projects/tuki/widgets/user-manage/src/styles/form.scss +231 -0
  295. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +41 -0
  296. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +128 -0
  297. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +30 -0
  298. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -0
  299. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +444 -0
  300. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -0
  301. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +97 -0
  302. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +444 -0
  303. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +89 -0
  304. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +68 -0
  305. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +37 -0
  306. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +121 -0
  307. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +19 -0
  308. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +313 -0
  309. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +638 -0
  310. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +222 -0
  311. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +65 -0
  312. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.html +64 -0
  313. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.scss +17 -0
  314. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.ts +8 -0
  315. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +7 -0
  316. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  317. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +13 -0
  318. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +26 -0
  319. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +41 -0
  320. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +41 -0
  321. package/projects/tuki/widgets/users-list/ng-package.json +7 -0
  322. package/projects/tuki/widgets/users-list/src/app.constants.ts +54 -0
  323. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +3 -0
  324. package/projects/tuki/widgets/users-list/src/assets/icons/cogs.svg +8 -0
  325. package/projects/tuki/widgets/users-list/src/assets/icons/copy-regular.svg +1 -0
  326. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +1 -0
  327. package/projects/tuki/widgets/users-list/src/assets/icons/info-circle-regular.svg +1 -0
  328. package/projects/tuki/widgets/users-list/src/assets/icons/info.svg +5 -0
  329. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +14 -0
  330. package/projects/tuki/widgets/users-list/src/assets/icons/mt.svg +3 -0
  331. package/projects/tuki/widgets/users-list/src/assets/icons/settings-regular.svg +1 -0
  332. package/projects/tuki/widgets/users-list/src/assets/icons/webex.svg +7 -0
  333. package/projects/tuki/widgets/users-list/src/assets/icons/webex_logo_icon.svg +305 -0
  334. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +3 -0
  335. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +36 -0
  336. package/projects/tuki/widgets/users-list/src/classes/device.ts +225 -0
  337. package/projects/tuki/widgets/users-list/src/classes/line.ts +144 -0
  338. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +225 -0
  339. package/projects/tuki/widgets/users-list/src/classes/notification.ts +38 -0
  340. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +18 -0
  341. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +74 -0
  342. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +6 -0
  343. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +225 -0
  344. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +47 -0
  345. package/projects/tuki/widgets/users-list/src/classes/user.ts +8 -0
  346. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.html +39 -0
  347. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.scss +41 -0
  348. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.ts +21 -0
  349. package/projects/tuki/widgets/users-list/src/material.module.ts +97 -0
  350. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +37 -0
  351. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +129 -0
  352. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +46 -0
  353. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +31 -0
  354. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +20 -0
  355. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +26 -0
  356. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +222 -0
  357. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +249 -0
  358. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +206 -0
  359. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +12 -0
  360. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +41 -0
  361. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +36 -0
  362. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +14 -0
  363. package/projects/tuki/widgets/users-list/src/services/api.service.ts +90 -0
  364. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +128 -0
  365. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +11 -0
  366. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +59 -0
  367. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +68 -0
  368. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +25 -0
  369. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +26 -0
  370. package/projects/tuki/widgets/users-list/src/services/user.service.ts +159 -0
  371. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +160 -0
  372. package/projects/tuki/widgets/users-list/src/styles/styles.scss +639 -0
  373. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +15 -0
  374. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +103 -0
  375. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -0
  376. package/projects/tuki/widgets/users-list/src/users-list.component.css +4 -0
  377. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +1 -0
  378. package/projects/tuki/widgets/users-list/src/users-list.component.html +261 -0
  379. package/projects/tuki/widgets/users-list/src/users-list.component.scss +629 -0
  380. package/projects/tuki/widgets/users-list/src/users-list.component.ts +410 -0
  381. package/projects/tuki/widgets/users-list/src/users-list.module.ts +65 -0
  382. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +11 -0
  383. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +1 -0
  384. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +7 -0
  385. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +17 -0
  386. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +13 -0
  387. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +32 -0
  388. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +33 -0
  389. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +84 -0
  390. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +46 -0
  391. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +45 -0
  392. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +1 -0
  393. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +26 -0
  394. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +41 -0
  395. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +41 -0
  396. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +71 -0
  397. package/projects/widgets-playground/src/app/app.component.html +130 -0
  398. package/projects/widgets-playground/src/app/app.component.scss +16 -0
  399. package/projects/widgets-playground/src/app/app.component.spec.ts +31 -0
  400. package/projects/widgets-playground/src/app/app.component.ts +31 -0
  401. package/projects/widgets-playground/src/app/app.module.ts +45 -0
  402. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  403. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  404. package/projects/widgets-playground/src/assets/icons/applications copy.svg +6 -0
  405. package/projects/widgets-playground/src/assets/icons/applications.svg +6 -0
  406. package/projects/widgets-playground/src/assets/icons/arrow-down-bold.svg +1 -0
  407. package/projects/widgets-playground/src/assets/icons/audio-prompts.svg +4 -0
  408. package/projects/widgets-playground/src/assets/icons/audioPrompts.svg +4 -0
  409. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  410. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  411. package/projects/widgets-playground/src/assets/icons/contactServiceQueues.svg +3 -0
  412. package/projects/widgets-playground/src/assets/icons/copy-regular.svg +1 -0
  413. package/projects/widgets-playground/src/assets/icons/csqs.svg +3 -0
  414. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  415. package/projects/widgets-playground/src/assets/icons/info-circle-regular.svg +1 -0
  416. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  417. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  418. package/projects/widgets-playground/src/assets/icons/mt.svg +3 -0
  419. package/projects/widgets-playground/src/assets/icons/phone-books.svg +6 -0
  420. package/projects/widgets-playground/src/assets/icons/phonebooks.svg +6 -0
  421. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  422. package/projects/widgets-playground/src/assets/icons/resource-group.svg +6 -0
  423. package/projects/widgets-playground/src/assets/icons/resource.svg +3 -0
  424. package/projects/widgets-playground/src/assets/icons/resourceGroups.svg +6 -0
  425. package/projects/widgets-playground/src/assets/icons/resources.svg +3 -0
  426. package/projects/widgets-playground/src/assets/icons/scripts copy.svg +12 -0
  427. package/projects/widgets-playground/src/assets/icons/scripts.svg +12 -0
  428. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  429. package/projects/widgets-playground/src/assets/icons/settings-regular.svg +1 -0
  430. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  431. package/projects/widgets-playground/src/assets/icons/skills copy.svg +3 -0
  432. package/projects/widgets-playground/src/assets/icons/skills.svg +3 -0
  433. package/projects/widgets-playground/src/assets/icons/teams copy.svg +3 -0
  434. package/projects/widgets-playground/src/assets/icons/teams.svg +3 -0
  435. package/projects/widgets-playground/src/assets/icons/triggers copy.svg +4 -0
  436. package/projects/widgets-playground/src/assets/icons/triggers.svg +4 -0
  437. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  438. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  439. package/projects/widgets-playground/src/assets/icons/webex.svg +7 -0
  440. package/projects/widgets-playground/src/assets/icons/webex_logo_icon.svg +305 -0
  441. package/projects/widgets-playground/src/assets/icons/wrapUpCodes.svg +3 -0
  442. package/projects/widgets-playground/src/assets/icons/wrapup-codes.svg +3 -0
  443. package/projects/widgets-playground/src/assets/icons/xml copy.svg +6 -0
  444. package/projects/widgets-playground/src/assets/icons/xml.svg +6 -0
  445. package/projects/widgets-playground/src/favicon.ico +0 -0
  446. package/projects/widgets-playground/src/index.html +13 -0
  447. package/projects/widgets-playground/src/main.ts +7 -0
  448. package/projects/widgets-playground/src/styles.scss +24 -0
  449. package/projects/widgets-playground/tsconfig.app.json +14 -0
  450. package/projects/widgets-playground/tsconfig.spec.json +14 -0
  451. package/proxy.conf.js +23 -0
  452. package/tsconfig.json +46 -0
  453. package/contact-center/cc-readiness/cc-readiness.module.d.ts +0 -19
  454. package/contact-center/cc-readiness/cc-readiness.service.d.ts +0 -12
  455. package/contact-center/cc-readiness/components/card/card.component.d.ts +0 -6
  456. package/contact-center/cc-readiness/types/cc-readiness.d.ts +0 -20
  457. package/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.d.ts +0 -52
  458. package/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.d.ts +0 -26
  459. package/contact-center/index.d.ts +0 -5
  460. package/contact-center/public-api.d.ts +0 -3
  461. package/contact-center/shared/api.endpoints.d.ts +0 -6
  462. package/contact-center/shared/api.service.d.ts +0 -20
  463. package/contact-center/shared/material.module.d.ts +0 -15
  464. package/contact-center/shared/shared.module.d.ts +0 -10
  465. package/di2mt/api/api.endpoints.d.ts +0 -31
  466. package/di2mt/index.d.ts +0 -5
  467. package/di2mt/public-api.d.ts +0 -13
  468. package/di2mt/shared/components/card/card.component.d.ts +0 -6
  469. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +0 -23
  470. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +0 -14
  471. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +0 -15
  472. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +0 -9
  473. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +0 -14
  474. package/di2mt/shared/constants/app.constants.d.ts +0 -74
  475. package/di2mt/shared/material.module.d.ts +0 -15
  476. package/di2mt/shared/services/api.service.d.ts +0 -20
  477. package/di2mt/shared/shared.module.d.ts +0 -16
  478. package/di2mt/shared/types/constants.d.ts +0 -15
  479. package/di2mt/shared/types/data-table.d.ts +0 -5
  480. package/di2mt/shared/types/table/filter.d.ts +0 -16
  481. package/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.d.ts +0 -11
  482. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +0 -69
  483. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +0 -15
  484. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +0 -84
  485. package/di2mt/widgets/site-upgrade/types/user-upgrade.d.ts +0 -26
  486. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +0 -19
  487. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +0 -19
  488. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +0 -18
  489. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +0 -19
  490. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +0 -19
  491. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +0 -15
  492. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +0 -18
  493. package/di2mt/widgets/upgrade-overview/types/upgrade-overview.d.ts +0 -56
  494. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +0 -15
  495. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +0 -17
  496. package/di2mt/widgets/user-upgrade/types/user-upgrade.d.ts +0 -32
  497. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +0 -79
  498. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +0 -16
  499. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +0 -41
  500. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +0 -71
  501. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +0 -35
  502. package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +0 -13
  503. package/esm2020/contact-center/cc-readiness/types/cc-readiness.mjs +0 -5
  504. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +0 -187
  505. package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +0 -47
  506. package/esm2020/contact-center/public-api.mjs +0 -4
  507. package/esm2020/contact-center/shared/api.endpoints.mjs +0 -7
  508. package/esm2020/contact-center/shared/api.service.mjs +0 -86
  509. package/esm2020/contact-center/shared/material.module.mjs +0 -76
  510. package/esm2020/contact-center/shared/shared.module.mjs +0 -33
  511. package/esm2020/contact-center/tuki-io-tuki-widgets-contact-center.mjs +0 -5
  512. package/esm2020/di2mt/api/api.endpoints.mjs +0 -32
  513. package/esm2020/di2mt/public-api.mjs +0 -24
  514. package/esm2020/di2mt/shared/components/card/card.component.mjs +0 -13
  515. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +0 -66
  516. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +0 -47
  517. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +0 -43
  518. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +0 -36
  519. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +0 -37
  520. package/esm2020/di2mt/shared/constants/app.constants.mjs +0 -95
  521. package/esm2020/di2mt/shared/material.module.mjs +0 -76
  522. package/esm2020/di2mt/shared/services/api.service.mjs +0 -86
  523. package/esm2020/di2mt/shared/shared.module.mjs +0 -63
  524. package/esm2020/di2mt/shared/types/constants.mjs +0 -20
  525. package/esm2020/di2mt/shared/types/data-table.mjs +0 -2
  526. package/esm2020/di2mt/shared/types/table/filter.mjs +0 -2
  527. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +0 -5
  528. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +0 -38
  529. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +0 -433
  530. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +0 -53
  531. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +0 -92
  532. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +0 -3
  533. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +0 -64
  534. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +0 -64
  535. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +0 -83
  536. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +0 -45
  537. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +0 -45
  538. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +0 -86
  539. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +0 -74
  540. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +0 -2
  541. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +0 -59
  542. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +0 -82
  543. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +0 -3
  544. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +0 -376
  545. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +0 -59
  546. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +0 -80
  547. package/esm2020/lib/widgets.component.mjs +0 -22
  548. package/esm2020/lib/widgets.module.mjs +0 -21
  549. package/esm2020/lib/widgets.service.mjs +0 -14
  550. package/esm2020/public-api.mjs +0 -7
  551. package/esm2020/tuki-io-tuki-widgets.mjs +0 -5
  552. package/esm2020/user-device-manage/public-api.mjs +0 -9
  553. package/esm2020/user-device-manage/src/app.constants.mjs +0 -97
  554. package/esm2020/user-device-manage/src/classes/device.mjs +0 -85
  555. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +0 -34
  556. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +0 -2
  557. package/esm2020/user-device-manage/src/classes/line-association.mjs +0 -121
  558. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +0 -10
  559. package/esm2020/user-device-manage/src/classes/line-directory.mjs +0 -27
  560. package/esm2020/user-device-manage/src/classes/line.mjs +0 -18
  561. package/esm2020/user-device-manage/src/classes/notification.mjs +0 -32
  562. package/esm2020/user-device-manage/src/classes/recording-options.mjs +0 -7
  563. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +0 -111
  564. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +0 -21
  565. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +0 -32
  566. package/esm2020/user-device-manage/src/classes/types.mjs +0 -24
  567. package/esm2020/user-device-manage/src/common-functions.mjs +0 -19
  568. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +0 -34
  569. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +0 -31
  570. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +0 -16
  571. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +0 -64
  572. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +0 -179
  573. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +0 -43
  574. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +0 -24
  575. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +0 -141
  576. package/esm2020/user-device-manage/src/environments/environment.mjs +0 -11
  577. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +0 -36
  578. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  579. package/esm2020/user-device-manage/src/material.module.mjs +0 -192
  580. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +0 -35
  581. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +0 -26
  582. package/esm2020/user-device-manage/src/services/api.service.mjs +0 -79
  583. package/esm2020/user-device-manage/src/services/device.service.mjs +0 -83
  584. package/esm2020/user-device-manage/src/services/dns.service.mjs +0 -104
  585. package/esm2020/user-device-manage/src/services/line.service.mjs +0 -76
  586. package/esm2020/user-device-manage/src/services/notification.service.mjs +0 -62
  587. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  588. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +0 -70
  589. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +0 -197
  590. package/esm2020/user-device-manage/src/services/user.service.mjs +0 -311
  591. package/esm2020/user-device-manage/src/services/utils.service.mjs +0 -87
  592. package/esm2020/user-device-manage/src/services/validation.service.mjs +0 -760
  593. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
  594. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +0 -116
  595. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +0 -14
  596. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +0 -5
  597. package/esm2020/user-manage/public-api.mjs +0 -7
  598. package/esm2020/user-manage/src/app.constants.mjs +0 -54
  599. package/esm2020/user-manage/src/classes/device.mjs +0 -37
  600. package/esm2020/user-manage/src/classes/line-association-interface.mjs +0 -2
  601. package/esm2020/user-manage/src/classes/line-association.mjs +0 -110
  602. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +0 -10
  603. package/esm2020/user-manage/src/classes/line-directory.mjs +0 -28
  604. package/esm2020/user-manage/src/classes/line.mjs +0 -18
  605. package/esm2020/user-manage/src/classes/notification.mjs +0 -32
  606. package/esm2020/user-manage/src/classes/pagination.mjs +0 -8
  607. package/esm2020/user-manage/src/classes/recording-options.mjs +0 -7
  608. package/esm2020/user-manage/src/classes/simplified-user.mjs +0 -109
  609. package/esm2020/user-manage/src/classes/table-data.mjs +0 -2
  610. package/esm2020/user-manage/src/classes/translation-pattern.mjs +0 -32
  611. package/esm2020/user-manage/src/classes/user-list.mjs +0 -10
  612. package/esm2020/user-manage/src/common-functions.mjs +0 -19
  613. package/esm2020/user-manage/src/device-list/device-list.component.mjs +0 -26
  614. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +0 -33
  615. package/esm2020/user-manage/src/environments/environment.mjs +0 -11
  616. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +0 -36
  617. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -81
  618. package/esm2020/user-manage/src/material.module.mjs +0 -188
  619. package/esm2020/user-manage/src/notifications/notification.component.mjs +0 -35
  620. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +0 -25
  621. package/esm2020/user-manage/src/services/api.service.mjs +0 -79
  622. package/esm2020/user-manage/src/services/dns.service.mjs +0 -110
  623. package/esm2020/user-manage/src/services/line.service.mjs +0 -34
  624. package/esm2020/user-manage/src/services/notification.service.mjs +0 -62
  625. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  626. package/esm2020/user-manage/src/services/site-settings.service.mjs +0 -36
  627. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +0 -197
  628. package/esm2020/user-manage/src/services/user.service.mjs +0 -249
  629. package/esm2020/user-manage/src/services/users-search.service.mjs +0 -50
  630. package/esm2020/user-manage/src/services/utils.service.mjs +0 -73
  631. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +0 -65
  632. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +0 -75
  633. package/esm2020/user-manage/src/user-info/user-info.component.mjs +0 -20
  634. package/esm2020/user-manage/src/user-manage-widget.component.mjs +0 -219
  635. package/esm2020/user-manage/src/user-manage.module.mjs +0 -102
  636. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +0 -14
  637. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +0 -43
  638. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +0 -5
  639. package/esm2020/users-list/public-api.mjs +0 -9
  640. package/esm2020/users-list/src/app.constants.mjs +0 -54
  641. package/esm2020/users-list/src/classes/app-location.mjs +0 -32
  642. package/esm2020/users-list/src/classes/device.mjs +0 -7
  643. package/esm2020/users-list/src/classes/line.mjs +0 -18
  644. package/esm2020/users-list/src/classes/move-user.mjs +0 -178
  645. package/esm2020/users-list/src/classes/notification.mjs +0 -31
  646. package/esm2020/users-list/src/classes/pagination.mjs +0 -8
  647. package/esm2020/users-list/src/classes/simlified-user.mjs +0 -50
  648. package/esm2020/users-list/src/classes/table-data.mjs +0 -2
  649. package/esm2020/users-list/src/classes/user-list.mjs +0 -14
  650. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +0 -25
  651. package/esm2020/users-list/src/material.module.mjs +0 -216
  652. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +0 -38
  653. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +0 -23
  654. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +0 -189
  655. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +0 -38
  656. package/esm2020/users-list/src/services/api-webex.service.mjs +0 -18
  657. package/esm2020/users-list/src/services/api.service.mjs +0 -78
  658. package/esm2020/users-list/src/services/dns.service.mjs +0 -120
  659. package/esm2020/users-list/src/services/events-communication.service.mjs +0 -14
  660. package/esm2020/users-list/src/services/move-user.service.mjs +0 -53
  661. package/esm2020/users-list/src/services/notification.service.mjs +0 -62
  662. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +0 -25
  663. package/esm2020/users-list/src/services/site-settings.service.mjs +0 -27
  664. package/esm2020/users-list/src/services/user.service.mjs +0 -142
  665. package/esm2020/users-list/src/services/users-search.service.mjs +0 -141
  666. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +0 -34
  667. package/esm2020/users-list/src/users-list.component.mjs +0 -339
  668. package/esm2020/users-list/src/users-list.module.mjs +0 -95
  669. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +0 -14
  670. package/esm2020/users-list/src/utils/common-functions.mjs +0 -32
  671. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +0 -43
  672. package/esm2020/users-list/src/utils/utils.service.mjs +0 -73
  673. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +0 -5
  674. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +0 -433
  675. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +0 -1
  676. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +0 -2220
  677. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +0 -1
  678. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3378
  679. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  680. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +0 -2219
  681. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  682. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +0 -2098
  683. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  684. package/fesm2015/tuki-io-tuki-widgets.mjs +0 -63
  685. package/fesm2015/tuki-io-tuki-widgets.mjs.map +0 -1
  686. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +0 -430
  687. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +0 -1
  688. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +0 -2204
  689. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +0 -1
  690. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3357
  691. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  692. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +0 -2205
  693. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  694. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +0 -2074
  695. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  696. package/fesm2020/tuki-io-tuki-widgets.mjs +0 -63
  697. package/fesm2020/tuki-io-tuki-widgets.mjs.map +0 -1
  698. package/index.d.ts +0 -5
  699. package/lib/widgets.component.d.ts +0 -8
  700. package/lib/widgets.module.d.ts +0 -7
  701. package/lib/widgets.service.d.ts +0 -6
  702. package/public-api.d.ts +0 -3
  703. package/user-device-manage/index.d.ts +0 -5
  704. package/user-device-manage/src/app.constants.d.ts +0 -76
  705. package/user-device-manage/src/classes/device.d.ts +0 -233
  706. package/user-device-manage/src/classes/deviceProfile.d.ts +0 -24
  707. package/user-device-manage/src/classes/line-association-interface.d.ts +0 -45
  708. package/user-device-manage/src/classes/line-association.d.ts +0 -62
  709. package/user-device-manage/src/classes/line-call-info-display.d.ts +0 -11
  710. package/user-device-manage/src/classes/line-directory.d.ts +0 -15
  711. package/user-device-manage/src/classes/line.d.ts +0 -140
  712. package/user-device-manage/src/classes/notification.d.ts +0 -18
  713. package/user-device-manage/src/classes/recording-options.d.ts +0 -5
  714. package/user-device-manage/src/classes/simplified-user.d.ts +0 -52
  715. package/user-device-manage/src/classes/site-defaults.d.ts +0 -146
  716. package/user-device-manage/src/classes/translation-pattern.d.ts +0 -19
  717. package/user-device-manage/src/classes/types.d.ts +0 -19
  718. package/user-device-manage/src/common-functions.d.ts +0 -1
  719. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +0 -20
  720. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +0 -15
  721. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +0 -7
  722. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +0 -24
  723. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +0 -89
  724. package/user-device-manage/src/device-info/device-info.component.d.ts +0 -15
  725. package/user-device-manage/src/device-list/device-list.component.d.ts +0 -11
  726. package/user-device-manage/src/device-manage-widget.component.d.ts +0 -54
  727. package/user-device-manage/src/environments/environment.d.ts +0 -9
  728. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  729. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  730. package/user-device-manage/src/material.module.d.ts +0 -29
  731. package/user-device-manage/src/notifications/notification.component.d.ts +0 -19
  732. package/user-device-manage/src/pipes/mac-address.pipe.d.ts +0 -7
  733. package/user-device-manage/src/services/api.service.d.ts +0 -20
  734. package/user-device-manage/src/services/device.service.d.ts +0 -21
  735. package/user-device-manage/src/services/dns.service.d.ts +0 -14
  736. package/user-device-manage/src/services/line.service.d.ts +0 -33
  737. package/user-device-manage/src/services/notification.service.d.ts +0 -18
  738. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  739. package/user-device-manage/src/services/site-settings.service.d.ts +0 -25
  740. package/user-device-manage/src/services/sorting-utils.service.d.ts +0 -26
  741. package/user-device-manage/src/services/user.service.d.ts +0 -61
  742. package/user-device-manage/src/services/utils.service.d.ts +0 -10
  743. package/user-device-manage/src/services/validation.service.d.ts +0 -165
  744. package/user-device-manage/src/shared/tk-page-section/page-section.component.d.ts +0 -6
  745. package/user-device-manage/src/user-device-manage.module.d.ts +0 -25
  746. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  747. package/user-manage/index.d.ts +0 -5
  748. package/user-manage/src/app.constants.d.ts +0 -33
  749. package/user-manage/src/classes/device.d.ts +0 -203
  750. package/user-manage/src/classes/line-association-interface.d.ts +0 -41
  751. package/user-manage/src/classes/line-association.d.ts +0 -55
  752. package/user-manage/src/classes/line-call-info-display.d.ts +0 -11
  753. package/user-manage/src/classes/line-directory.d.ts +0 -17
  754. package/user-manage/src/classes/line.d.ts +0 -141
  755. package/user-manage/src/classes/notification.d.ts +0 -18
  756. package/user-manage/src/classes/pagination.d.ts +0 -13
  757. package/user-manage/src/classes/recording-options.d.ts +0 -5
  758. package/user-manage/src/classes/simplified-user.d.ts +0 -50
  759. package/user-manage/src/classes/table-data.d.ts +0 -5
  760. package/user-manage/src/classes/translation-pattern.d.ts +0 -18
  761. package/user-manage/src/classes/user-list.d.ts +0 -34
  762. package/user-manage/src/common-functions.d.ts +0 -1
  763. package/user-manage/src/device-list/device-list.component.d.ts +0 -11
  764. package/user-manage/src/device-list/device-row/device-row.component.d.ts +0 -12
  765. package/user-manage/src/environments/environment.d.ts +0 -9
  766. package/user-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  767. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -37
  768. package/user-manage/src/material.module.d.ts +0 -28
  769. package/user-manage/src/notifications/notification.component.d.ts +0 -19
  770. package/user-manage/src/removeKynFromIBM.service.d.ts +0 -8
  771. package/user-manage/src/services/api.service.d.ts +0 -21
  772. package/user-manage/src/services/dns.service.d.ts +0 -14
  773. package/user-manage/src/services/line.service.d.ts +0 -17
  774. package/user-manage/src/services/notification.service.d.ts +0 -18
  775. package/user-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  776. package/user-manage/src/services/site-settings.service.d.ts +0 -9
  777. package/user-manage/src/services/sorting-utils.service.d.ts +0 -26
  778. package/user-manage/src/services/user.service.d.ts +0 -45
  779. package/user-manage/src/services/users-search.service.d.ts +0 -25
  780. package/user-manage/src/services/utils.service.d.ts +0 -9
  781. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +0 -24
  782. package/user-manage/src/user-calling/user-calling.component.d.ts +0 -30
  783. package/user-manage/src/user-info/user-info.component.d.ts +0 -9
  784. package/user-manage/src/user-manage-widget.component.d.ts +0 -45
  785. package/user-manage/src/user-manage.module.d.ts +0 -22
  786. package/user-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  787. package/user-manage/src/utils/pagination/pagination.component.d.ts +0 -18
  788. package/users-list/index.d.ts +0 -5
  789. package/users-list/src/app.constants.d.ts +0 -36
  790. package/users-list/src/classes/app-location.d.ts +0 -17
  791. package/users-list/src/classes/device.d.ts +0 -224
  792. package/users-list/src/classes/line.d.ts +0 -140
  793. package/users-list/src/classes/move-user.d.ts +0 -85
  794. package/users-list/src/classes/notification.d.ts +0 -18
  795. package/users-list/src/classes/pagination.d.ts +0 -13
  796. package/users-list/src/classes/simlified-user.d.ts +0 -25
  797. package/users-list/src/classes/table-data.d.ts +0 -5
  798. package/users-list/src/classes/user-list.d.ts +0 -36
  799. package/users-list/src/components/table-toolbar/table-toolbar.component.d.ts +0 -10
  800. package/users-list/src/material.module.d.ts +0 -32
  801. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +0 -21
  802. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +0 -12
  803. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +0 -55
  804. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +0 -17
  805. package/users-list/src/services/api-webex.service.d.ts +0 -8
  806. package/users-list/src/services/api.service.d.ts +0 -21
  807. package/users-list/src/services/dns.service.d.ts +0 -18
  808. package/users-list/src/services/events-communication.service.d.ts +0 -8
  809. package/users-list/src/services/move-user.service.d.ts +0 -17
  810. package/users-list/src/services/notification.service.d.ts +0 -18
  811. package/users-list/src/services/removeKynFromIBM.service.d.ts +0 -8
  812. package/users-list/src/services/site-settings.service.d.ts +0 -11
  813. package/users-list/src/services/user.service.d.ts +0 -35
  814. package/users-list/src/services/users-search.service.d.ts +0 -37
  815. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +0 -20
  816. package/users-list/src/users-list.component.d.ts +0 -62
  817. package/users-list/src/users-list.module.d.ts +0 -19
  818. package/users-list/src/utils/app-loader/app-loader.d.ts +0 -6
  819. package/users-list/src/utils/common-functions.d.ts +0 -2
  820. package/users-list/src/utils/pagination/pagination.component.d.ts +0 -18
  821. package/users-list/src/utils/utils.service.d.ts +0 -9
  822. /package/{di2mt → projects/tuki/widgets/di2mt}/README.md +0 -0
  823. /package/{user-device-manage/public-api.d.ts → projects/tuki/widgets/user-device-manage/public-api.ts} +0 -0
  824. /package/{user-manage/public-api.d.ts → projects/tuki/widgets/user-manage/public-api.ts} +0 -0
  825. /package/{users-list/public-api.d.ts → projects/tuki/widgets/users-list/public-api.ts} +0 -0
@@ -1,197 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- const string_array = function (original, updated, fullKey) {
4
- if (!updated || !SortingUtilsService.differs(original, updated)) {
5
- return null;
6
- }
7
- return `${fullKey}=${updated.join(',')}`;
8
- };
9
- const line_reference = function (original, updated, fullKey) {
10
- if (!updated || !SortingUtilsService.differs(original, updated)) {
11
- return null;
12
- }
13
- // @ts-ignore
14
- return Object.keys(updated).map(key => `${fullKey}.${key}=${updated[key]}`);
15
- };
16
- const nullable = function (original, updated, fullKey) {
17
- if (!original && updated) {
18
- // @ts-ignore
19
- return Object.keys(updated).map(key => `${fullKey}.${key}=${updated[key]}`);
20
- }
21
- else if (original && !updated) {
22
- return `${fullKey}=null`;
23
- }
24
- else {
25
- return SortingUtilsService.diff(original, updated, fullKey, []);
26
- }
27
- };
28
- export class SortingUtilsService {
29
- static sortDevicesByTypeAndName(array) {
30
- if (!array) {
31
- return null;
32
- }
33
- return array.sort((a, b) => {
34
- if (a.deviceType === b.deviceType) {
35
- return (a.name < b.name) ? -1 : (a.name > b.name) ? 1 : 0;
36
- }
37
- else {
38
- return (a.deviceType < b.deviceType) ? -1 : 1;
39
- }
40
- });
41
- }
42
- static sortLinesByDirectoryName(array) {
43
- if (!array) {
44
- return null;
45
- }
46
- return array.sort((a, b) => {
47
- if (!a.directoryNumber && !b.directoryNumber) {
48
- return 0;
49
- }
50
- if (a.directoryNumber && !b.directoryNumber) {
51
- return 1;
52
- }
53
- if (!a.directoryNumber && b.directoryNumber) {
54
- return -1;
55
- }
56
- const directoryNumberA = a.directoryNumber.directoryNumber;
57
- const directoryNumberB = b.directoryNumber.directoryNumber;
58
- return (directoryNumberA < directoryNumberB) ? -1 : (directoryNumberA > directoryNumberB) ? 1 : 0;
59
- });
60
- }
61
- static sortLineAssociationsByPosition(array) {
62
- if (!array) {
63
- return null;
64
- }
65
- return array.sort((a, b) => {
66
- if (!a.position && !b.position) {
67
- return 0;
68
- }
69
- if (a.position && !b.position) {
70
- return 1;
71
- }
72
- if (!a.position && b.position) {
73
- return -1;
74
- }
75
- const positionA = a.position;
76
- const positionB = b.position;
77
- return (positionA < positionB) ? -1 : (positionA > positionB) ? 1 : 0;
78
- });
79
- }
80
- static sortSortArrayByProperty(array, sortBy) {
81
- if (!array) {
82
- return null;
83
- }
84
- return array.sort((a, b) => {
85
- if (!a[sortBy] && !b[sortBy]) {
86
- return 0;
87
- }
88
- if (a[sortBy] && !b[sortBy]) {
89
- return 1;
90
- }
91
- if (!a[sortBy] && b[sortBy]) {
92
- return -1;
93
- }
94
- const positionA = a[sortBy];
95
- const positionB = b[sortBy];
96
- return (positionA < positionB) ? -1 : (positionA > positionB) ? 1 : 0;
97
- });
98
- }
99
- static diff(origObject, updatedObj, path, keysToIgnore) {
100
- let result = [];
101
- if (Object.is(origObject, updatedObj)) {
102
- return undefined;
103
- }
104
- if (!updatedObj || typeof updatedObj !== 'object') {
105
- return updatedObj;
106
- }
107
- const concat = Array.from(new Set([...Object.keys(origObject || {}), ...Object.keys(updatedObj || {})]));
108
- const filter = keysToIgnore ? concat.filter(key => !keysToIgnore.includes(key)) : concat;
109
- filter
110
- .forEach(key => {
111
- // @ts-ignore
112
- if (this.dictionary[key]) {
113
- // @ts-ignore
114
- const complexResult = this.dictionary[key](origObject[key], updatedObj[key], `${path}${path ? '.' : ''}${key}`);
115
- if (complexResult) {
116
- if (Array.isArray(complexResult)) {
117
- result = [...result, ...complexResult];
118
- }
119
- else {
120
- result.push(complexResult);
121
- }
122
- }
123
- }
124
- else if (typeof updatedObj[key] === 'object' && typeof origObject[key] === 'object') {
125
- if (SortingUtilsService.differs(updatedObj[key], origObject[key])) {
126
- const newPath = `${path}${path ? '.' : ''}${key}`;
127
- const values = SortingUtilsService.diff(origObject[key], updatedObj[key], newPath, keysToIgnore);
128
- if (values !== undefined) {
129
- result = [...result, ...values];
130
- }
131
- }
132
- }
133
- else if (updatedObj && !origObject || updatedObj[key] !== origObject[key] && !Object.is(origObject[key], updatedObj[key])) {
134
- const value = updatedObj ? SortingUtilsService.formatIfEmpty(updatedObj[key]) : null;
135
- result.push(`${path}${path ? '.' : ''}${key}=${value}`);
136
- }
137
- });
138
- return result;
139
- }
140
- static formatIfEmpty(value) {
141
- if (value) {
142
- return value;
143
- }
144
- switch (typeof value) {
145
- case 'boolean':
146
- return value;
147
- case 'string':
148
- return '';
149
- default:
150
- return null;
151
- }
152
- }
153
- static differs(obj1, obj2) {
154
- return JSON.stringify(obj1) !== JSON.stringify(obj2);
155
- }
156
- }
157
- SortingUtilsService.dictionary = {
158
- features: string_array,
159
- services: string_array,
160
- directoryNumber: line_reference,
161
- primaryLineReference: line_reference,
162
- speedDials: function (original, updated, fullKey) {
163
- if (!updated || !SortingUtilsService.differs(original, updated)) {
164
- return null;
165
- }
166
- // todo only changes, identification
167
- let map = [];
168
- updated.map((speedDial) => {
169
- const currentFullKey = `${fullKey}.${speedDial.index}`; // ${speedDial.type} CHECk ?
170
- map = [...map, Object.keys(speedDial).map(key => `${currentFullKey}.${key}=${speedDial[key]}`)];
171
- });
172
- return map;
173
- },
174
- lineAssociations: function (original, updated, fullKey) {
175
- if (!updated || !SortingUtilsService.differs(original, updated)) {
176
- return null;
177
- }
178
- let map = [];
179
- updated.map((lineAssociation) => {
180
- const currentFullKey = `${fullKey}.${lineAssociation.linePkid ? lineAssociation.linePkid : lineAssociation.lineLocalId}`;
181
- const originalLineAssociation = original.find(line => line.index === lineAssociation.index);
182
- if (SortingUtilsService.differs(originalLineAssociation, lineAssociation)) {
183
- const diff = SortingUtilsService.diff(originalLineAssociation, lineAssociation, currentFullKey, []);
184
- map = [...map, ...diff];
185
- }
186
- });
187
- return map;
188
- },
189
- enterpriseAltNum: nullable,
190
- e164AltNum: nullable
191
- };
192
- SortingUtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SortingUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
193
- SortingUtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SortingUtilsService });
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SortingUtilsService, decorators: [{
195
- type: Injectable
196
- }] });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy11dGlscy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvc2VydmljZXMvc29ydGluZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sWUFBWSxHQUFHLFVBQVUsUUFBa0IsRUFBRSxPQUFpQixFQUFFLE9BQWU7SUFDbkYsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDL0QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLFVBQVUsUUFBa0IsRUFBRSxPQUFpQixFQUFFLE9BQWU7SUFDckYsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDL0QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELGFBQWE7SUFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUcsVUFBVSxRQUFrQixFQUFFLE9BQWlCLEVBQUUsT0FBZTtJQUMvRSxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sRUFBRTtRQUN4QixhQUFhO1FBQ2Is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ekgsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUYsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsZUFBZSxDQUFDLEVBQUU7Z0JBQ3pFLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxnQkFBZ0IsRUFBRSxRQUFRO0lBQzFCLFVBQVUsRUFBRSxRQUFRO0NBQ3JCLENBQUM7aUhBcENTLG1CQUFtQjtxSEFBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB9IGZyb20gJy4vLi4vY2xhc3Nlcy9saW5lLWFzc29jaWF0aW9uLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IERldmljZUludGVyZmFjZSB9IGZyb20gJy4vLi4vY2xhc3Nlcy9kZXZpY2UnO1xyXG5pbXBvcnQgeyBMaW5lSW50ZXJmYWNlIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2xpbmUnO1xyXG5pbXBvcnQgeyBMaW5lQXNzb2NpYXRpb24gfSBmcm9tICcuLy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbic7XHJcblxyXG5jb25zdCBzdHJpbmdfYXJyYXkgPSBmdW5jdGlvbiAob3JpZ2luYWw6IHN0cmluZ1tdLCB1cGRhdGVkOiBzdHJpbmdbXSwgZnVsbEtleTogc3RyaW5nKSB7XHJcbiAgaWYgKCF1cGRhdGVkIHx8ICFTb3J0aW5nVXRpbHNTZXJ2aWNlLmRpZmZlcnMob3JpZ2luYWwsIHVwZGF0ZWQpKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgcmV0dXJuIGAke2Z1bGxLZXl9PSR7dXBkYXRlZC5qb2luKCcsJyl9YDtcclxufTtcclxuXHJcbmNvbnN0IGxpbmVfcmVmZXJlbmNlID0gZnVuY3Rpb24gKG9yaWdpbmFsOiBzdHJpbmdbXSwgdXBkYXRlZDogc3RyaW5nW10sIGZ1bGxLZXk6IHN0cmluZykge1xyXG4gIGlmICghdXBkYXRlZCB8fCAhU29ydGluZ1V0aWxzU2VydmljZS5kaWZmZXJzKG9yaWdpbmFsLCB1cGRhdGVkKSkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICByZXR1cm4gT2JqZWN0LmtleXModXBkYXRlZCkubWFwKGtleSA9PiBgJHtmdWxsS2V5fS4ke2tleX09JHt1cGRhdGVkW2tleV19YCk7XHJcbn07XHJcblxyXG5jb25zdCBudWxsYWJsZSA9IGZ1bmN0aW9uIChvcmlnaW5hbDogc3RyaW5nW10sIHVwZGF0ZWQ6IHN0cmluZ1tdLCBmdWxsS2V5OiBzdHJpbmcpIHtcclxuICBpZiAoIW9yaWdpbmFsICYmIHVwZGF0ZWQpIHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyh1cGRhdGVkKS5tYXAoa2V5ID0+IGAke2Z1bGxLZXl9LiR7a2V5fT0ke3VwZGF0ZWRba2V5XX1gKTtcclxuICB9IGVsc2UgaWYgKG9yaWdpbmFsICYmICF1cGRhdGVkKSB7XHJcbiAgICByZXR1cm4gYCR7ZnVsbEtleX09bnVsbGA7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBTb3J0aW5nVXRpbHNTZXJ2aWNlLmRpZmYob3JpZ2luYWwsIHVwZGF0ZWQsIGZ1bGxLZXksIFtdKTtcclxuICB9XHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTb3J0aW5nVXRpbHNTZXJ2aWNlIHtcclxuXHJcbiAgc3RhdGljIGRpY3Rpb25hcnkgPSB7XHJcbiAgICBmZWF0dXJlczogc3RyaW5nX2FycmF5LFxyXG4gICAgc2VydmljZXM6IHN0cmluZ19hcnJheSxcclxuICAgIGRpcmVjdG9yeU51bWJlcjogbGluZV9yZWZlcmVuY2UsXHJcbiAgICBwcmltYXJ5TGluZVJlZmVyZW5jZTogbGluZV9yZWZlcmVuY2UsXHJcbiAgICBzcGVlZERpYWxzOiBmdW5jdGlvbiAob3JpZ2luYWw6IGFueSwgdXBkYXRlZDogYW55LCBmdWxsS2V5OiBzdHJpbmcpIHtcclxuICAgICAgaWYgKCF1cGRhdGVkIHx8ICFTb3J0aW5nVXRpbHNTZXJ2aWNlLmRpZmZlcnMob3JpZ2luYWwsIHVwZGF0ZWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgLy8gdG9kbyBvbmx5IGNoYW5nZXMsIGlkZW50aWZpY2F0aW9uXHJcbiAgICAgIGxldCBtYXA6IGFueSA9IFtdO1xyXG4gICAgICB1cGRhdGVkLm1hcCgoc3BlZWREaWFsOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBjdXJyZW50RnVsbEtleSA9IGAke2Z1bGxLZXl9LiR7c3BlZWREaWFsLmluZGV4fWA7IC8vICR7c3BlZWREaWFsLnR5cGV9IENIRUNrID9cclxuICAgICAgICBtYXAgPSBbLi4ubWFwLCBPYmplY3Qua2V5cyhzcGVlZERpYWwpLm1hcChrZXkgPT4gYCR7Y3VycmVudEZ1bGxLZXl9LiR7a2V5fT0ke3NwZWVkRGlhbFtrZXldfWApXTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtYXA7XHJcbiAgICB9LFxyXG4gICAgbGluZUFzc29jaWF0aW9uczogZnVuY3Rpb24gKG9yaWdpbmFsOiBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2VbXSwgdXBkYXRlZDogTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlW10sIGZ1bGxLZXk6IHN0cmluZykge1xyXG4gICAgICBpZiAoIXVwZGF0ZWQgfHwgIVNvcnRpbmdVdGlsc1NlcnZpY2UuZGlmZmVycyhvcmlnaW5hbCwgdXBkYXRlZCkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbWFwOiBhbnkgPSBbXTtcclxuICAgICAgdXBkYXRlZC5tYXAoKGxpbmVBc3NvY2lhdGlvbjogTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEZ1bGxLZXkgPSBgJHtmdWxsS2V5fS4ke2xpbmVBc3NvY2lhdGlvbi5saW5lUGtpZCA/IGxpbmVBc3NvY2lhdGlvbi5saW5lUGtpZCA6IGxpbmVBc3NvY2lhdGlvbi5saW5lTG9jYWxJZH1gO1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTGluZUFzc29jaWF0aW9uID0gb3JpZ2luYWwuZmluZChsaW5lID0+IGxpbmUuaW5kZXggPT09IGxpbmVBc3NvY2lhdGlvbi5pbmRleCk7XHJcbiAgICAgICAgaWYgKFNvcnRpbmdVdGlsc1NlcnZpY2UuZGlmZmVycyhvcmlnaW5hbExpbmVBc3NvY2lhdGlvbiwgbGluZUFzc29jaWF0aW9uKSkge1xyXG4gICAgICAgICAgY29uc3QgZGlmZiA9IFNvcnRpbmdVdGlsc1NlcnZpY2UuZGlmZihvcmlnaW5hbExpbmVBc3NvY2lhdGlvbiwgbGluZUFzc29jaWF0aW9uLCBjdXJyZW50RnVsbEtleSwgW10pO1xyXG4gICAgICAgICAgbWFwID0gWy4uLm1hcCwgLi4uZGlmZl07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1hcDtcclxuICAgIH0sXHJcbiAgICBlbnRlcnByaXNlQWx0TnVtOiBudWxsYWJsZSxcclxuICAgIGUxNjRBbHROdW06IG51bGxhYmxlXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBzb3J0RGV2aWNlc0J5VHlwZUFuZE5hbWUoYXJyYXk6IEFycmF5PERldmljZUludGVyZmFjZT4pOiBhbnkge1xyXG4gICAgaWYgKCFhcnJheSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBhcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGlmIChhLmRldmljZVR5cGUgPT09IGIuZGV2aWNlVHlwZSkge1xyXG4gICAgICAgIHJldHVybiAoYS5uYW1lIDwgYi5uYW1lKSA/IC0xIDogKGEubmFtZSA+IGIubmFtZSkgPyAxIDogMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKGEuZGV2aWNlVHlwZSA8IGIuZGV2aWNlVHlwZSkgPyAtMSA6IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNvcnRMaW5lc0J5RGlyZWN0b3J5TmFtZShhcnJheTogTGluZUludGVyZmFjZVtdKTogYW55IHtcclxuICAgIGlmICghYXJyYXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBpZiAoIWEuZGlyZWN0b3J5TnVtYmVyICYmICFiLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhLmRpcmVjdG9yeU51bWJlciAmJiAhYi5kaXJlY3RvcnlOdW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWEuZGlyZWN0b3J5TnVtYmVyICYmIGIuZGlyZWN0b3J5TnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpcmVjdG9yeU51bWJlckEgPSBhLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXI7XHJcbiAgICAgIGNvbnN0IGRpcmVjdG9yeU51bWJlckIgPSBiLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXI7XHJcbiAgICAgIHJldHVybiAoZGlyZWN0b3J5TnVtYmVyQSA8IGRpcmVjdG9yeU51bWJlckIpID8gLTEgOiAoZGlyZWN0b3J5TnVtYmVyQSA+IGRpcmVjdG9yeU51bWJlckIpID8gMSA6IDA7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzb3J0TGluZUFzc29jaWF0aW9uc0J5UG9zaXRpb24oYXJyYXk6IExpbmVBc3NvY2lhdGlvbltdKTogYW55IHtcclxuICAgIGlmICghYXJyYXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBpZiAoIWEucG9zaXRpb24gJiYgIWIucG9zaXRpb24pIHtcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYS5wb3NpdGlvbiAmJiAhYi5wb3NpdGlvbikge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghYS5wb3NpdGlvbiAmJiBiLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uQSA9IGEucG9zaXRpb247XHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uQiA9IGIucG9zaXRpb247XHJcbiAgICAgIHJldHVybiAocG9zaXRpb25BIDwgcG9zaXRpb25CKSA/IC0xIDogKHBvc2l0aW9uQSA+IHBvc2l0aW9uQikgPyAxIDogMDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNvcnRTb3J0QXJyYXlCeVByb3BlcnR5KGFycmF5OiBhbnksIHNvcnRCeTogc3RyaW5nKTogYW55IHtcclxuICAgIGlmICghYXJyYXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFhW3NvcnRCeV0gJiYgIWJbc29ydEJ5XSkge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhW3NvcnRCeV0gJiYgIWJbc29ydEJ5XSkge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghYVtzb3J0QnldICYmIGJbc29ydEJ5XSkge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwb3NpdGlvbkEgPSBhW3NvcnRCeV07XHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uQiA9IGJbc29ydEJ5XTtcclxuICAgICAgcmV0dXJuIChwb3NpdGlvbkEgPCBwb3NpdGlvbkIpID8gLTEgOiAocG9zaXRpb25BID4gcG9zaXRpb25CKSA/IDEgOiAwO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGRpZmYob3JpZ09iamVjdDogYW55LCB1cGRhdGVkT2JqOiBhbnksIHBhdGg6IHN0cmluZywga2V5c1RvSWdub3JlOiBhbnkpIHtcclxuICAgIGxldCByZXN1bHQ6IGFueSA9IFtdO1xyXG4gICAgaWYgKE9iamVjdC5pcyhvcmlnT2JqZWN0LCB1cGRhdGVkT2JqKSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCF1cGRhdGVkT2JqIHx8IHR5cGVvZiB1cGRhdGVkT2JqICE9PSAnb2JqZWN0Jykge1xyXG4gICAgICByZXR1cm4gdXBkYXRlZE9iajtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmNhdCA9IEFycmF5LmZyb20obmV3IFNldChbLi4uT2JqZWN0LmtleXMob3JpZ09iamVjdCB8fCB7fSksIC4uLk9iamVjdC5rZXlzKHVwZGF0ZWRPYmogfHwge30pXSkpO1xyXG4gICAgY29uc3QgZmlsdGVyID0ga2V5c1RvSWdub3JlID8gY29uY2F0LmZpbHRlcihrZXkgPT4gIWtleXNUb0lnbm9yZS5pbmNsdWRlcyhrZXkpKSA6IGNvbmNhdDtcclxuICAgIGZpbHRlclxyXG4gICAgICAuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBpZiAodGhpcy5kaWN0aW9uYXJ5W2tleV0pIHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIGNvbnN0IGNvbXBsZXhSZXN1bHQgPSB0aGlzLmRpY3Rpb25hcnlba2V5XShvcmlnT2JqZWN0W2tleV0sIHVwZGF0ZWRPYmpba2V5XSwgYCR7cGF0aH0ke3BhdGggPyAnLicgOiAnJ30ke2tleX1gKTtcclxuICAgICAgICAgIGlmIChjb21wbGV4UmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbXBsZXhSZXN1bHQpKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0ID0gWy4uLnJlc3VsdCwgLi4uY29tcGxleFJlc3VsdF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY29tcGxleFJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB1cGRhdGVkT2JqW2tleV0gPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcmlnT2JqZWN0W2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoU29ydGluZ1V0aWxzU2VydmljZS5kaWZmZXJzKHVwZGF0ZWRPYmpba2V5XSwgb3JpZ09iamVjdFtrZXldKSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdQYXRoID0gYCR7cGF0aH0ke3BhdGggPyAnLicgOiAnJ30ke2tleX1gO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBTb3J0aW5nVXRpbHNTZXJ2aWNlLmRpZmYob3JpZ09iamVjdFtrZXldLCB1cGRhdGVkT2JqW2tleV0sIG5ld1BhdGgsIGtleXNUb0lnbm9yZSk7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZXMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIC4uLnZhbHVlc107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHVwZGF0ZWRPYmogJiYgIW9yaWdPYmplY3QgfHwgdXBkYXRlZE9ialtrZXldICE9PSBvcmlnT2JqZWN0W2tleV0gJiYgIU9iamVjdC5pcyhvcmlnT2JqZWN0W2tleV0sIHVwZGF0ZWRPYmpba2V5XSkpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdXBkYXRlZE9iaiA/IFNvcnRpbmdVdGlsc1NlcnZpY2UuZm9ybWF0SWZFbXB0eSh1cGRhdGVkT2JqW2tleV0pIDogbnVsbDtcclxuICAgICAgICAgIHJlc3VsdC5wdXNoKGAke3BhdGh9JHtwYXRoID8gJy4nIDogJyd9JHtrZXl9PSR7dmFsdWV9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9ybWF0SWZFbXB0eSh2YWx1ZTogYW55KTogYW55IHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xyXG4gICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZlcnMob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmoxKSAhPT0gSlNPTi5zdHJpbmdpZnkob2JqMik7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,311 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { of, forkJoin, Subject } from 'rxjs';
3
- import { SimplifiedUser } from './../classes/simplified-user';
4
- import { API } from '../app.constants';
5
- import { map } from 'rxjs/operators';
6
- import { UtilsService } from './utils.service';
7
- import { LineAssociation } from './../classes/line-association';
8
- import { SortingUtilsService } from './sorting-utils.service';
9
- import { Device } from './../classes/device';
10
- import { DeviceProfile } from '../classes/deviceProfile';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "./api.service";
13
- import * as i2 from "./line.service";
14
- export class UserService {
15
- get userName() {
16
- return this._userName;
17
- }
18
- get userLastName() {
19
- return this._userLastName;
20
- }
21
- get userDevice() {
22
- return this._userDevice;
23
- }
24
- get lineAssociation() {
25
- return this.user?.devices[0].lineAssociations[0];
26
- }
27
- get originLineAssociation() {
28
- return this.originUser?.devices[0].lineAssociations[0];
29
- }
30
- constructor(apiService, lineService) {
31
- this.apiService = apiService;
32
- this.lineService = lineService;
33
- this.siteId = -1;
34
- this.userId = '';
35
- this.userIdExistPending = false;
36
- this.hasExistedUserId = false;
37
- this.onUserLineSaved$ = new Subject();
38
- this.onFetchUserToken$ = new Subject();
39
- this._userName = '';
40
- this._userLastName = '';
41
- }
42
- ngOnInit() {
43
- console.log(this.siteId);
44
- }
45
- resetLineAssociation(deviceIndex, lineIndex, validationService) {
46
- const originLine = this.originUser?.devices[deviceIndex]?.lineAssociations[lineIndex];
47
- if (this.user?.devices[deviceIndex]?.lineAssociations[lineIndex] && originLine) {
48
- this.user.devices[deviceIndex].lineAssociations[lineIndex] = new LineAssociation(JSON.parse(JSON.stringify(originLine.getFullData())), validationService);
49
- }
50
- }
51
- resetDevice(currentDevice, validationService) {
52
- const originDevice = this.originUser.devices.find(device => device.name === currentDevice.name);
53
- const deviceInd = this.user.devices.findIndex(device => device.name === currentDevice.name);
54
- if (originDevice && deviceInd > -1) {
55
- const lineAssociations = this.user.devices[deviceInd].lineAssociations;
56
- this.user.devices[deviceInd] = new Device(JSON.parse(JSON.stringify(originDevice.getNoLinesFullData())), validationService);
57
- this.user.devices[deviceInd].lineAssociations = lineAssociations;
58
- console.log('device after reset = ', this.user.devices[deviceInd]);
59
- }
60
- }
61
- fetchUserToken(siteId, userId, validationService, isSetNewTokenOnly) {
62
- /*if (this.siteId === siteId && this.userId === userId && this.user) {
63
- return of(this.user);
64
- }*/
65
- this.siteId = siteId;
66
- this.userId = userId;
67
- return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
68
- .pipe(map((result) => {
69
- const user = result && Object.values(result)[0];
70
- const userToken = result && Object.keys(result)[0];
71
- if (user) {
72
- if (!isSetNewTokenOnly) {
73
- this.setSimplifiedUser(user, validationService, userToken);
74
- }
75
- else {
76
- this.user.token = user.token;
77
- this.originUser.token = user.token;
78
- }
79
- this.onFetchUserToken$.next(true);
80
- }
81
- return result;
82
- }));
83
- // .pipe(this.handleError(false, true));
84
- }
85
- fetchMTUserDevice(siteId, userId, deviceType) {
86
- this.siteId = siteId;
87
- this.userId = userId;
88
- return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
89
- .pipe(map((result) => {
90
- const user = result && Object.values(result)[0];
91
- if (user) {
92
- this._userName = user.firstName;
93
- this._userLastName = user.lastName;
94
- const foundDevice = user.devices.find((device) => device.deviceType === deviceType);
95
- this._userDevice = new DeviceProfile({
96
- ...foundDevice,
97
- model: foundDevice?.deviceType,
98
- macAddress: this.getMacAddress(foundDevice.name),
99
- lines: foundDevice?.lineAssociations?.map((line) => {
100
- return {
101
- name: line && line.directoryNumber && line.directoryNumber.routePartitionName && line.directoryNumber.routePartitionName || '',
102
- extension: line && line.directoryNumber && line.directoryNumber.routePartitionName && line.directoryNumber.directoryNumber || '',
103
- };
104
- }),
105
- softwareVersion: foundDevice?.firmwareVersion
106
- });
107
- }
108
- return this._userDevice;
109
- }));
110
- }
111
- getMacAddress(name) {
112
- const macAddress = name.match(/\d+/g);
113
- return macAddress && macAddress[0] && macAddress[0].length === 12 ? macAddress[0] : undefined;
114
- }
115
- fetchWebexUserDevice(customerId, userId, deviceType) {
116
- return forkJoin([
117
- this.apiService.fetch(API.WEBEX_USER_TOKEN.replace(':customerId', customerId).replace(':userId', encodeURIComponent(encodeURIComponent(userId)))),
118
- this.apiService.fetch(API.WEBEX_USER_DEVICES.replace(':customerId', customerId).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
119
- ])
120
- .pipe(map((results) => {
121
- this._userName = results[0].firstName;
122
- this._userLastName = results[0].lastName;
123
- if (results[1]) {
124
- const foundDevice = results[1].devices.find((device) => device.model === deviceType);
125
- this._userDevice = new DeviceProfile({
126
- ...foundDevice,
127
- macAddress: foundDevice.mac,
128
- maxLineCount: foundDevice?.deviceMembers?.maxLineCount,
129
- lines: foundDevice?.deviceMembers?.members?.map((member) => {
130
- return {
131
- name: `${member.firstName} ${member.lastName}`,
132
- extension: member.extension
133
- };
134
- })
135
- });
136
- }
137
- return this._userDevice;
138
- }));
139
- }
140
- updateUserFields(body) {
141
- if (!this.userId || !this.siteId || !this.user?.token) {
142
- return;
143
- }
144
- return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
145
- // .pipe(this.handleError(false, true));
146
- }
147
- fetchUserById(id) {
148
- this.userIdExistPending = true;
149
- return this.apiService.fetch(API.USER_BY_ID.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))))
150
- .pipe(map(result => {
151
- this.userIdExistPending = false;
152
- return result;
153
- }));
154
- }
155
- fetchLeanUserConversationById(id) {
156
- return this.apiService.fetch(API.LEAN_USER_CONVERSATION_START.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))));
157
- }
158
- fetchLeanUserDevicesConversationById(id) {
159
- return this.apiService.fetch(API.LEAN_USER_DEVICES_CONVERSATION_START.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))));
160
- }
161
- fetchLeanUserLinesConversationById(id, leanUserDevicesToken) {
162
- return this.apiService.fetch(API.LEAN_USER_LINES_CONVERSATION_START.replace(':siteId', String(this.siteId))
163
- .replace(':userId', encodeURIComponent(encodeURIComponent(id))).replace(':leanUserDevicesToken', leanUserDevicesToken));
164
- }
165
- fetchLeanUserSNRConversationById(id) {
166
- return this.apiService.fetch(API.LEAN_USER_SNR_CONVERSATION_START.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))));
167
- }
168
- persistCacheChanges() {
169
- /*const params = {
170
- excludeDeviceExtraOptions: true
171
- };*/
172
- return this.processUserChangesToCache()
173
- .pipe(map((result) => {
174
- return this.apiService.post(API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), {}, {})
175
- .subscribe(() => {
176
- });
177
- // .pipe(map((user) => {
178
- // // this.setUser(user, false, this.user.token);
179
- // this.user.hasModifiedCache = false;
180
- // }))
181
- // .pipe(this.handleError(true, true));
182
- }));
183
- }
184
- processUserChangesToCache() {
185
- const calls = [];
186
- const body = UtilsService.diff(this.originUser.getUserDetailsSavableData(), this.user.getUserDetailsSavableData(), 'user');
187
- if (body?.length) {
188
- calls.push(this.updateUserFields(body));
189
- }
190
- if (!calls?.length) {
191
- return of(this.user);
192
- }
193
- return forkJoin(calls)
194
- .pipe(map((responses) => {
195
- // ApiUserResponse
196
- this.handleSaveUserResponse(responses);
197
- }));
198
- // .pipe(this.handleError(false, true));
199
- }
200
- saveNewLine(validationService) {
201
- this.deleteLine(this.user.siteId, this.lineAssociation.linePkid, encodeURIComponent(this.user.token))
202
- .subscribe(() => {
203
- const URL = API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token);
204
- this.apiService.post(URL, {})
205
- .subscribe(() => {
206
- this.fetchUserToken(this.siteId, this.user.userid, validationService, true)
207
- .subscribe(() => {
208
- this.runNewLineCreation();
209
- });
210
- });
211
- });
212
- }
213
- persistUserCache() {
214
- const URL = API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token);
215
- return this.apiService.post(URL, {});
216
- }
217
- runNewLineCreation() {
218
- // CREATE NEW LINE
219
- const newLineBody = SortingUtilsService.diff(this.lineService.generateLineAssociationFromLine(null), this.lineService.generateLineAssociationFromLine(this.lineAssociation), 'device.lineAssociations', null);
220
- this.associateLineToUserDevice(this.user.siteId, this.user.devices[0].name, newLineBody, null, this.lineAssociation.callingSearchSpace).subscribe((response) => {
221
- if (response?.currentUpdatedUser) {
222
- const linePkId = response.currentUpdatedUser.devices[0]?.lineAssociations[0]?.linePkid || response.currentUpdatedUser.devices[0]?.lineAssociations[0]?.lineLocalId;
223
- forkJoin([
224
- this.updateLineFields(this.siteId, linePkId, this.user.token, this.lineAssociation.alertingName),
225
- this.updateDeviceFields(this.siteId, this.user.devices[0]?.name, this.user.token)
226
- ]).subscribe((response) => {
227
- this.originUser.devices[0].lineAssociations[0].directoryNumber.directoryNumber = this.lineAssociation.directoryNumber.directoryNumber;
228
- this.onUserLineSaved$.next(true);
229
- });
230
- }
231
- });
232
- // -----
233
- }
234
- deleteLine(siteId, pkid, token) {
235
- return this.apiService.delete(API.DELETE_LINE.replace(':siteId', String(siteId)).replace(':pkid', pkid).replace(':token', encodeURIComponent(token)), {});
236
- // .pipe(this.handleError(true, false));
237
- }
238
- disassociateLine(siteId, linePkid, token, deviceName) {
239
- return this.apiService.delete(API.DISASSOCIATE_LINE.replace(':siteId', String(siteId))
240
- .replace(':linePkid', linePkid)
241
- .replace(':deviceName', deviceName)
242
- .replace(':token', encodeURIComponent(token)), {});
243
- // .pipe(this.handleError(true, false));
244
- }
245
- updateLineFields(siteId, pkid, token, alertingName) {
246
- const body = ['line.description=', `line.alertingName=${alertingName}`];
247
- return this.apiService.post(API.UPDATE_LINE_FIELDS.replace(':siteId', String(siteId)).replace(':pkid', encodeURIComponent(pkid)).replace(':token', encodeURIComponent(token)), body);
248
- // .pipe(this.handleError(true, false));
249
- }
250
- updateDeviceFields(siteId, deviceName, token) {
251
- const body = ['device.associatedDNs.0=null'];
252
- return this.apiService.post(API.UPDATE_DEVICE_FIELDS.replace(':siteId', String(siteId)).replace(':deviceName', deviceName).replace(':token', encodeURIComponent(token)), body);
253
- // .pipe(this.handleError(true, false));
254
- }
255
- checkDestinationNumber(siteId, directoryNumber, routePartitionName) {
256
- const params = {
257
- dntype: 'EXTENSION'
258
- };
259
- const body = {
260
- directoryNumber: directoryNumber,
261
- routePartitionName: routePartitionName
262
- };
263
- return this.apiService.post(API.CHECK_DESTINATION_NUMBER.replace(':siteId', siteId), body, params);
264
- }
265
- associateLineToUserDevice(siteId, deviceName, body, pkid, css) {
266
- let params = {};
267
- if (pkid) {
268
- params = { linePkid: pkid };
269
- }
270
- if (css) {
271
- // @ts-ignore
272
- params['css'] = css;
273
- }
274
- return this.apiService.post(API.ASSOCIATE_LINE.replace(':siteId', String(siteId)).replace(':deviceName', deviceName)
275
- .replace(':token', encodeURIComponent(this.user.token)), body, params);
276
- // .pipe(this.handleError(true, true));
277
- }
278
- hasUnsavedChanges() {
279
- if (this.user && this.originUser) {
280
- return !this.user.equal(this.originUser);
281
- }
282
- return false;
283
- }
284
- setSimplifiedUser(user, validationService, userToken) {
285
- this.user = new SimplifiedUser(user, validationService);
286
- const copiedUser = JSON.parse(JSON.stringify(user));
287
- this.originUser = new SimplifiedUser(copiedUser, validationService);
288
- if (!this.user.token && userToken) {
289
- this.user.token = userToken;
290
- this.originUser.token = userToken;
291
- }
292
- }
293
- handleSaveUserResponse(responses) {
294
- if (!responses?.length) {
295
- return;
296
- }
297
- for (let len = responses.length, i = len - 1; i >= 0; i--) {
298
- if (responses[i] && responses[i].currentUpdatedUser) {
299
- // this.setUser(responses[i].currentUpdatedUser, false, this.user.token);
300
- this.user.hasModifiedCache = true;
301
- return;
302
- }
303
- }
304
- }
305
- }
306
- UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, deps: [{ token: i1.APIService }, { token: i2.LineService }], target: i0.ɵɵFactoryTarget.Injectable });
307
- UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService });
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
309
- type: Injectable
310
- }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.LineService }]; } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUd6RCxNQUFNLE9BQU8sV0FBVztJQVl0QixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUlELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0Is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QVUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsU0FBYztRQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFDRCxLQUFLLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ25ELHlFQUF5RTtnQkFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLE9BQU87YUFDUjtTQUNGO0lBQ0gsQ0FBQzs7eUdBdFZVLFdBQVc7NkdBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZvcmtKb2luLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaW1wbGlmaWVkVXNlciB9IGZyb20gJy4vLi4vY2xhc3Nlcy9zaW1wbGlmaWVkLXVzZXInO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24nO1xuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24taW50ZXJmYWNlJztcbmltcG9ydCB7IExpbmVTZXJ2aWNlIH0gZnJvbSAnLi9saW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ydGluZ1V0aWxzU2VydmljZSB9IGZyb20gJy4vc29ydGluZy11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2RldmljZSc7XG5pbXBvcnQgeyBEZXZpY2VQcm9maWxlIH0gZnJvbSAnLi4vY2xhc3Nlcy9kZXZpY2VQcm9maWxlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0e1xuICBzaXRlSWQ6IG51bWJlciA9IC0xO1xuICB1c2VySWQ6IHN0cmluZyA9ICcnO1xuICB1c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xuICB1c2VyITogU2ltcGxpZmllZFVzZXI7XG4gIG9yaWdpblVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcbiAgb25Vc2VyTGluZVNhdmVkJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgb25GZXRjaFVzZXJUb2tlbiQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfdXNlck5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIGdldCB1c2VyTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl91c2VyTmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgX3VzZXJMYXN0TmFtZTogc3RyaW5nID0gJyc7XG5cbiAgZ2V0IHVzZXJMYXN0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl91c2VyTGFzdE5hbWU7XG4gIH1cblxuICBwcml2YXRlIF91c2VyRGV2aWNlOiBEZXZpY2VQcm9maWxlIHwgdW5kZWZpbmVkO1xuXG4gIGdldCB1c2VyRGV2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLl91c2VyRGV2aWNlO1xuICB9XG5cbiAgZ2V0IGxpbmVBc3NvY2lhdGlvbigpOiBMaW5lQXNzb2NpYXRpb24gfCBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2Uge1xuICAgIHJldHVybiB0aGlzLnVzZXI/LmRldmljZXNbMF0ubGluZUFzc29jaWF0aW9uc1swXTtcbiAgfVxuXG4gIGdldCBvcmlnaW5MaW5lQXNzb2NpYXRpb24oKTogTGluZUFzc29jaWF0aW9uIHwgTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5Vc2VyPy5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaW5lU2VydmljZTogTGluZVNlcnZpY2VcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc2l0ZUlkKVxuICB9XG5cbiAgcmVzZXRMaW5lQXNzb2NpYXRpb24oZGV2aWNlSW5kZXg6IG51bWJlciwgbGluZUluZGV4OiBudW1iZXIsIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSk6IHZvaWQge1xuICAgIGNvbnN0IG9yaWdpbkxpbmUgPSB0aGlzLm9yaWdpblVzZXI/LmRldmljZXNbZGV2aWNlSW5kZXhdPy5saW5lQXNzb2NpYXRpb25zW2xpbmVJbmRleF07XG4gICAgaWYgKHRoaXMudXNlcj8uZGV2aWNlc1tkZXZpY2VJbmRleF0/LmxpbmVBc3NvY2lhdGlvbnNbbGluZUluZGV4XSAmJiBvcmlnaW5MaW5lKSB7XG4gICAgICB0aGlzLnVzZXIuZGV2aWNlc1tkZXZpY2VJbmRleF0ubGluZUFzc29jaWF0aW9uc1tsaW5lSW5kZXhdID0gbmV3IExpbmVBc3NvY2lhdGlvbihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9yaWdpbkxpbmUuZ2V0RnVsbERhdGEoKSkpLCB2YWxpZGF0aW9uU2VydmljZSlcbiAgICB9XG4gIH1cblxuICByZXNldERldmljZShjdXJyZW50RGV2aWNlOiBEZXZpY2UsIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSk6IHZvaWQge1xuICAgIGNvbnN0IG9yaWdpbkRldmljZSA9IHRoaXMub3JpZ2luVXNlci5kZXZpY2VzLmZpbmQoZGV2aWNlID0+IGRldmljZS5uYW1lID09PSBjdXJyZW50RGV2aWNlLm5hbWUpO1xuICAgIGNvbnN0IGRldmljZUluZCA9IHRoaXMudXNlci5kZXZpY2VzLmZpbmRJbmRleChkZXZpY2UgPT4gZGV2aWNlLm5hbWUgPT09IGN1cnJlbnREZXZpY2UubmFtZSk7XG4gICAgaWYgKG9yaWdpbkRldmljZSAmJiBkZXZpY2VJbmQgPiAtMSkge1xuICAgICAgY29uc3QgbGluZUFzc29jaWF0aW9ucyA9IHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZF0ubGluZUFzc29jaWF0aW9ucztcbiAgICAgIHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZF0gPSBuZXcgRGV2aWNlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3JpZ2luRGV2aWNlLmdldE5vTGluZXNGdWxsRGF0YSgpKSksIHZhbGlkYXRpb25TZXJ2aWNlKTtcbiAgICAgIHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZF0ubGluZUFzc29jaWF0aW9ucyA9IGxpbmVBc3NvY2lhdGlvbnM7XG4gICAgICBjb25zb2xlLmxvZygnZGV2aWNlIGFmdGVyIHJlc2V0ID0gJywgdGhpcy51c2VyLmRldmljZXNbZGV2aWNlSW5kXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZldGNoVXNlclRva2VuKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZywgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBpc1NldE5ld1Rva2VuT25seT86IGJvb2xlYW4pOiBhbnkge1xuICAgIC8qaWYgKHRoaXMuc2l0ZUlkID09PSBzaXRlSWQgJiYgdGhpcy51c2VySWQgPT09IHVzZXJJZCAmJiB0aGlzLnVzZXIpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLnVzZXIpO1xuICAgIH0qL1xuICAgIHRoaXMuc2l0ZUlkID0gc2l0ZUlkO1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdClbMF07XG4gICAgICAgIGNvbnN0IHVzZXJUb2tlbiA9IHJlc3VsdCAmJiBPYmplY3Qua2V5cyhyZXN1bHQpWzBdO1xuICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgIGlmICghaXNTZXROZXdUb2tlbk9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2ltcGxpZmllZFVzZXIodXNlciwgdmFsaWRhdGlvblNlcnZpY2UsIHVzZXJUb2tlbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXNlci50b2tlbiA9IHVzZXIudG9rZW47XG4gICAgICAgICAgICB0aGlzLm9yaWdpblVzZXIudG9rZW4gPSB1c2VyLnRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm9uRmV0Y2hVc2VyVG9rZW4kLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pKVxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaE1UVXNlckRldmljZShzaXRlSWQ6IG51bWJlciwgdXNlcklkOiBzdHJpbmcsIGRldmljZVR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuc2l0ZUlkID0gc2l0ZUlkO1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdClbMF07XG4gICAgICAgIFxuICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgIHRoaXMuX3VzZXJOYW1lID0gdXNlci5maXJzdE5hbWU7XG4gICAgICAgICAgdGhpcy5fdXNlckxhc3ROYW1lID0gdXNlci5sYXN0TmFtZTtcbiAgICAgICAgICBjb25zdCBmb3VuZERldmljZSA9IHVzZXIuZGV2aWNlcy5maW5kKChkZXZpY2U6IGFueSkgPT4gZGV2aWNlLmRldmljZVR5cGUgPT09IGRldmljZVR5cGUpO1xuICAgICAgICAgIHRoaXMuX3VzZXJEZXZpY2UgPSBuZXcgRGV2aWNlUHJvZmlsZSh7XG4gICAgICAgICAgICAuLi5mb3VuZERldmljZSxcbiAgICAgICAgICAgIG1vZGVsOiBmb3VuZERldmljZT8uZGV2aWNlVHlwZSxcbiAgICAgICAgICAgIG1hY0FkZHJlc3M6IHRoaXMuZ2V0TWFjQWRkcmVzcyhmb3VuZERldmljZS5uYW1lKSxcbiAgICAgICAgICAgIGxpbmVzOiBmb3VuZERldmljZT8ubGluZUFzc29jaWF0aW9ucz8ubWFwKChsaW5lOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBsaW5lICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZSAmJiBsaW5lLmRpcmVjdG9yeU51bWJlci5yb3V0ZVBhcnRpdGlvbk5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBsaW5lICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZSAmJiBsaW5lLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXIgfHwgJycsXG4gICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNvZnR3YXJlVmVyc2lvbjogZm91bmREZXZpY2U/LmZpcm13YXJlVmVyc2lvblxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJEZXZpY2U7XG4gICAgICB9KSlcbiAgfVxuICBwcml2YXRlIGdldE1hY0FkZHJlc3MobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYWNBZGRyZXNzID0gbmFtZS5tYXRjaCgvXFxkKy9nKTtcbiAgICByZXR1cm4gbWFjQWRkcmVzcyAmJiBtYWNBZGRyZXNzWzBdICYmIG1hY0FkZHJlc3NbMF0ubGVuZ3RoID09PSAxMiA/IG1hY0FkZHJlc3NbMF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hXZWJleFVzZXJEZXZpY2UoY3VzdG9tZXJJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZywgZGV2aWNlVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZvcmtKb2luKFtcbiAgICAgIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuV0VCRVhfVVNFUl9UT0tFTi5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSksXG4gICAgICB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLldFQkVYX1VTRVJfREVWSUNFUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcbiAgICBdKVxuICAgICAgLnBpcGUobWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5fdXNlck5hbWUgPSByZXN1bHRzWzBdLmZpcnN0TmFtZTtcbiAgICAgICAgdGhpcy5fdXNlckxhc3ROYW1lID0gcmVzdWx0c1swXS5sYXN0TmFtZTtcbiAgICAgICAgaWYocmVzdWx0c1sxXSkge1xuICAgICAgICAgIGNvbnN0IGZvdW5kRGV2aWNlID0gcmVzdWx0c1sxXS5kZXZpY2VzLmZpbmQoKGRldmljZTogYW55KSA9PiBkZXZpY2UubW9kZWwgPT09IGRldmljZVR5cGUpO1xuICAgICAgICAgIHRoaXMuX3VzZXJEZXZpY2UgPSBuZXcgRGV2aWNlUHJvZmlsZSh7XG4gICAgICAgICAgICAuLi5mb3VuZERldmljZSxcbiAgICAgICAgICAgIG1hY0FkZHJlc3M6IGZvdW5kRGV2aWNlLm1hYyxcbiAgICAgICAgICAgIG1heExpbmVDb3VudDogZm91bmREZXZpY2U/LmRldmljZU1lbWJlcnM/Lm1heExpbmVDb3VudCxcbiAgICAgICAgICAgIGxpbmVzOiBmb3VuZERldmljZT8uZGV2aWNlTWVtYmVycz8ubWVtYmVycz8ubWFwKChtZW1iZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGAke21lbWJlci5maXJzdE5hbWV9ICR7bWVtYmVyLmxhc3ROYW1lfWAsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBtZW1iZXIuZXh0ZW5zaW9uXG4gICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJEZXZpY2U7XG4gICAgICB9KSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVVc2VyRmllbGRzKGJvZHk6IGFueSk6IGFueSB7XG4gICAgaWYgKCF0aGlzLnVzZXJJZCB8fCAhdGhpcy5zaXRlSWQgfHwgIXRoaXMudXNlcj8udG9rZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5VUERBVEVfVVNFUl9GSUVMRFMucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlci50b2tlbiksIGJvZHkpXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hVc2VyQnlJZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfQllfSUQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMudXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hMZWFuVXNlckNvbnZlcnNhdGlvbkJ5SWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkxFQU5fVVNFUl9DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpKTtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyRGV2aWNlc0NvbnZlcnNhdGlvbkJ5SWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkxFQU5fVVNFUl9ERVZJQ0VTX0NPTlZFUlNBVElPTl9TVEFSVC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpO1xuICB9XG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyTGluZXNDb252ZXJzYXRpb25CeUlkKGlkOiBzdHJpbmcsIGxlYW5Vc2VyRGV2aWNlc1Rva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MRUFOX1VTRVJfTElORVNfQ09OVkVSU0FUSU9OX1NUQVJULnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKVxuICAgICAgLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpLnJlcGxhY2UoJzpsZWFuVXNlckRldmljZXNUb2tlbicsIGxlYW5Vc2VyRGV2aWNlc1Rva2VuKSk7XG4gIH1cbiAgcHVibGljIGZldGNoTGVhblVzZXJTTlJDb252ZXJzYXRpb25CeUlkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MRUFOX1VTRVJfU05SX0NPTlZFUlNBVElPTl9TVEFSVC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpO1xuICB9XG5cbiAgcHVibGljIHBlcnNpc3RDYWNoZUNoYW5nZXMoKSB7XG4gICAgLypjb25zdCBwYXJhbXMgPSB7XG4gICAgICBleGNsdWRlRGV2aWNlRXh0cmFPcHRpb25zOiB0cnVlXG4gICAgfTsqL1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NVc2VyQ2hhbmdlc1RvQ2FjaGUoKVxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlBFUlNJU1RfVVNFUl9DQUNIRS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwge30sIHt9KVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgfSlcbiAgICAgICAgICAvLyAucGlwZShtYXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAvLyAgIC8vIHRoaXMuc2V0VXNlcih1c2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcbiAgICAgICAgICAvLyAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gZmFsc2U7XG4gICAgICAgICAgLy8gfSkpXG4gICAgICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc1VzZXJDaGFuZ2VzVG9DYWNoZSgpOiBhbnkge1xuICAgIGNvbnN0IGNhbGxzID0gW107XG4gICAgY29uc3QgYm9keSA9IFV0aWxzU2VydmljZS5kaWZmKHRoaXMub3JpZ2luVXNlci5nZXRVc2VyRGV0YWlsc1NhdmFibGVEYXRhKCksIHRoaXMudXNlci5nZXRVc2VyRGV0YWlsc1NhdmFibGVEYXRhKCksICd1c2VyJyk7XG4gICAgaWYgKGJvZHk/Lmxlbmd0aCkge1xuICAgICAgY2FsbHMucHVzaCh0aGlzLnVwZGF0ZVVzZXJGaWVsZHMoYm9keSkpO1xuICAgIH1cbiAgICBpZiAoIWNhbGxzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLnVzZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JrSm9pbihjYWxscylcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2VzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gQXBpVXNlclJlc3BvbnNlXG4gICAgICAgIHRoaXMuaGFuZGxlU2F2ZVVzZXJSZXNwb25zZShyZXNwb25zZXMpO1xuICAgICAgfSkpXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwdWJsaWMgc2F2ZU5ld0xpbmUodmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlKTogYW55IHtcbiAgICB0aGlzLmRlbGV0ZUxpbmUodGhpcy51c2VyLnNpdGVJZCwgdGhpcy5saW5lQXNzb2NpYXRpb24ubGluZVBraWQsIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnVzZXIudG9rZW4pKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IFVSTCA9IEFQSS5QRVJTSVNUX1VTRVJfQ0FDSEUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlci50b2tlbik7XG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5wb3N0KFVSTCwge30sIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hVc2VyVG9rZW4odGhpcy5zaXRlSWQsIHRoaXMudXNlci51c2VyaWQsIHZhbGlkYXRpb25TZXJ2aWNlLCB0cnVlKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bk5ld0xpbmVDcmVhdGlvbigpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHBlcnNpc3RVc2VyQ2FjaGUoKTogYW55IHtcbiAgICBjb25zdCBVUkwgPSBBUEkuUEVSU0lTVF9VU0VSX0NBQ0hFLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXIudG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChVUkwsIHt9LCApO1xuICB9XG5cbiAgcHVibGljIHJ1bk5ld0xpbmVDcmVhdGlvbigpOiB2b2lkIHtcbiAgICAvLyBDUkVBVEUgTkVXIExJTkVcbiAgICBjb25zdCBuZXdMaW5lQm9keSA9IFNvcnRpbmdVdGlsc1NlcnZpY2UuZGlmZihcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZ2VuZXJhdGVMaW5lQXNzb2NpYXRpb25Gcm9tTGluZShudWxsKSxcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZ2VuZXJhdGVMaW5lQXNzb2NpYXRpb25Gcm9tTGluZSh0aGlzLmxpbmVBc3NvY2lhdGlvbiksXG4gICAgICAnZGV2aWNlLmxpbmVBc3NvY2lhdGlvbnMnLCBudWxsXG4gICAgKTtcbiAgICB0aGlzLmFzc29jaWF0ZUxpbmVUb1VzZXJEZXZpY2UoXG4gICAgICB0aGlzLnVzZXIuc2l0ZUlkLFxuICAgICAgdGhpcy51c2VyLmRldmljZXNbMF0ubmFtZSxcbiAgICAgIG5ld0xpbmVCb2R5LFxuICAgICAgbnVsbCxcbiAgICAgIHRoaXMubGluZUFzc29jaWF0aW9uLmNhbGxpbmdTZWFyY2hTcGFjZVxuICAgICkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2U/LmN1cnJlbnRVcGRhdGVkVXNlcikge1xuICAgICAgICBjb25zdCBsaW5lUGtJZCA9IHJlc3BvbnNlLmN1cnJlbnRVcGRhdGVkVXNlci5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zWzBdPy5saW5lUGtpZCB8fCByZXNwb25zZS5jdXJyZW50VXBkYXRlZFVzZXIuZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9uc1swXT8ubGluZUxvY2FsSWQ7XG4gICAgICAgIGZvcmtKb2luKFtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUxpbmVGaWVsZHModGhpcy5zaXRlSWQsIGxpbmVQa0lkLCB0aGlzLnVzZXIudG9rZW4sIHRoaXMubGluZUFzc29jaWF0aW9uLmFsZXJ0aW5nTmFtZSksXG4gICAgICAgICAgdGhpcy51cGRhdGVEZXZpY2VGaWVsZHModGhpcy5zaXRlSWQsIHRoaXMudXNlci5kZXZpY2VzWzBdPy5uYW1lLCB0aGlzLnVzZXIudG9rZW4pXG4gICAgICAgIF0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMub3JpZ2luVXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXI7XG4gICAgICAgICAgdGhpcy5vblVzZXJMaW5lU2F2ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pXG4gICAgLy8gLS0tLS1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVMaW5lKHNpdGVJZDogbnVtYmVyLCBwa2lkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShBUEkuREVMRVRFX0xJTkUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6cGtpZCcsIHBraWQpLnJlcGxhY2UoJzp0b2tlbicsIGVuY29kZVVSSUNvbXBvbmVudCh0b2tlbikpLCB7fSlcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgZmFsc2UpKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhc3NvY2lhdGVMaW5lKHNpdGVJZDogbnVtYmVyLCBsaW5lUGtpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBkZXZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShcbiAgICAgIEFQSS5ESVNBU1NPQ0lBVEVfTElORS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpXG4gICAgICAgIC5yZXBsYWNlKCc6bGluZVBraWQnLCBsaW5lUGtpZClcbiAgICAgICAgLnJlcGxhY2UoJzpkZXZpY2VOYW1lJywgZGV2aWNlTmFtZSlcbiAgICAgICAgLnJlcGxhY2UoJzp0b2tlbicsIGVuY29kZVVSSUNvbXBvbmVudCh0b2tlbikpLCB7fSlcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgZmFsc2UpKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMaW5lRmllbGRzKHNpdGVJZDogbnVtYmVyLCBwa2lkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGFsZXJ0aW5nTmFtZTogYW55KSB7XG4gICAgY29uc3QgYm9keSA9IFsnbGluZS5kZXNjcmlwdGlvbj0nLCBgbGluZS5hbGVydGluZ05hbWU9JHthbGVydGluZ05hbWV9YF07XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5VUERBVEVfTElORV9GSUVMRFMucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6cGtpZCcsIGVuY29kZVVSSUNvbXBvbmVudChwa2lkKSkucmVwbGFjZSgnOnRva2VuJywgZW5jb2RlVVJJQ29tcG9uZW50KHRva2VuKSksIGJvZHkpXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGV2aWNlRmllbGRzKHNpdGVJZDogbnVtYmVyLCBkZXZpY2VOYW1lOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcbiAgICBjb25zdCBib2R5ID0gWydkZXZpY2UuYXNzb2NpYXRlZEROcy4wPW51bGwnXTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9ERVZJQ0VfRklFTERTLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSkucmVwbGFjZSgnOmRldmljZU5hbWUnLCBkZXZpY2VOYW1lKS5yZXBsYWNlKCc6dG9rZW4nLCBlbmNvZGVVUklDb21wb25lbnQodG9rZW4pKSwgYm9keSlcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tEZXN0aW5hdGlvbk51bWJlcihzaXRlSWQ6IHN0cmluZywgZGlyZWN0b3J5TnVtYmVyOiBzdHJpbmcsIHJvdXRlUGFydGl0aW9uTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgZG50eXBlOiAnRVhURU5TSU9OJ1xuICAgIH07XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGRpcmVjdG9yeU51bWJlcjogZGlyZWN0b3J5TnVtYmVyLFxuICAgICAgcm91dGVQYXJ0aXRpb25OYW1lOiByb3V0ZVBhcnRpdGlvbk5hbWVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuQ0hFQ0tfREVTVElOQVRJT05fTlVNQkVSLnJlcGxhY2UoJzpzaXRlSWQnLCBzaXRlSWQpLCBib2R5LCBwYXJhbXMpO1xuICB9XG5cbiAgcHVibGljIGFzc29jaWF0ZUxpbmVUb1VzZXJEZXZpY2Uoc2l0ZUlkOiBudW1iZXIsIGRldmljZU5hbWU6IHN0cmluZywgYm9keTogYW55LCBwa2lkOiBhbnksIGNzczogYW55KSB7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIGlmIChwa2lkKSB7XG4gICAgICBwYXJhbXMgPSB7bGluZVBraWQ6IHBraWR9O1xuICAgIH1cbiAgICBpZiAoY3NzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBwYXJhbXNbJ2NzcyddID0gY3NzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLkFTU09DSUFURV9MSU5FLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSkucmVwbGFjZSgnOmRldmljZU5hbWUnLCBkZXZpY2VOYW1lKVxuICAgICAgLnJlcGxhY2UoJzp0b2tlbicsIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnVzZXIudG9rZW4pKSwgYm9keSwgcGFyYW1zKVxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMudXNlciAmJiB0aGlzLm9yaWdpblVzZXIpIHtcbiAgICAgIHJldHVybiAhdGhpcy51c2VyLmVxdWFsKHRoaXMub3JpZ2luVXNlcik7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaW1wbGlmaWVkVXNlcih1c2VyOiBhbnksIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSwgdXNlclRva2VuPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51c2VyID0gbmV3IFNpbXBsaWZpZWRVc2VyKHVzZXIsIHZhbGlkYXRpb25TZXJ2aWNlKTtcbiAgICBjb25zdCBjb3BpZWRVc2VyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1c2VyKSk7XG4gICAgdGhpcy5vcmlnaW5Vc2VyID0gbmV3IFNpbXBsaWZpZWRVc2VyKGNvcGllZFVzZXIsIHZhbGlkYXRpb25TZXJ2aWNlKTtcbiAgICBpZiAoIXRoaXMudXNlci50b2tlbiAmJiB1c2VyVG9rZW4pIHtcbiAgICAgIHRoaXMudXNlci50b2tlbiA9IHVzZXJUb2tlbjtcbiAgICAgIHRoaXMub3JpZ2luVXNlci50b2tlbiA9IHVzZXJUb2tlbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzOiBhbnkpIHtcbiAgICBpZiAoIXJlc3BvbnNlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGxlbiA9IHJlc3BvbnNlcy5sZW5ndGgsIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHJlc3BvbnNlc1tpXSAmJiByZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyKSB7XG4gICAgICAgIC8vIHRoaXMuc2V0VXNlcihyZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcbiAgICAgICAgdGhpcy51c2VyLmhhc01vZGlmaWVkQ2FjaGUgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=