@tuki-io/tuki-widgets 0.0.95 → 0.0.97

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 (666) 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 -65
  9. package/projects/tuki/widgets/README.md +24 -0
  10. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +31 -0
  11. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  12. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  13. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  14. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +3 -0
  15. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  16. package/projects/tuki/widgets/di2mt/assets/icons/icon_play.svg +3 -0
  17. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  18. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  19. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  20. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  21. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  22. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  23. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  24. package/projects/tuki/widgets/di2mt/ng-package.json +7 -0
  25. package/{di2mt/public-api.d.ts → projects/tuki/widgets/di2mt/public-api.ts} +14 -0
  26. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +11 -0
  27. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +48 -0
  28. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +10 -0
  29. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +15 -0
  30. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +38 -0
  31. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +76 -0
  32. package/projects/tuki/widgets/di2mt/shared/components/index.ts +6 -0
  33. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +57 -0
  34. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +74 -0
  35. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +44 -0
  36. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +57 -0
  37. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +187 -0
  38. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +41 -0
  39. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +12 -0
  40. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +79 -0
  41. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +27 -0
  42. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +28 -0
  43. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +245 -0
  44. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +28 -0
  45. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +96 -0
  46. package/projects/tuki/widgets/di2mt/shared/material.module.ts +36 -0
  47. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +92 -0
  48. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +39 -0
  49. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +22 -0
  50. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +5 -0
  51. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +14 -0
  52. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +13 -0
  53. package/projects/tuki/widgets/di2mt/styles/variables.scss +94 -0
  54. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +6 -0
  55. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +45 -0
  56. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +27 -0
  57. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +163 -0
  58. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +459 -0
  59. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +506 -0
  60. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +33 -0
  61. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +172 -0
  62. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +27 -0
  63. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +52 -0
  64. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +53 -0
  65. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +82 -0
  66. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +7 -0
  67. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  68. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +45 -0
  69. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +7 -0
  70. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  71. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +45 -0
  72. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +81 -0
  73. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +70 -0
  74. package/{di2mt/widgets/upgrade-overview/types/upgrade-overview.d.ts → projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts} +20 -18
  75. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +42 -0
  76. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +95 -0
  77. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts +35 -0
  78. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +204 -0
  79. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +457 -0
  80. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +438 -0
  81. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +34 -0
  82. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +137 -0
  83. package/projects/tuki/widgets/karma.conf.js +44 -0
  84. package/projects/tuki/widgets/ng-package.json +10 -0
  85. package/projects/tuki/widgets/package.json +13 -0
  86. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +23 -0
  87. package/projects/tuki/widgets/src/lib/widgets.component.ts +20 -0
  88. package/projects/tuki/widgets/src/lib/widgets.module.ts +16 -0
  89. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +16 -0
  90. package/projects/tuki/widgets/src/lib/widgets.service.ts +9 -0
  91. package/{public-api.d.ts → projects/tuki/widgets/src/public-api.ts} +4 -0
  92. package/projects/tuki/widgets/src/test.ts +27 -0
  93. package/projects/tuki/widgets/styles.scss +568 -0
  94. package/projects/tuki/widgets/tsconfig.lib.json +37 -0
  95. package/projects/tuki/widgets/tsconfig.lib.prod.json +10 -0
  96. package/projects/tuki/widgets/tsconfig.spec.json +17 -0
  97. package/projects/tuki/widgets/user-device-manage/ng-package.json +7 -0
  98. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +96 -0
  99. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +5 -0
  100. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +5 -0
  101. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +3 -0
  102. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +5 -0
  103. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  104. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +1 -0
  105. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  106. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +292 -0
  107. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +50 -0
  108. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +177 -0
  109. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +21 -0
  110. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +41 -0
  111. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +144 -0
  112. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +40 -0
  113. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +6 -0
  114. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +169 -0
  115. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +167 -0
  116. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +50 -0
  117. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +19 -0
  118. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +225 -0
  119. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +8 -0
  120. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +16 -0
  121. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +14 -0
  122. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +80 -0
  123. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +35 -0
  124. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +21 -0
  125. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +97 -0
  126. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +28 -0
  127. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +6 -0
  128. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +20 -0
  129. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +13 -0
  130. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +6 -0
  131. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +4 -0
  132. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +63 -0
  133. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +241 -0
  134. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +500 -0
  135. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +194 -0
  136. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +27 -0
  137. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +131 -0
  138. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +25 -0
  139. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +209 -0
  140. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +502 -0
  141. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +354 -0
  142. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +9 -0
  143. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +10 -0
  144. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +35 -0
  145. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  146. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  147. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  148. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +87 -0
  149. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +33 -0
  150. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +84 -0
  151. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +46 -0
  152. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +25 -0
  153. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +87 -0
  154. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +17 -0
  155. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +95 -0
  156. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +111 -0
  157. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +89 -0
  158. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +68 -0
  159. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +25 -0
  160. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +82 -0
  161. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +203 -0
  162. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +283 -0
  163. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +87 -0
  164. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +829 -0
  165. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +90 -0
  166. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +231 -0
  167. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +32 -0
  168. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +110 -0
  169. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +30 -0
  170. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +73 -0
  171. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +7 -0
  172. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  173. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +13 -0
  174. package/projects/tuki/widgets/user-manage/ng-package.json +7 -0
  175. package/projects/tuki/widgets/user-manage/src/app.constants.ts +50 -0
  176. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +5 -0
  177. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +5 -0
  178. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +5 -0
  179. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +3 -0
  180. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +1 -0
  181. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +3 -0
  182. package/projects/tuki/widgets/user-manage/src/classes/device.ts +232 -0
  183. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +43 -0
  184. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +161 -0
  185. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +21 -0
  186. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +42 -0
  187. package/projects/tuki/widgets/user-manage/src/classes/line.ts +144 -0
  188. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +39 -0
  189. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +18 -0
  190. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +6 -0
  191. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +165 -0
  192. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +6 -0
  193. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +49 -0
  194. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +225 -0
  195. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +42 -0
  196. package/projects/tuki/widgets/user-manage/src/classes/user.ts +8 -0
  197. package/projects/tuki/widgets/user-manage/src/common-functions.ts +16 -0
  198. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +27 -0
  199. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +131 -0
  200. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +25 -0
  201. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +9 -0
  202. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +10 -0
  203. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +35 -0
  204. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +50 -0
  205. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +8 -0
  206. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +81 -0
  207. package/projects/tuki/widgets/user-manage/src/material.module.ts +85 -0
  208. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +33 -0
  209. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +84 -0
  210. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +46 -0
  211. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +25 -0
  212. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +90 -0
  213. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +116 -0
  214. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +31 -0
  215. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +68 -0
  216. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +25 -0
  217. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +35 -0
  218. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +203 -0
  219. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +242 -0
  220. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +59 -0
  221. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +71 -0
  222. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +90 -0
  223. package/projects/tuki/widgets/user-manage/src/styles/form.scss +231 -0
  224. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +32 -0
  225. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +110 -0
  226. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +30 -0
  227. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +10 -0
  228. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +429 -0
  229. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +63 -0
  230. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +32 -0
  231. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +444 -0
  232. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +89 -0
  233. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +68 -0
  234. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +29 -0
  235. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +64 -0
  236. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +19 -0
  237. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +290 -0
  238. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +489 -0
  239. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +212 -0
  240. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +63 -0
  241. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +6 -0
  242. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +11 -0
  243. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +13 -0
  244. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +26 -0
  245. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +41 -0
  246. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +41 -0
  247. package/projects/tuki/widgets/users-list/ng-package.json +7 -0
  248. package/projects/tuki/widgets/users-list/src/app.constants.ts +54 -0
  249. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +3 -0
  250. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +1 -0
  251. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +14 -0
  252. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +3 -0
  253. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +36 -0
  254. package/projects/tuki/widgets/users-list/src/classes/device.ts +225 -0
  255. package/projects/tuki/widgets/users-list/src/classes/line.ts +144 -0
  256. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +225 -0
  257. package/projects/tuki/widgets/users-list/src/classes/notification.ts +38 -0
  258. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +18 -0
  259. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +74 -0
  260. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +6 -0
  261. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +225 -0
  262. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +47 -0
  263. package/projects/tuki/widgets/users-list/src/classes/user.ts +8 -0
  264. package/projects/tuki/widgets/users-list/src/material.module.ts +94 -0
  265. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +37 -0
  266. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +129 -0
  267. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +46 -0
  268. 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
  269. 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
  270. 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
  271. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +222 -0
  272. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +249 -0
  273. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +206 -0
  274. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +12 -0
  275. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +41 -0
  276. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +36 -0
  277. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +14 -0
  278. package/projects/tuki/widgets/users-list/src/services/api.service.ts +90 -0
  279. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +128 -0
  280. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +11 -0
  281. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +59 -0
  282. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +68 -0
  283. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +25 -0
  284. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +26 -0
  285. package/projects/tuki/widgets/users-list/src/services/user.service.ts +159 -0
  286. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +139 -0
  287. package/projects/tuki/widgets/users-list/src/styles/styles.scss +567 -0
  288. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +15 -0
  289. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +103 -0
  290. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +35 -0
  291. package/projects/tuki/widgets/users-list/src/users-list.component.css +4 -0
  292. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +1 -0
  293. package/projects/tuki/widgets/users-list/src/users-list.component.html +89 -0
  294. package/projects/tuki/widgets/users-list/src/users-list.component.scss +567 -0
  295. package/projects/tuki/widgets/users-list/src/users-list.component.ts +312 -0
  296. package/projects/tuki/widgets/users-list/src/users-list.module.ts +63 -0
  297. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +11 -0
  298. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +1 -0
  299. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +7 -0
  300. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +11 -0
  301. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +13 -0
  302. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +32 -0
  303. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +33 -0
  304. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +84 -0
  305. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +46 -0
  306. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +45 -0
  307. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +1 -0
  308. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +26 -0
  309. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +41 -0
  310. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +41 -0
  311. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +71 -0
  312. package/projects/widgets-playground/src/app/app.component.html +118 -0
  313. package/projects/widgets-playground/src/app/app.component.scss +16 -0
  314. package/projects/widgets-playground/src/app/app.component.spec.ts +31 -0
  315. package/projects/widgets-playground/src/app/app.component.ts +31 -0
  316. package/projects/widgets-playground/src/app/app.module.ts +43 -0
  317. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  318. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  319. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  320. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  321. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  322. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  323. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  324. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  325. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  326. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  327. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  328. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  329. package/projects/widgets-playground/src/favicon.ico +0 -0
  330. package/projects/widgets-playground/src/index.html +13 -0
  331. package/projects/widgets-playground/src/main.ts +7 -0
  332. package/projects/widgets-playground/src/styles.scss +24 -0
  333. package/projects/widgets-playground/tsconfig.app.json +14 -0
  334. package/projects/widgets-playground/tsconfig.spec.json +14 -0
  335. package/proxy.conf.js +23 -0
  336. package/tsconfig.json +46 -0
  337. package/di2mt/api/api.endpoints.d.ts +0 -31
  338. package/di2mt/index.d.ts +0 -5
  339. package/di2mt/shared/components/card/card.component.d.ts +0 -6
  340. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +0 -23
  341. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +0 -14
  342. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +0 -15
  343. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +0 -9
  344. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +0 -14
  345. package/di2mt/shared/constants/app.constants.d.ts +0 -74
  346. package/di2mt/shared/material.module.d.ts +0 -15
  347. package/di2mt/shared/services/api.service.d.ts +0 -20
  348. package/di2mt/shared/shared.module.d.ts +0 -16
  349. package/di2mt/shared/types/constants.d.ts +0 -15
  350. package/di2mt/shared/types/data-table.d.ts +0 -5
  351. package/di2mt/shared/types/table/filter.d.ts +0 -16
  352. package/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.d.ts +0 -11
  353. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +0 -69
  354. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +0 -15
  355. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +0 -84
  356. package/di2mt/widgets/site-upgrade/types/user-upgrade.d.ts +0 -26
  357. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +0 -19
  358. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +0 -19
  359. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +0 -18
  360. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +0 -19
  361. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +0 -19
  362. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +0 -15
  363. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +0 -18
  364. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +0 -15
  365. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +0 -17
  366. package/di2mt/widgets/user-upgrade/types/user-upgrade.d.ts +0 -32
  367. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +0 -79
  368. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +0 -16
  369. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +0 -41
  370. package/esm2020/di2mt/api/api.endpoints.mjs +0 -32
  371. package/esm2020/di2mt/public-api.mjs +0 -24
  372. package/esm2020/di2mt/shared/components/card/card.component.mjs +0 -13
  373. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +0 -66
  374. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +0 -47
  375. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +0 -43
  376. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +0 -36
  377. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +0 -37
  378. package/esm2020/di2mt/shared/constants/app.constants.mjs +0 -95
  379. package/esm2020/di2mt/shared/material.module.mjs +0 -76
  380. package/esm2020/di2mt/shared/services/api.service.mjs +0 -86
  381. package/esm2020/di2mt/shared/shared.module.mjs +0 -61
  382. package/esm2020/di2mt/shared/types/constants.mjs +0 -20
  383. package/esm2020/di2mt/shared/types/data-table.mjs +0 -2
  384. package/esm2020/di2mt/shared/types/table/filter.mjs +0 -2
  385. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +0 -5
  386. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +0 -38
  387. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +0 -433
  388. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +0 -53
  389. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +0 -92
  390. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +0 -3
  391. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +0 -64
  392. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +0 -64
  393. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +0 -83
  394. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +0 -45
  395. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +0 -45
  396. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +0 -86
  397. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +0 -74
  398. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +0 -2
  399. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +0 -59
  400. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +0 -82
  401. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +0 -3
  402. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +0 -376
  403. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +0 -59
  404. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +0 -80
  405. package/esm2020/lib/widgets.component.mjs +0 -22
  406. package/esm2020/lib/widgets.module.mjs +0 -21
  407. package/esm2020/lib/widgets.service.mjs +0 -14
  408. package/esm2020/public-api.mjs +0 -7
  409. package/esm2020/tuki-io-tuki-widgets.mjs +0 -5
  410. package/esm2020/user-device-manage/public-api.mjs +0 -9
  411. package/esm2020/user-device-manage/src/app.constants.mjs +0 -95
  412. package/esm2020/user-device-manage/src/classes/device.mjs +0 -85
  413. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +0 -2
  414. package/esm2020/user-device-manage/src/classes/line-association.mjs +0 -121
  415. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +0 -10
  416. package/esm2020/user-device-manage/src/classes/line-directory.mjs +0 -27
  417. package/esm2020/user-device-manage/src/classes/line.mjs +0 -18
  418. package/esm2020/user-device-manage/src/classes/notification.mjs +0 -32
  419. package/esm2020/user-device-manage/src/classes/recording-options.mjs +0 -7
  420. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +0 -111
  421. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +0 -21
  422. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +0 -32
  423. package/esm2020/user-device-manage/src/classes/types.mjs +0 -24
  424. package/esm2020/user-device-manage/src/common-functions.mjs +0 -19
  425. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +0 -34
  426. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +0 -31
  427. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +0 -16
  428. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +0 -64
  429. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +0 -179
  430. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +0 -24
  431. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +0 -335
  432. package/esm2020/user-device-manage/src/environments/environment.mjs +0 -11
  433. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +0 -36
  434. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  435. package/esm2020/user-device-manage/src/material.module.mjs +0 -192
  436. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +0 -35
  437. package/esm2020/user-device-manage/src/services/api.service.mjs +0 -79
  438. package/esm2020/user-device-manage/src/services/device.service.mjs +0 -83
  439. package/esm2020/user-device-manage/src/services/dns.service.mjs +0 -104
  440. package/esm2020/user-device-manage/src/services/line.service.mjs +0 -76
  441. package/esm2020/user-device-manage/src/services/notification.service.mjs +0 -62
  442. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  443. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +0 -70
  444. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +0 -197
  445. package/esm2020/user-device-manage/src/services/user.service.mjs +0 -243
  446. package/esm2020/user-device-manage/src/services/utils.service.mjs +0 -87
  447. package/esm2020/user-device-manage/src/services/validation.service.mjs +0 -760
  448. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +0 -107
  449. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +0 -14
  450. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +0 -5
  451. package/esm2020/user-manage/public-api.mjs +0 -7
  452. package/esm2020/user-manage/src/app.constants.mjs +0 -50
  453. package/esm2020/user-manage/src/classes/device.mjs +0 -37
  454. package/esm2020/user-manage/src/classes/line-association-interface.mjs +0 -2
  455. package/esm2020/user-manage/src/classes/line-association.mjs +0 -110
  456. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +0 -10
  457. package/esm2020/user-manage/src/classes/line-directory.mjs +0 -27
  458. package/esm2020/user-manage/src/classes/line.mjs +0 -18
  459. package/esm2020/user-manage/src/classes/notification.mjs +0 -32
  460. package/esm2020/user-manage/src/classes/pagination.mjs +0 -8
  461. package/esm2020/user-manage/src/classes/recording-options.mjs +0 -7
  462. package/esm2020/user-manage/src/classes/simplified-user.mjs +0 -109
  463. package/esm2020/user-manage/src/classes/table-data.mjs +0 -2
  464. package/esm2020/user-manage/src/classes/translation-pattern.mjs +0 -32
  465. package/esm2020/user-manage/src/classes/user-list.mjs +0 -10
  466. package/esm2020/user-manage/src/common-functions.mjs +0 -19
  467. package/esm2020/user-manage/src/device-list/device-list.component.mjs +0 -24
  468. package/esm2020/user-manage/src/environments/environment.mjs +0 -11
  469. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +0 -36
  470. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +0 -74
  471. package/esm2020/user-manage/src/material.module.mjs +0 -188
  472. package/esm2020/user-manage/src/notifications/notification.component.mjs +0 -35
  473. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +0 -25
  474. package/esm2020/user-manage/src/services/api.service.mjs +0 -79
  475. package/esm2020/user-manage/src/services/dns.service.mjs +0 -110
  476. package/esm2020/user-manage/src/services/line.service.mjs +0 -34
  477. package/esm2020/user-manage/src/services/notification.service.mjs +0 -62
  478. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +0 -25
  479. package/esm2020/user-manage/src/services/site-settings.service.mjs +0 -36
  480. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +0 -197
  481. package/esm2020/user-manage/src/services/user.service.mjs +0 -207
  482. package/esm2020/user-manage/src/services/users-search.service.mjs +0 -50
  483. package/esm2020/user-manage/src/services/utils.service.mjs +0 -73
  484. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +0 -65
  485. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +0 -78
  486. package/esm2020/user-manage/src/user-info/user-info.component.mjs +0 -20
  487. package/esm2020/user-manage/src/user-manage-widget.component.mjs +0 -208
  488. package/esm2020/user-manage/src/user-manage.module.mjs +0 -99
  489. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +0 -14
  490. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +0 -43
  491. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +0 -5
  492. package/esm2020/users-list/public-api.mjs +0 -9
  493. package/esm2020/users-list/src/app.constants.mjs +0 -54
  494. package/esm2020/users-list/src/classes/app-location.mjs +0 -32
  495. package/esm2020/users-list/src/classes/device.mjs +0 -7
  496. package/esm2020/users-list/src/classes/line.mjs +0 -18
  497. package/esm2020/users-list/src/classes/move-user.mjs +0 -178
  498. package/esm2020/users-list/src/classes/notification.mjs +0 -31
  499. package/esm2020/users-list/src/classes/pagination.mjs +0 -8
  500. package/esm2020/users-list/src/classes/simlified-user.mjs +0 -50
  501. package/esm2020/users-list/src/classes/table-data.mjs +0 -2
  502. package/esm2020/users-list/src/classes/user-list.mjs +0 -14
  503. package/esm2020/users-list/src/material.module.mjs +0 -209
  504. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +0 -38
  505. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +0 -23
  506. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +0 -189
  507. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +0 -38
  508. package/esm2020/users-list/src/services/api-webex.service.mjs +0 -18
  509. package/esm2020/users-list/src/services/api.service.mjs +0 -78
  510. package/esm2020/users-list/src/services/dns.service.mjs +0 -120
  511. package/esm2020/users-list/src/services/events-communication.service.mjs +0 -14
  512. package/esm2020/users-list/src/services/move-user.service.mjs +0 -53
  513. package/esm2020/users-list/src/services/notification.service.mjs +0 -62
  514. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +0 -25
  515. package/esm2020/users-list/src/services/site-settings.service.mjs +0 -27
  516. package/esm2020/users-list/src/services/user.service.mjs +0 -142
  517. package/esm2020/users-list/src/services/users-search.service.mjs +0 -124
  518. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +0 -34
  519. package/esm2020/users-list/src/users-list.component.mjs +0 -287
  520. package/esm2020/users-list/src/users-list.module.mjs +0 -92
  521. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +0 -14
  522. package/esm2020/users-list/src/utils/common-functions.mjs +0 -32
  523. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +0 -43
  524. package/esm2020/users-list/src/utils/utils.service.mjs +0 -73
  525. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +0 -5
  526. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +0 -2218
  527. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +0 -1
  528. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3402
  529. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  530. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +0 -2124
  531. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  532. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +0 -1996
  533. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  534. package/fesm2015/tuki-io-tuki-widgets.mjs +0 -63
  535. package/fesm2015/tuki-io-tuki-widgets.mjs.map +0 -1
  536. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +0 -2202
  537. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +0 -1
  538. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -3364
  539. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +0 -1
  540. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +0 -2107
  541. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +0 -1
  542. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +0 -1975
  543. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +0 -1
  544. package/fesm2020/tuki-io-tuki-widgets.mjs +0 -63
  545. package/fesm2020/tuki-io-tuki-widgets.mjs.map +0 -1
  546. package/index.d.ts +0 -5
  547. package/lib/widgets.component.d.ts +0 -8
  548. package/lib/widgets.module.d.ts +0 -7
  549. package/lib/widgets.service.d.ts +0 -6
  550. package/user-device-manage/index.d.ts +0 -5
  551. package/user-device-manage/src/app.constants.d.ts +0 -74
  552. package/user-device-manage/src/classes/device.d.ts +0 -233
  553. package/user-device-manage/src/classes/line-association-interface.d.ts +0 -45
  554. package/user-device-manage/src/classes/line-association.d.ts +0 -62
  555. package/user-device-manage/src/classes/line-call-info-display.d.ts +0 -11
  556. package/user-device-manage/src/classes/line-directory.d.ts +0 -15
  557. package/user-device-manage/src/classes/line.d.ts +0 -140
  558. package/user-device-manage/src/classes/notification.d.ts +0 -18
  559. package/user-device-manage/src/classes/recording-options.d.ts +0 -5
  560. package/user-device-manage/src/classes/simplified-user.d.ts +0 -52
  561. package/user-device-manage/src/classes/site-defaults.d.ts +0 -146
  562. package/user-device-manage/src/classes/translation-pattern.d.ts +0 -19
  563. package/user-device-manage/src/classes/types.d.ts +0 -19
  564. package/user-device-manage/src/common-functions.d.ts +0 -1
  565. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +0 -20
  566. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +0 -15
  567. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +0 -7
  568. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +0 -24
  569. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +0 -89
  570. package/user-device-manage/src/device-list/device-list.component.d.ts +0 -11
  571. package/user-device-manage/src/device-manage-widget.component.d.ts +0 -71
  572. package/user-device-manage/src/environments/environment.d.ts +0 -9
  573. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  574. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  575. package/user-device-manage/src/material.module.d.ts +0 -29
  576. package/user-device-manage/src/notifications/notification.component.d.ts +0 -19
  577. package/user-device-manage/src/services/api.service.d.ts +0 -20
  578. package/user-device-manage/src/services/device.service.d.ts +0 -21
  579. package/user-device-manage/src/services/dns.service.d.ts +0 -14
  580. package/user-device-manage/src/services/line.service.d.ts +0 -33
  581. package/user-device-manage/src/services/notification.service.d.ts +0 -18
  582. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  583. package/user-device-manage/src/services/site-settings.service.d.ts +0 -25
  584. package/user-device-manage/src/services/sorting-utils.service.d.ts +0 -26
  585. package/user-device-manage/src/services/user.service.d.ts +0 -51
  586. package/user-device-manage/src/services/utils.service.d.ts +0 -10
  587. package/user-device-manage/src/services/validation.service.d.ts +0 -165
  588. package/user-device-manage/src/user-device-manage.module.d.ts +0 -22
  589. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  590. package/user-manage/index.d.ts +0 -5
  591. package/user-manage/src/app.constants.d.ts +0 -29
  592. package/user-manage/src/classes/device.d.ts +0 -203
  593. package/user-manage/src/classes/line-association-interface.d.ts +0 -40
  594. package/user-manage/src/classes/line-association.d.ts +0 -55
  595. package/user-manage/src/classes/line-call-info-display.d.ts +0 -11
  596. package/user-manage/src/classes/line-directory.d.ts +0 -16
  597. package/user-manage/src/classes/line.d.ts +0 -140
  598. package/user-manage/src/classes/notification.d.ts +0 -18
  599. package/user-manage/src/classes/pagination.d.ts +0 -13
  600. package/user-manage/src/classes/recording-options.d.ts +0 -5
  601. package/user-manage/src/classes/simplified-user.d.ts +0 -50
  602. package/user-manage/src/classes/table-data.d.ts +0 -5
  603. package/user-manage/src/classes/translation-pattern.d.ts +0 -18
  604. package/user-manage/src/classes/user-list.d.ts +0 -34
  605. package/user-manage/src/common-functions.d.ts +0 -1
  606. package/user-manage/src/device-list/device-list.component.d.ts +0 -11
  607. package/user-manage/src/environments/environment.d.ts +0 -9
  608. package/user-manage/src/interseptors/auth.interceptor.d.ts +0 -9
  609. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +0 -35
  610. package/user-manage/src/material.module.d.ts +0 -28
  611. package/user-manage/src/notifications/notification.component.d.ts +0 -19
  612. package/user-manage/src/removeKynFromIBM.service.d.ts +0 -8
  613. package/user-manage/src/services/api.service.d.ts +0 -21
  614. package/user-manage/src/services/dns.service.d.ts +0 -14
  615. package/user-manage/src/services/line.service.d.ts +0 -17
  616. package/user-manage/src/services/notification.service.d.ts +0 -18
  617. package/user-manage/src/services/removeKynFromIBM.service.d.ts +0 -8
  618. package/user-manage/src/services/site-settings.service.d.ts +0 -9
  619. package/user-manage/src/services/sorting-utils.service.d.ts +0 -26
  620. package/user-manage/src/services/user.service.d.ts +0 -43
  621. package/user-manage/src/services/users-search.service.d.ts +0 -25
  622. package/user-manage/src/services/utils.service.d.ts +0 -9
  623. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +0 -24
  624. package/user-manage/src/user-calling/user-calling.component.d.ts +0 -30
  625. package/user-manage/src/user-info/user-info.component.d.ts +0 -9
  626. package/user-manage/src/user-manage-widget.component.d.ts +0 -44
  627. package/user-manage/src/user-manage.module.d.ts +0 -21
  628. package/user-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  629. package/user-manage/src/utils/pagination/pagination.component.d.ts +0 -18
  630. package/users-list/index.d.ts +0 -5
  631. package/users-list/src/app.constants.d.ts +0 -36
  632. package/users-list/src/classes/app-location.d.ts +0 -17
  633. package/users-list/src/classes/device.d.ts +0 -224
  634. package/users-list/src/classes/line.d.ts +0 -140
  635. package/users-list/src/classes/move-user.d.ts +0 -85
  636. package/users-list/src/classes/notification.d.ts +0 -18
  637. package/users-list/src/classes/pagination.d.ts +0 -13
  638. package/users-list/src/classes/simlified-user.d.ts +0 -25
  639. package/users-list/src/classes/table-data.d.ts +0 -5
  640. package/users-list/src/classes/user-list.d.ts +0 -36
  641. package/users-list/src/material.module.d.ts +0 -31
  642. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +0 -21
  643. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +0 -12
  644. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +0 -55
  645. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +0 -17
  646. package/users-list/src/services/api-webex.service.d.ts +0 -8
  647. package/users-list/src/services/api.service.d.ts +0 -21
  648. package/users-list/src/services/dns.service.d.ts +0 -18
  649. package/users-list/src/services/events-communication.service.d.ts +0 -8
  650. package/users-list/src/services/move-user.service.d.ts +0 -17
  651. package/users-list/src/services/notification.service.d.ts +0 -18
  652. package/users-list/src/services/removeKynFromIBM.service.d.ts +0 -8
  653. package/users-list/src/services/site-settings.service.d.ts +0 -11
  654. package/users-list/src/services/user.service.d.ts +0 -35
  655. package/users-list/src/services/users-search.service.d.ts +0 -34
  656. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +0 -20
  657. package/users-list/src/users-list.component.d.ts +0 -60
  658. package/users-list/src/users-list.module.d.ts +0 -18
  659. package/users-list/src/utils/app-loader/app-loader.d.ts +0 -6
  660. package/users-list/src/utils/common-functions.d.ts +0 -2
  661. package/users-list/src/utils/pagination/pagination.component.d.ts +0 -18
  662. package/users-list/src/utils/utils.service.d.ts +0 -9
  663. /package/{di2mt → projects/tuki/widgets/di2mt}/README.md +0 -0
  664. /package/{user-device-manage/public-api.d.ts → projects/tuki/widgets/user-device-manage/public-api.ts} +0 -0
  665. /package/{user-manage/public-api.d.ts → projects/tuki/widgets/user-manage/public-api.ts} +0 -0
  666. /package/{users-list/public-api.d.ts → projects/tuki/widgets/users-list/public-api.ts} +0 -0
@@ -1,64 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/user.service";
4
- import * as i2 from "../../services/dns.service";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@angular/forms";
7
- import * as i5 from "@angular/material/progress-spinner";
8
- import * as i6 from "@angular/material/core";
9
- import * as i7 from "@angular/material/select";
10
- export class DeviceAssociatedLineExtensionComponent {
11
- get user() {
12
- return this.userService.user;
13
- }
14
- get availableNumbers() {
15
- // @ts-ignore
16
- return this.routePartition && this.dnsService.availableNumbers ? this.dnsService.availableNumbers[this.routePartition] : null;
17
- }
18
- constructor(userService, dnsService) {
19
- this.userService = userService;
20
- this.dnsService = dnsService;
21
- this.onChange = new EventEmitter();
22
- }
23
- ngOnInit() {
24
- this.getData();
25
- }
26
- onChangeField(event) {
27
- // if (!token) {
28
- // return;
29
- // }
30
- // (this.userService.user as any)[token] = this.form?.get(token)?.value;
31
- this.onChange.emit(event?.value);
32
- }
33
- getData() {
34
- if (!this.siteId || !this.routePartition) {
35
- return;
36
- }
37
- this.dataPending = true;
38
- this.dnsService.getNumberRange(String(this.siteId), this.routePartition)
39
- .subscribe(() => {
40
- if (this.availableNumbers) {
41
- // @ts-ignore
42
- this.dnsService.availableNumbers[this.routePartition].push(this.directoryNumber);
43
- }
44
- this.dataPending = false;
45
- });
46
- }
47
- }
48
- DeviceAssociatedLineExtensionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceAssociatedLineExtensionComponent, deps: [{ token: i1.UserService }, { token: i2.DnsService }], target: i0.ɵɵFactoryTarget.Component });
49
- DeviceAssociatedLineExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceAssociatedLineExtensionComponent, selector: "app-device-associated-line-extension", inputs: { formControl: "formControl", routePartition: "routePartition", directoryNumber: "directoryNumber", siteId: "siteId" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div *ngIf=\"this.availableNumbers?.length\" class=\"user-calling-extension\">\r\n <mat-select [formControl]=\"formControl\" (selectionChange)=\"this.onChangeField($event)\" #page>\r\n <mat-option *ngFor=\"let option of this.availableNumbers; let i = index;\"[value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n <mat-spinner *ngIf=\"this.dataPending\" [diameter]=\"50\"></mat-spinner>\r\n</div>\r\n", styles: ["table{border-collapse:collapse;border-spacing:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }] });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceAssociatedLineExtensionComponent, decorators: [{
51
- type: Component,
52
- args: [{ selector: 'app-device-associated-line-extension', template: "<div *ngIf=\"this.availableNumbers?.length\" class=\"user-calling-extension\">\r\n <mat-select [formControl]=\"formControl\" (selectionChange)=\"this.onChangeField($event)\" #page>\r\n <mat-option *ngFor=\"let option of this.availableNumbers; let i = index;\"[value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n <mat-spinner *ngIf=\"this.dataPending\" [diameter]=\"50\"></mat-spinner>\r\n</div>\r\n", styles: ["table{border-collapse:collapse;border-spacing:0}\n"] }]
53
- }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.DnsService }]; }, propDecorators: { formControl: [{
54
- type: Input
55
- }], routePartition: [{
56
- type: Input
57
- }], directoryNumber: [{
58
- type: Input
59
- }], siteId: [{
60
- type: Input
61
- }], onChange: [{
62
- type: Output
63
- }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWFzc29jaWF0ZWQtbGluZS1leHRlbnNpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLWFzc29jaWF0ZWQtbGluZS9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbi9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1kZXZpY2UtbWFuYWdlL3NyYy9kZXZpY2UtYXNzb2NpYXRlZC1saW5lL2RldmljZS1hc3NvY2lhdGVkLWxpbmUtZXh0ZW5zaW9uL2RldmljZS1hc3NvY2lhdGVkLWxpbmUtZXh0ZW5zaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVcvRSxNQUFNLE9BQU8sc0NBQXNDO0lBUWpELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoSSxDQUFDO0lBR0QsWUFDUyxXQUF3QixFQUN2QixVQUFzQjtRQUR2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZnRCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBaUJoRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVU7UUFDN0IsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixJQUFJO1FBQ0osd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVuQyxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDckUsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixhQUFhO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDbEY7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O29JQWxEVSxzQ0FBc0M7d0hBQXRDLHNDQUFzQywrT0NYbkQsa2FBTUE7NEZES2Esc0NBQXNDO2tCQUxsRCxTQUFTOytCQUNFLHNDQUFzQzsySEFLdkMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTaW1wbGlmaWVkVXNlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvc2ltcGxpZmllZC11c2VyJztcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGV2aWNlLWFzc29jaWF0ZWQtbGluZS1leHRlbnNpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGV2aWNlLWFzc29jaWF0ZWQtbGluZS1leHRlbnNpb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERldmljZUFzc29jaWF0ZWRMaW5lRXh0ZW5zaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBmb3JtQ29udHJvbCE6IEZvcm1Db250cm9sO1xyXG4gIEBJbnB1dCgpIHJvdXRlUGFydGl0aW9uITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpcmVjdG9yeU51bWJlciE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaXRlSWQhOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgcHVibGljIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuXHJcbiAgZ2V0IHVzZXIoKTogU2ltcGxpZmllZFVzZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG4gIGdldCBhdmFpbGFibGVOdW1iZXJzKCk6IGFueSB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcnRpdGlvbiAmJiB0aGlzLmRuc1NlcnZpY2UuYXZhaWxhYmxlTnVtYmVycyA/IHRoaXMuZG5zU2VydmljZS5hdmFpbGFibGVOdW1iZXJzW3RoaXMucm91dGVQYXJ0aXRpb25dIDogbnVsbDtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VGaWVsZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAvLyBpZiAoIXRva2VuKSB7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuICAgIC8vICh0aGlzLnVzZXJTZXJ2aWNlLnVzZXIgYXMgYW55KVt0b2tlbl0gPSB0aGlzLmZvcm0/LmdldCh0b2tlbik/LnZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGV2ZW50Py52YWx1ZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgaWYgKCF0aGlzLnNpdGVJZCB8fCAhdGhpcy5yb3V0ZVBhcnRpdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZG5zU2VydmljZS5nZXROdW1iZXJSYW5nZShTdHJpbmcodGhpcy5zaXRlSWQpLCB0aGlzLnJvdXRlUGFydGl0aW9uKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5hdmFpbGFibGVOdW1iZXJzKSB7XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICB0aGlzLmRuc1NlcnZpY2UuYXZhaWxhYmxlTnVtYmVyc1t0aGlzLnJvdXRlUGFydGl0aW9uXS5wdXNoKHRoaXMuZGlyZWN0b3J5TnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInRoaXMuYXZhaWxhYmxlTnVtYmVycz8ubGVuZ3RoXCIgY2xhc3M9XCJ1c2VyLWNhbGxpbmctZXh0ZW5zaW9uXCI+XHJcbiAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJ0aGlzLm9uQ2hhbmdlRmllbGQoJGV2ZW50KVwiICNwYWdlPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB0aGlzLmF2YWlsYWJsZU51bWJlcnM7IGxldCBpID0gaW5kZXg7XCJbdmFsdWVdPVwib3B0aW9uXCI+e3tvcHRpb259fTwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcbiAgPG1hdC1zcGlubmVyICpuZ0lmPVwidGhpcy5kYXRhUGVuZGluZ1wiIFtkaWFtZXRlcl09XCI1MFwiPjwvbWF0LXNwaW5uZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,179 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { RecordingOptions } from '../classes/device';
3
- import { RECORDING_MEDIA_SOURCE, STATIC_OPTIONS } from '../app.constants';
4
- import { UtilsService } from '../services/utils.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../services/user.service";
7
- import * as i2 from "../services/api.service";
8
- import * as i3 from "../services/site-settings.service";
9
- import * as i4 from "../services/line.service";
10
- import * as i5 from "../services/device.service";
11
- import * as i6 from "@angular/material/dialog";
12
- import * as i7 from "../services/validation.service";
13
- import * as i8 from "@angular/common";
14
- import * as i9 from "@angular/forms";
15
- import * as i10 from "@angular/material/form-field";
16
- import * as i11 from "@angular/material/input";
17
- import * as i12 from "@angular/material/autocomplete";
18
- import * as i13 from "@angular/material/core";
19
- import * as i14 from "@angular/material/select";
20
- import * as i15 from "@angular/material/slide-toggle";
21
- import * as i16 from "../lazy-loading-select/lazy-loading-select.component";
22
- import * as i17 from "./device-associated-line-details-box/device-associated-line-details-box.component";
23
- export class DeviceAssociatedLineComponent {
24
- get form() {
25
- return this.userService?.user?.devices[this.deviceIndex] && this.userService?.user?.devices[this.deviceIndex].lineAssociations[this.lineIndex].form;
26
- }
27
- get lineAssociation() {
28
- return this.userService?.user?.devices[this.deviceIndex].lineAssociations[this.lineIndex];
29
- }
30
- get originLineAssociation() {
31
- return this.userService?.originUser?.devices[this.deviceIndex].lineAssociations[this.lineIndex];
32
- }
33
- get user() {
34
- return this.userService.user;
35
- }
36
- constructor(userService, apiService, siteSettingsService, lineService, deviceService, dialog, validationService) {
37
- this.userService = userService;
38
- this.apiService = apiService;
39
- this.siteSettingsService = siteSettingsService;
40
- this.lineService = lineService;
41
- this.deviceService = deviceService;
42
- this.dialog = dialog;
43
- this.validationService = validationService;
44
- this.updatedLineAssociationEvent = new EventEmitter();
45
- this.onChange = new EventEmitter();
46
- this.recordingOptions = RecordingOptions;
47
- this.recordingMediaSources = RECORDING_MEDIA_SOURCE;
48
- this.staticOptions = STATIC_OPTIONS;
49
- this.subscriptions = [];
50
- }
51
- ngOnInit() {
52
- this.getData();
53
- this.lineService.onSaveLineAssociationEvent
54
- .subscribe(() => {
55
- this.updateLine(this.lineAssociation);
56
- });
57
- }
58
- ngOnDestroy() {
59
- if (this.subscriptions?.length) {
60
- this.subscriptions.forEach((subscription) => subscription.unsubscribe());
61
- }
62
- }
63
- onChangeField(token) {
64
- if (!token) {
65
- return;
66
- }
67
- this.userService.user.devices[this.deviceIndex].lineAssociations[this.lineIndex][token] = this.form?.get(token)?.value;
68
- this.setHasChangesToLine();
69
- this.onChange.emit();
70
- }
71
- onAutocomplete(token) {
72
- const value = this.form?.get(token)?.value;
73
- this.filteredMonitorCssList = UtilsService.filterOptions(this.monitorCssList, value);
74
- }
75
- recordingOptionChanged(token) {
76
- const value = this.form.get(token)?.value;
77
- this.onChangeField(token);
78
- if (value === RecordingOptions.auto_enabled || value === RecordingOptions.selective_enabled) {
79
- if (!this.form?.get('recordingProfile')?.touched) {
80
- this.form.get('recordingProfile')?.markAsTouched();
81
- }
82
- this.form.get('recordingProfile')?.enable();
83
- this.form.get('recordingMediaSource')?.enable();
84
- }
85
- else {
86
- this.form.get('recordingProfile')?.disable();
87
- this.form.get('recordingProfile')?.setValue('');
88
- this.onChangeField('recordingProfile');
89
- /* if (!this.authService.hasRole('SUPER_USER')) {
90
- recordingMediaSource.disable();
91
- recordingMediaSource.setValue(this.recordingMediaSources[0]);
92
- this.changeField('recordingMediaSource');
93
- }*/
94
- }
95
- }
96
- getRule() {
97
- // @ts-ignore
98
- if (this.form.get('e164Mask')?.errors && this.form.get('e164Mask')?.errors['e164MaskRule']) {
99
- // @ts-ignore
100
- return this.form.get('e164Mask')?.errors['e164MaskRule']['rule'];
101
- }
102
- return '';
103
- }
104
- toggleEditMode() {
105
- this.userService.user.toggleEditMode();
106
- }
107
- isSavingDisabled() {
108
- return !this.userService.hasUnsavedChanges() || this.userService.hasExistedUserId;
109
- }
110
- onChangeExtension(value) {
111
- if (this.lineAssociation && this.lineAssociation.directoryNumber) {
112
- this.userService.user.devices[0].lineAssociations[0].directoryNumber.directoryNumber = value;
113
- }
114
- }
115
- onLineRemove() {
116
- }
117
- getData() {
118
- this.dataPending = true;
119
- const subscription = this.siteSettingsService.getMonitorCss(this.siteId)
120
- .subscribe((res) => {
121
- this.monitorCssList = res?.length ? res.slice() : [];
122
- this.filteredMonitorCssList = res?.length ? res.slice() : [];
123
- });
124
- this.subscriptions.push(subscription);
125
- }
126
- updateLine(line) {
127
- const body = this.lineService.getLineAssociationBody(this.originLineAssociation, this.lineAssociation);
128
- console.log('update line', body);
129
- this.deviceService.dataPending = true;
130
- this.deviceService.putDeviceFields(this.siteId, this.deviceName, this.userService.user.token, body)
131
- .subscribe(() => {
132
- this.userService.persistUserCache()
133
- .subscribe(() => {
134
- this.userService.fetchUserToken(this.siteId, this.userService.user.userid, this.validationService)
135
- .subscribe(() => {
136
- this.updatedLineAssociationEvent.emit();
137
- this.deviceService.dataPending = false;
138
- }, () => this.deviceService.dataPending = false);
139
- }, () => this.deviceService.dataPending = true);
140
- }, () => this.deviceService.dataPending = true);
141
- }
142
- deleteLine(line) {
143
- this.lineService.deleteLine(this.siteId, line.linePkid, this.userService.user.token)
144
- .subscribe(() => {
145
- this.userService.persistUserCache()
146
- .subscribe(() => {
147
- this.userService.fetchUserToken(this.siteId, this.userService.user.userid, this.validationService)
148
- .subscribe(() => {
149
- this.updatedLineAssociationEvent.emit();
150
- });
151
- });
152
- });
153
- }
154
- setHasChangesToLine() {
155
- if (this.lineAssociation) {
156
- this.userService.user.devices[this.deviceIndex].lineAssociations[this.lineIndex].hasChanges = !this.lineAssociation.fullEqual(this.originLineAssociation);
157
- this.userService.user.devices[this.deviceIndex].lineAssociationsHasChanges = !this.lineAssociation.fullEqual(this.originLineAssociation);
158
- }
159
- }
160
- }
161
- DeviceAssociatedLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceAssociatedLineComponent, deps: [{ token: i1.UserService }, { token: i2.APIService }, { token: i3.SiteSettingsService }, { token: i4.LineService }, { token: i5.DeviceService }, { token: i6.MatDialog }, { token: i7.ValidationService }], target: i0.ɵɵFactoryTarget.Component });
162
- DeviceAssociatedLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceAssociatedLineComponent, selector: "app-device-associated-line", inputs: { lineIndex: "lineIndex", deviceIndex: "deviceIndex", deviceName: "deviceName", siteId: "siteId" }, outputs: { updatedLineAssociationEvent: "updatedLineAssociationEvent", onChange: "onChange" }, ngImport: i0, template: "<div id=\"device-associated-line\" *ngIf=\"lineAssociation && form\" [formGroup]=\"form\">\r\n <ng-container class=\"line-details__container\">\r\n <app-line-details-block [title]=\"'Line setting on the device'\">\r\n <div class=\"form-group\">\r\n <label>Display Caller ID</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"text\" name=\"displayLabel\" formControlName=\"displayLabel\"\r\n (input)=\"onChangeField('displayLabel')\">\r\n <mat-error *ngIf=\"form.get('displayLabel')?.hasError('maxlength')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n This field can\u2019t have more than 30 characters\r\n </mat-error>\r\n <mat-error *ngIf=\"form.get('displayLabel')?.hasError('pattern')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Invalid symbols are used\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Text Label</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input formControlName=\"textLabel\" name=\"textLabel\"\r\n matInput (input)=\"onChangeField('textLabel')\">\r\n <mat-error *ngIf=\"form.get('textLabel')?.hasError('maxlength')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n This field can\u2019t have more than 30 characters\r\n </mat-error>\r\n <mat-error *ngIf=\"form.get('textLabel')?.hasError('pattern')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Invalid symbols are used\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>External Phone Number Mask</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"text\" name=\"e164Mask\" formControlName=\"e164Mask\"\r\n (input)=\"onChangeField('e164Mask')\">\r\n <mat-error *ngIf=\"form.get('e164Mask')?.hasError('e164MaskRule')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n e164Mask does not match the rule {{getRule()}}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Multiple Call/Call Waiting Settings'\">\r\n <div class=\"form-group\">\r\n <label>Max Calls</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"number\" name=\"maxNumberOfCalls\" formControlName=\"maxNumberOfCalls\"\r\n (input)=\"onChangeField('maxNumberOfCalls')\">\r\n <mat-error *ngIf=\"form.get('maxNumberOfCalls')?.hasError('max')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Value is too big\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Busy Trigger</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"number\" name=\"busyTrigger\" formControlName=\"busyTrigger\"\r\n (input)=\"onChangeField('busyTrigger')\">\r\n <mat-error *ngIf=\"form.get('busyTrigger')?.hasError('max')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Value can't be bigger than Max Calls\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Call Recording'\">\r\n <div class=\"form-group\">\r\n <label>Recording Option</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n (selectionChange)=\"recordingOptionChanged('recordingOption')\"\r\n formControlName=\"recordingOption\"\r\n [id]=\"'associatedLineRecordingOptionField'\">\r\n <mat-option [value]=recordingOptions.disabled>Call Recording Disabled</mat-option>\r\n <mat-option [value]=recordingOptions.auto_enabled>Automatic Call Recording Enabled</mat-option>\r\n <mat-option [value]=recordingOptions.selective_enabled>Selective Call Recording Enabled</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Recording Media Source</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n (selectionChange)=\"onChangeField('recordingMediaSource')\" formControlName=\"recordingMediaSource\"\r\n [id]=\"'associatedLineRecordingMediaSourceField'\">\r\n <mat-option *ngFor=\"let source of recordingMediaSources\" [value]=\"source\">{{source}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Recording Profile</label>\r\n <app-lazy-loading-select\r\n [siteId]=\"siteId\"\r\n [controlName]=\"'recordingProfile'\"\r\n [form]=\"form\"\r\n (changeField)=\"onChangeField('recordingProfile')\"\r\n [optionsToken]=\"'recordingProfile'\"></app-lazy-loading-select>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Additional line settings on the device'\">\r\n <div class=\"form-group\">\r\n <label>Visual Message Waiting Indicator Policy</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"visualMWI\"\r\n (selectionChange)=\"onChangeField('visualMWI')\">\r\n <mat-option\r\n *ngFor=\"let option of staticOptions.VISUAL_MWI\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Ring Setting (Phone Idle)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"ringSetting_idle\"\r\n (selectionChange)=\"onChangeField('ringSetting_idle')\">\r\n <mat-option *ngFor=\"let option of staticOptions.RING_SETTING_IDLE\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Call Pickup Audio Alert Setting (Phone Idle)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select name=\"pickupAAS_idle\"\r\n formControlName=\"pickupAAS_idle\"\r\n (selectionChange)=\"onChangeField('pickupAAS_idle')\">\r\n <mat-option *ngFor=\"let option of staticOptions.CALL_PICKUP_GROUP_AUDIO_SETTING_PHONE_IDLE\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Monitoring Calling Search Space</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n [matAutocomplete]=\"auto\"\r\n matInput\r\n (input)=\"onAutocomplete('monitorCSS')\"\r\n formControlName=\"monitorCSS\">\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onChangeField('monitorCSS')\">\r\n <mat-option *ngFor=\"let option of filteredMonitorCssList\" [value]=\"option\" >\r\n {{option}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Audible Message Waiting Indicator Policy</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"audibleMWI\"\r\n (selectionChange)=\"onChangeField('audibleMWI')\">\r\n <mat-option *ngFor=\"let option of staticOptions.DEFAULT_ON_OFF\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Ring Setting (Phone Active)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"ringSetting_active\"\r\n (selectionChange)=\"onChangeField('ringSetting_active')\">\r\n <mat-option *ngFor=\"let option of staticOptions.RING_SETTING_ACTIVE\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Call Pickup Audio Alert Setting (Phone Active)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"pickupAAS_active\"\r\n (selectionChange)=\"onChangeField('pickupAAS_active')\">\r\n <mat-option\r\n *ngFor=\"let option of staticOptions.CALL_PICKUP_GROUP_AUDIO_SETTING_PHONE_ACTIVE\"\r\n [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Log Missed Calls</label>\r\n <mat-slide-toggle name=\"logMissedCalls\" formControlName=\"logMissedCall\"></mat-slide-toggle>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Forwardred call information display'\">\r\n <div class=\"form-group\">\r\n <label>Caller Name</label>\r\n <mat-slide-toggle name=\"callerName\" formControlName=\"callerName\" (change)=\"onChangeField('callerName')\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Redirected Number</label>\r\n <mat-slide-toggle name=\"redirectedNumber\" formControlName=\"redirectedNumber\" (change)=\"onChangeField('redirectedNumber')\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Caller Number</label>\r\n <mat-slide-toggle name=\"callerNumber\" formControlName=\"callerNumber\" (change)=\"onChangeField('callerNumber')\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Dialed Number</label>\r\n <mat-slide-toggle name=\"dialedNumber\" formControlName=\"dialedNumber\" (change)=\"onChangeField('dialedNumber')\"></mat-slide-toggle>\r\n </div>\r\n </app-line-details-block>\r\n </ng-container>\r\n\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}::ng-deep .mat-progress-spinner{position:absolute!important;top:40%;left:45%}table{border-collapse:collapse;border-spacing:0}.line-row{background:#ececec;cursor:pointer;width:100%;padding:5px;box-sizing:border-box}.line-row.disabled-line-row{cursor:default;color:silver}.user-details-box__info{grid-template-columns:100%}.form-holder__blocks{margin-top:1rem}.user-box-block{padding:1rem 0;gap:4rem;display:flex}.user-box-block-item__title{margin-bottom:.5rem}.user-box-block-item__tag{font-size:14px;color:#6d6d6d}#device-associated-line{background-color:#fff;padding:1rem;position:relative;border-left:3px solid #737480}.form-group{display:flex;align-items:center}.form-group__separator,.form-group__separator_2px{width:100%;height:1px;background-color:#cccccc80;margin:1rem 0}.form-group__separator_2px{height:2px}.form-group label{width:200px;max-width:200px;font-size:14px;color:#666}.form-group input{width:300px}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#009dff!important}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#fff!important}.form-group .mat-form-field{max-width:300px}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i10.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i12.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i15.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i16.LazyLoadingSelectComponent, selector: "app-lazy-loading-select", inputs: ["siteId", "form", "standalone", "placeholder", "controlName", "optionsToken", "appearance", "errorCode", "errorText", "default", "id"], outputs: ["changeField"] }, { kind: "component", type: i17.DeviceAssociatedLineDetailsBoxComponent, selector: "app-line-details-block", inputs: ["title"] }] });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceAssociatedLineComponent, decorators: [{
164
- type: Component,
165
- args: [{ selector: 'app-device-associated-line', template: "<div id=\"device-associated-line\" *ngIf=\"lineAssociation && form\" [formGroup]=\"form\">\r\n <ng-container class=\"line-details__container\">\r\n <app-line-details-block [title]=\"'Line setting on the device'\">\r\n <div class=\"form-group\">\r\n <label>Display Caller ID</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"text\" name=\"displayLabel\" formControlName=\"displayLabel\"\r\n (input)=\"onChangeField('displayLabel')\">\r\n <mat-error *ngIf=\"form.get('displayLabel')?.hasError('maxlength')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n This field can\u2019t have more than 30 characters\r\n </mat-error>\r\n <mat-error *ngIf=\"form.get('displayLabel')?.hasError('pattern')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Invalid symbols are used\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Text Label</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input formControlName=\"textLabel\" name=\"textLabel\"\r\n matInput (input)=\"onChangeField('textLabel')\">\r\n <mat-error *ngIf=\"form.get('textLabel')?.hasError('maxlength')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n This field can\u2019t have more than 30 characters\r\n </mat-error>\r\n <mat-error *ngIf=\"form.get('textLabel')?.hasError('pattern')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Invalid symbols are used\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>External Phone Number Mask</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"text\" name=\"e164Mask\" formControlName=\"e164Mask\"\r\n (input)=\"onChangeField('e164Mask')\">\r\n <mat-error *ngIf=\"form.get('e164Mask')?.hasError('e164MaskRule')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n e164Mask does not match the rule {{getRule()}}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Multiple Call/Call Waiting Settings'\">\r\n <div class=\"form-group\">\r\n <label>Max Calls</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"number\" name=\"maxNumberOfCalls\" formControlName=\"maxNumberOfCalls\"\r\n (input)=\"onChangeField('maxNumberOfCalls')\">\r\n <mat-error *ngIf=\"form.get('maxNumberOfCalls')?.hasError('max')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Value is too big\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Busy Trigger</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput type=\"number\" name=\"busyTrigger\" formControlName=\"busyTrigger\"\r\n (input)=\"onChangeField('busyTrigger')\">\r\n <mat-error *ngIf=\"form.get('busyTrigger')?.hasError('max')\">\r\n <i class=\"fa fa-exclamation-triangle\"></i>\r\n Value can't be bigger than Max Calls\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Call Recording'\">\r\n <div class=\"form-group\">\r\n <label>Recording Option</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n (selectionChange)=\"recordingOptionChanged('recordingOption')\"\r\n formControlName=\"recordingOption\"\r\n [id]=\"'associatedLineRecordingOptionField'\">\r\n <mat-option [value]=recordingOptions.disabled>Call Recording Disabled</mat-option>\r\n <mat-option [value]=recordingOptions.auto_enabled>Automatic Call Recording Enabled</mat-option>\r\n <mat-option [value]=recordingOptions.selective_enabled>Selective Call Recording Enabled</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Recording Media Source</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n (selectionChange)=\"onChangeField('recordingMediaSource')\" formControlName=\"recordingMediaSource\"\r\n [id]=\"'associatedLineRecordingMediaSourceField'\">\r\n <mat-option *ngFor=\"let source of recordingMediaSources\" [value]=\"source\">{{source}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Recording Profile</label>\r\n <app-lazy-loading-select\r\n [siteId]=\"siteId\"\r\n [controlName]=\"'recordingProfile'\"\r\n [form]=\"form\"\r\n (changeField)=\"onChangeField('recordingProfile')\"\r\n [optionsToken]=\"'recordingProfile'\"></app-lazy-loading-select>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Additional line settings on the device'\">\r\n <div class=\"form-group\">\r\n <label>Visual Message Waiting Indicator Policy</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"visualMWI\"\r\n (selectionChange)=\"onChangeField('visualMWI')\">\r\n <mat-option\r\n *ngFor=\"let option of staticOptions.VISUAL_MWI\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Ring Setting (Phone Idle)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"ringSetting_idle\"\r\n (selectionChange)=\"onChangeField('ringSetting_idle')\">\r\n <mat-option *ngFor=\"let option of staticOptions.RING_SETTING_IDLE\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Call Pickup Audio Alert Setting (Phone Idle)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select name=\"pickupAAS_idle\"\r\n formControlName=\"pickupAAS_idle\"\r\n (selectionChange)=\"onChangeField('pickupAAS_idle')\">\r\n <mat-option *ngFor=\"let option of staticOptions.CALL_PICKUP_GROUP_AUDIO_SETTING_PHONE_IDLE\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Monitoring Calling Search Space</label>\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n [matAutocomplete]=\"auto\"\r\n matInput\r\n (input)=\"onAutocomplete('monitorCSS')\"\r\n formControlName=\"monitorCSS\">\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onChangeField('monitorCSS')\">\r\n <mat-option *ngFor=\"let option of filteredMonitorCssList\" [value]=\"option\" >\r\n {{option}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Audible Message Waiting Indicator Policy</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"audibleMWI\"\r\n (selectionChange)=\"onChangeField('audibleMWI')\">\r\n <mat-option *ngFor=\"let option of staticOptions.DEFAULT_ON_OFF\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Ring Setting (Phone Active)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"ringSetting_active\"\r\n (selectionChange)=\"onChangeField('ringSetting_active')\">\r\n <mat-option *ngFor=\"let option of staticOptions.RING_SETTING_ACTIVE\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Call Pickup Audio Alert Setting (Phone Active)</label>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-select\r\n formControlName=\"pickupAAS_active\"\r\n (selectionChange)=\"onChangeField('pickupAAS_active')\">\r\n <mat-option\r\n *ngFor=\"let option of staticOptions.CALL_PICKUP_GROUP_AUDIO_SETTING_PHONE_ACTIVE\"\r\n [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Log Missed Calls</label>\r\n <mat-slide-toggle name=\"logMissedCalls\" formControlName=\"logMissedCall\"></mat-slide-toggle>\r\n </div>\r\n </app-line-details-block>\r\n <div class=\"form-group__separator_2px\"></div>\r\n <app-line-details-block [title]=\"'Forwardred call information display'\">\r\n <div class=\"form-group\">\r\n <label>Caller Name</label>\r\n <mat-slide-toggle name=\"callerName\" formControlName=\"callerName\" (change)=\"onChangeField('callerName')\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Redirected Number</label>\r\n <mat-slide-toggle name=\"redirectedNumber\" formControlName=\"redirectedNumber\" (change)=\"onChangeField('redirectedNumber')\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Caller Number</label>\r\n <mat-slide-toggle name=\"callerNumber\" formControlName=\"callerNumber\" (change)=\"onChangeField('callerNumber')\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"form-group__separator\"></div>\r\n <div class=\"form-group\">\r\n <label>Dialed Number</label>\r\n <mat-slide-toggle name=\"dialedNumber\" formControlName=\"dialedNumber\" (change)=\"onChangeField('dialedNumber')\"></mat-slide-toggle>\r\n </div>\r\n </app-line-details-block>\r\n </ng-container>\r\n\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}::ng-deep .mat-progress-spinner{position:absolute!important;top:40%;left:45%}table{border-collapse:collapse;border-spacing:0}.line-row{background:#ececec;cursor:pointer;width:100%;padding:5px;box-sizing:border-box}.line-row.disabled-line-row{cursor:default;color:silver}.user-details-box__info{grid-template-columns:100%}.form-holder__blocks{margin-top:1rem}.user-box-block{padding:1rem 0;gap:4rem;display:flex}.user-box-block-item__title{margin-bottom:.5rem}.user-box-block-item__tag{font-size:14px;color:#6d6d6d}#device-associated-line{background-color:#fff;padding:1rem;position:relative;border-left:3px solid #737480}.form-group{display:flex;align-items:center}.form-group__separator,.form-group__separator_2px{width:100%;height:1px;background-color:#cccccc80;margin:1rem 0}.form-group__separator_2px{height:2px}.form-group label{width:200px;max-width:200px;font-size:14px;color:#666}.form-group input{width:300px}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#009dff!important}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#fff!important}.form-group .mat-form-field{max-width:300px}\n"] }]
166
- }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.APIService }, { type: i3.SiteSettingsService }, { type: i4.LineService }, { type: i5.DeviceService }, { type: i6.MatDialog }, { type: i7.ValidationService }]; }, propDecorators: { lineIndex: [{
167
- type: Input
168
- }], deviceIndex: [{
169
- type: Input
170
- }], deviceName: [{
171
- type: Input
172
- }], siteId: [{
173
- type: Input
174
- }], updatedLineAssociationEvent: [{
175
- type: Output
176
- }], onChange: [{
177
- type: Output
178
- }] } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWFzc29jaWF0ZWQtbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1kZXZpY2UtbWFuYWdlL3NyYy9kZXZpY2UtYXNzb2NpYXRlZC1saW5lL2RldmljZS1hc3NvY2lhdGVkLWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLWFzc29jaWF0ZWQtbGluZS9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU8xRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLDZCQUE2QjtJQWV4QyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RKLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMs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LFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksMkJBQTJCO3NCQUFwQyxNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbiB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSZWNvcmRpbmdPcHRpb25zIH0gZnJvbSAnLi4vY2xhc3Nlcy9kZXZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUkVDT1JESU5HX01FRElBX1NPVVJDRSwgU1RBVElDX09QVElPTlMgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaXRlU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2l0ZS1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGluZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGV2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGV2aWNlLWFzc29jaWF0ZWQtbGluZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1hc3NvY2lhdGVkLWxpbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RldmljZS1hc3NvY2lhdGVkLWxpbmUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERldmljZUFzc29jaWF0ZWRMaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGxpbmVJbmRleCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkZXZpY2VJbmRleCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkZXZpY2VOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpdGVJZCE6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgdXBkYXRlZExpbmVBc3NvY2lhdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuICByZWNvcmRpbmdPcHRpb25zID0gUmVjb3JkaW5nT3B0aW9ucztcclxuICByZWNvcmRpbmdNZWRpYVNvdXJjZXM6IHN0cmluZ1tdID0gUkVDT1JESU5HX01FRElBX1NPVVJDRTtcclxuICBzdGF0aWNPcHRpb25zID0gU1RBVElDX09QVElPTlM7XHJcbiAgbW9uaXRvckNzc0xpc3Q6IGFueTtcclxuICBmaWx0ZXJlZE1vbml0b3JDc3NMaXN0OiBhbnk7XHJcbiAgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPlxyXG5cclxuICBnZXQgZm9ybSgpOiBGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbdGhpcy5kZXZpY2VJbmRleF0gJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1t0aGlzLmRldmljZUluZGV4XS5saW5lQXNzb2NpYXRpb25zW3RoaXMubGluZUluZGV4XS5mb3JtO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmVBc3NvY2lhdGlvbigpOiBMaW5lQXNzb2NpYXRpb24gfCBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbdGhpcy5kZXZpY2VJbmRleF0ubGluZUFzc29jaWF0aW9uc1t0aGlzLmxpbmVJbmRleF07XHJcbiAgfVxyXG5cclxuICBnZXQgb3JpZ2luTGluZUFzc29jaWF0aW9uKCk6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8ub3JpZ2luVXNlcj8uZGV2aWNlc1t0aGlzLmRldmljZUluZGV4XS5saW5lQXNzb2NpYXRpb25zW3RoaXMubGluZUluZGV4XTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyKCk6IFNpbXBsaWZpZWRVc2VyIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLnVzZXI7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzaXRlU2V0dGluZ3NTZXJ2aWNlOiBTaXRlU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsaW5lU2VydmljZTogTGluZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIHRoaXMubGluZVNlcnZpY2Uub25TYXZlTGluZUFzc29jaWF0aW9uRXZlbnRcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaW5lKHRoaXMubGluZUFzc29jaWF0aW9uKTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VGaWVsZCh0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgICh0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZGV2aWNlc1t0aGlzLmRldmljZUluZGV4XS5saW5lQXNzb2NpYXRpb25zW3RoaXMubGluZUluZGV4XSBhcyBhbnkpW3Rva2VuXSA9IHRoaXMuZm9ybT8uZ2V0KHRva2VuKT8udmFsdWU7XHJcbiAgICB0aGlzLnNldEhhc0NoYW5nZXNUb0xpbmUoKTtcclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCgpO1xyXG5cclxuICB9XHJcblxyXG4gIG9uQXV0b2NvbXBsZXRlKHRva2VuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtPy5nZXQodG9rZW4pPy52YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVyZWRNb25pdG9yQ3NzTGlzdCA9IFV0aWxzU2VydmljZS5maWx0ZXJPcHRpb25zKHRoaXMubW9uaXRvckNzc0xpc3QsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlY29yZGluZ09wdGlvbkNoYW5nZWQodG9rZW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm0uZ2V0KHRva2VuKT8udmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRmllbGQodG9rZW4pO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gUmVjb3JkaW5nT3B0aW9ucy5hdXRvX2VuYWJsZWQgfHwgdmFsdWUgPT09IFJlY29yZGluZ09wdGlvbnMuc2VsZWN0aXZlX2VuYWJsZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm0/LmdldCgncmVjb3JkaW5nUHJvZmlsZScpPy50b3VjaGVkKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgncmVjb3JkaW5nUHJvZmlsZScpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLmdldCgncmVjb3JkaW5nUHJvZmlsZScpPy5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncmVjb3JkaW5nTWVkaWFTb3VyY2UnKT8uZW5hYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdyZWNvcmRpbmdQcm9maWxlJyk/LmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncmVjb3JkaW5nUHJvZmlsZScpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VGaWVsZCgncmVjb3JkaW5nUHJvZmlsZScpO1xyXG5cclxuICAgICAgLyogaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1JvbGUoJ1NVUEVSX1VTRVInKSkge1xyXG4gICAgICAgICByZWNvcmRpbmdNZWRpYVNvdXJjZS5kaXNhYmxlKCk7XHJcbiAgICAgICAgIHJlY29yZGluZ01lZGlhU291cmNlLnNldFZhbHVlKHRoaXMucmVjb3JkaW5nTWVkaWFTb3VyY2VzWzBdKTtcclxuICAgICAgICAgdGhpcy5jaGFuZ2VGaWVsZCgncmVjb3JkaW5nTWVkaWFTb3VyY2UnKTtcclxuICAgICAgIH0qL1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UnVsZSgpOiBzdHJpbmcge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgaWYgKHRoaXMuZm9ybS5nZXQoJ2UxNjRNYXNrJyk/LmVycm9ycyAmJiB0aGlzLmZvcm0uZ2V0KCdlMTY0TWFzaycpPy5lcnJvcnNbJ2UxNjRNYXNrUnVsZSddKSB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2UxNjRNYXNrJyk/LmVycm9yc1snZTE2NE1hc2tSdWxlJ11bJ3J1bGUnXVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZUVkaXRNb2RlKCkge1xyXG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyLnRvZ2dsZUVkaXRNb2RlKCk7XHJcbiAgfVxyXG5cclxuICBpc1NhdmluZ0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnVzZXJTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKCkgfHwgdGhpcy51c2VyU2VydmljZS5oYXNFeGlzdGVkVXNlcklkO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VFeHRlbnNpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXIgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTGluZVJlbW92ZSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGEoKSB7XHJcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc2l0ZVNldHRpbmdzU2VydmljZS5nZXRNb25pdG9yQ3NzKHRoaXMuc2l0ZUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9uaXRvckNzc0xpc3QgPSByZXM/Lmxlbmd0aCA/IHJlcy5zbGljZSgpIDogW107XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vbml0b3JDc3NMaXN0ID0gcmVzPy5sZW5ndGggPyByZXMuc2xpY2UoKSA6IFtdO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVMaW5lKGxpbmU6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSk6IHZvaWQge1xyXG4gICAgY29uc3QgYm9keSA9IHRoaXMubGluZVNlcnZpY2UuZ2V0TGluZUFzc29jaWF0aW9uQm9keSh0aGlzLm9yaWdpbkxpbmVBc3NvY2lhdGlvbiwgdGhpcy5saW5lQXNzb2NpYXRpb24pO1xyXG4gICAgY29uc29sZS5sb2coJ3VwZGF0ZSBsaW5lJywgYm9keSk7XHJcbiAgICB0aGlzLmRldmljZVNlcnZpY2UuZGF0YVBlbmRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kZXZpY2VTZXJ2aWNlLnB1dERldmljZUZpZWxkcyh0aGlzLnNpdGVJZCwgdGhpcy5kZXZpY2VOYW1lLCB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIudG9rZW4sIGJvZHkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UucGVyc2lzdFVzZXJDYWNoZSgpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5mZXRjaFVzZXJUb2tlbih0aGlzLnNpdGVJZCwgdGhpcy51c2VyU2VydmljZS51c2VyLnVzZXJpZCwgdGhpcy52YWxpZGF0aW9uU2VydmljZSlcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlZExpbmVBc3NvY2lhdGlvbkV2ZW50LmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV2aWNlU2VydmljZS5kYXRhUGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0sICgpID0+IHRoaXMuZGV2aWNlU2VydmljZS5kYXRhUGVuZGluZyA9IGZhbHNlKTtcclxuICAgICAgICAgIH0sICgpID0+IHRoaXMuZGV2aWNlU2VydmljZS5kYXRhUGVuZGluZyA9IHRydWUpXHJcbiAgICAgIH0sICgpID0+IHRoaXMuZGV2aWNlU2VydmljZS5kYXRhUGVuZGluZyA9IHRydWUpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlbGV0ZUxpbmUobGluZTogTGluZUFzc29jaWF0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpbmVTZXJ2aWNlLmRlbGV0ZUxpbmUodGhpcy5zaXRlSWQsIGxpbmUubGluZVBraWQsIHRoaXMudXNlclNlcnZpY2UudXNlci50b2tlbilcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS5wZXJzaXN0VXNlckNhY2hlKClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmZldGNoVXNlclRva2VuKHRoaXMuc2l0ZUlkLCB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIudXNlcmlkLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVkTGluZUFzc29jaWF0aW9uRXZlbnQuZW1pdCgpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SGFzQ2hhbmdlc1RvTGluZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxpbmVBc3NvY2lhdGlvbikge1xyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZGV2aWNlc1t0aGlzLmRldmljZUluZGV4XS5saW5lQXNzb2NpYXRpb25zW3RoaXMubGluZUluZGV4XS5oYXNDaGFuZ2VzID0gIXRoaXMubGluZUFzc29jaWF0aW9uLmZ1bGxFcXVhbCh0aGlzLm9yaWdpbkxpbmVBc3NvY2lhdGlvbik7XHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzW3RoaXMuZGV2aWNlSW5kZXhdLmxpbmVBc3NvY2lhdGlvbnNIYXNDaGFuZ2VzID0gIXRoaXMubGluZUFzc29jaWF0aW9uLmZ1bGxFcXVhbCh0aGlzLm9yaWdpbkxpbmVBc3NvY2lhdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJkZXZpY2UtYXNzb2NpYXRlZC1saW5lXCIgKm5nSWY9XCJsaW5lQXNzb2NpYXRpb24gJiYgZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxuZy1jb250YWluZXIgY2xhc3M9XCJsaW5lLWRldGFpbHNfX2NvbnRhaW5lclwiPlxyXG4gICAgICA8YXBwLWxpbmUtZGV0YWlscy1ibG9jayBbdGl0bGVdPVwiJ0xpbmUgc2V0dGluZyBvbiB0aGUgZGV2aWNlJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+RGlzcGxheSBDYWxsZXIgSUQ8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJkaXNwbGF5TGFiZWxcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ2Rpc3BsYXlMYWJlbCcpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnZGlzcGxheUxhYmVsJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgVGhpcyBmaWVsZCBjYW7igJl0IGhhdmUgbW9yZSB0aGFuIDMwIGNoYXJhY3RlcnNcclxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnZGlzcGxheUxhYmVsJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJylcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIEludmFsaWQgc3ltYm9scyBhcmUgdXNlZFxyXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBfX3NlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+VGV4dCBMYWJlbDwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInRleHRMYWJlbFwiIG5hbWU9XCJ0ZXh0TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgKGlucHV0KT1cIm9uQ2hhbmdlRmllbGQoJ3RleHRMYWJlbCcpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgndGV4dExhYmVsJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgVGhpcyBmaWVsZCBjYW7igJl0IGhhdmUgbW9yZSB0aGFuIDMwIGNoYXJhY3RlcnNcclxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgndGV4dExhYmVsJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJylcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIEludmFsaWQgc3ltYm9scyBhcmUgdXNlZFxyXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBfX3NlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+RXh0ZXJuYWwgUGhvbmUgTnVtYmVyIE1hc2s8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJlMTY0TWFza1wiIGZvcm1Db250cm9sTmFtZT1cImUxNjRNYXNrXCJcclxuICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZUZpZWxkKCdlMTY0TWFzaycpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnZTE2NE1hc2snKT8uaGFzRXJyb3IoJ2UxNjRNYXNrUnVsZScpXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cclxuICAgICAgICAgICAgICBlMTY0TWFzayBkb2VzIG5vdCBtYXRjaCB0aGUgcnVsZSB7e2dldFJ1bGUoKX19XHJcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtbGluZS1kZXRhaWxzLWJsb2NrPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXzJweFwiPjwvZGl2PlxyXG4gICAgICA8YXBwLWxpbmUtZGV0YWlscy1ibG9jayBbdGl0bGVdPVwiJ011bHRpcGxlIENhbGwvQ2FsbCBXYWl0aW5nIFNldHRpbmdzJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+TWF4IENhbGxzPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG5hbWU9XCJtYXhOdW1iZXJPZkNhbGxzXCIgZm9ybUNvbnRyb2xOYW1lPVwibWF4TnVtYmVyT2ZDYWxsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnbWF4TnVtYmVyT2ZDYWxscycpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbWF4TnVtYmVyT2ZDYWxscycpPy5oYXNFcnJvcignbWF4JylcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIFZhbHVlIGlzIHRvbyBiaWdcclxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwX19zZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsPkJ1c3kgVHJpZ2dlcjwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBuYW1lPVwiYnVzeVRyaWdnZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJidXN5VHJpZ2dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VGaWVsZCgnYnVzeVRyaWdnZXInKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ2J1c3lUcmlnZ2VyJyk/Lmhhc0Vycm9yKCdtYXgnKVwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgVmFsdWUgY2FuJ3QgYmUgYmlnZ2VyIHRoYW4gTWF4IENhbGxzXHJcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtbGluZS1kZXRhaWxzLWJsb2NrPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXzJweFwiPjwvZGl2PlxyXG4gICAgICA8YXBwLWxpbmUtZGV0YWlscy1ibG9jayBbdGl0bGVdPVwiJ0NhbGwgUmVjb3JkaW5nJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+UmVjb3JkaW5nIE9wdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInJlY29yZGluZ09wdGlvbkNoYW5nZWQoJ3JlY29yZGluZ09wdGlvbicpXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWNvcmRpbmdPcHRpb25cIlxyXG4gICAgICAgICAgICAgIFtpZF09XCInYXNzb2NpYXRlZExpbmVSZWNvcmRpbmdPcHRpb25GaWVsZCdcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPXJlY29yZGluZ09wdGlvbnMuZGlzYWJsZWQ+Q2FsbCBSZWNvcmRpbmcgRGlzYWJsZWQ8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1yZWNvcmRpbmdPcHRpb25zLmF1dG9fZW5hYmxlZD5BdXRvbWF0aWMgQ2FsbCBSZWNvcmRpbmcgRW5hYmxlZDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPXJlY29yZGluZ09wdGlvbnMuc2VsZWN0aXZlX2VuYWJsZWQ+U2VsZWN0aXZlIENhbGwgUmVjb3JkaW5nIEVuYWJsZWQ8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBfX3NlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+UmVjb3JkaW5nIE1lZGlhIFNvdXJjZTwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ3JlY29yZGluZ01lZGlhU291cmNlJylcIiBmb3JtQ29udHJvbE5hbWU9XCJyZWNvcmRpbmdNZWRpYVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cIidhc3NvY2lhdGVkTGluZVJlY29yZGluZ01lZGlhU291cmNlRmllbGQnXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNvdXJjZSBvZiByZWNvcmRpbmdNZWRpYVNvdXJjZXNcIiBbdmFsdWVdPVwic291cmNlXCI+e3tzb3VyY2V9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5SZWNvcmRpbmcgUHJvZmlsZTwvbGFiZWw+XHJcbiAgICAgICAgICA8YXBwLWxhenktbG9hZGluZy1zZWxlY3RcclxuICAgICAgICAgICAgW3NpdGVJZF09XCJzaXRlSWRcIlxyXG4gICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiJ3JlY29yZGluZ1Byb2ZpbGUnXCJcclxuICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgIChjaGFuZ2VGaWVsZCk9XCJvbkNoYW5nZUZpZWxkKCdyZWNvcmRpbmdQcm9maWxlJylcIlxyXG4gICAgICAgICAgICBbb3B0aW9uc1Rva2VuXT1cIidyZWNvcmRpbmdQcm9maWxlJ1wiPjwvYXBwLWxhenktbG9hZGluZy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLWxpbmUtZGV0YWlscy1ibG9jaz5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBfX3NlcGFyYXRvcl8ycHhcIj48L2Rpdj5cclxuICAgICAgPGFwcC1saW5lLWRldGFpbHMtYmxvY2sgW3RpdGxlXT1cIidBZGRpdGlvbmFsIGxpbmUgc2V0dGluZ3Mgb24gdGhlIGRldmljZSdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlZpc3VhbCBNZXNzYWdlIFdhaXRpbmcgSW5kaWNhdG9yIFBvbGljeTwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2aXN1YWxNV0lcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VGaWVsZCgndmlzdWFsTVdJJylcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzdGF0aWNPcHRpb25zLlZJU1VBTF9NV0lcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICB7e29wdGlvbn19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwX19zZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlJpbmcgU2V0dGluZyAoUGhvbmUgSWRsZSk8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmluZ1NldHRpbmdfaWRsZVwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKCdyaW5nU2V0dGluZ19pZGxlJylcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHN0YXRpY09wdGlvbnMuUklOR19TRVRUSU5HX0lETEVcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICB7e29wdGlvbn19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwX19zZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsPkNhbGwgUGlja3VwIEF1ZGlvIEFsZXJ0IFNldHRpbmcgKFBob25lIElkbGUpPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBuYW1lPVwicGlja3VwQUFTX2lkbGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBpY2t1cEFBU19pZGxlXCJcclxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ3BpY2t1cEFBU19pZGxlJylcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHN0YXRpY09wdGlvbnMuQ0FMTF9QSUNLVVBfR1JPVVBfQVVESU9fU0VUVElOR19QSE9ORV9JRExFXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAge3tvcHRpb259fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5Nb25pdG9yaW5nIENhbGxpbmcgU2VhcmNoIFNwYWNlPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgKGlucHV0KT1cIm9uQXV0b2NvbXBsZXRlKCdtb25pdG9yQ1NTJylcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1vbml0b3JDU1NcIj5cclxuICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uQ2hhbmdlRmllbGQoJ21vbml0b3JDU1MnKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkTW9uaXRvckNzc0xpc3RcIiBbdmFsdWVdPVwib3B0aW9uXCIgPlxyXG4gICAgICAgICAgICAgICAge3tvcHRpb259fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5BdWRpYmxlIE1lc3NhZ2UgV2FpdGluZyBJbmRpY2F0b3IgUG9saWN5PC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImF1ZGlibGVNV0lcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VGaWVsZCgnYXVkaWJsZU1XSScpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzdGF0aWNPcHRpb25zLkRFRkFVTFRfT05fT0ZGXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAge3tvcHRpb259fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5SaW5nIFNldHRpbmcgKFBob25lIEFjdGl2ZSk8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmluZ1NldHRpbmdfYWN0aXZlXCJcclxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ3JpbmdTZXR0aW5nX2FjdGl2ZScpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzdGF0aWNPcHRpb25zLlJJTkdfU0VUVElOR19BQ1RJVkVcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICB7e29wdGlvbn19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwX19zZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsPkNhbGwgUGlja3VwIEF1ZGlvIEFsZXJ0IFNldHRpbmcgKFBob25lIEFjdGl2ZSk8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGlja3VwQUFTX2FjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKCdwaWNrdXBBQVNfYWN0aXZlJylcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzdGF0aWNPcHRpb25zLkNBTExfUElDS1VQX0dST1VQX0FVRElPX1NFVFRJTkdfUEhPTkVfQUNUSVZFXCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7b3B0aW9ufX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBfX3NlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWw+TG9nIE1pc3NlZCBDYWxsczwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBuYW1lPVwibG9nTWlzc2VkQ2FsbHNcIiBmb3JtQ29udHJvbE5hbWU9XCJsb2dNaXNzZWRDYWxsXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2FwcC1saW5lLWRldGFpbHMtYmxvY2s+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwX19zZXBhcmF0b3JfMnB4XCI+PC9kaXY+XHJcbiAgICAgIDxhcHAtbGluZS1kZXRhaWxzLWJsb2NrIFt0aXRsZV09XCInRm9yd2FyZHJlZCBjYWxsIGluZm9ybWF0aW9uIGRpc3BsYXknXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5DYWxsZXIgTmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBuYW1lPVwiY2FsbGVyTmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImNhbGxlck5hbWVcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ2NhbGxlck5hbWUnKVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5SZWRpcmVjdGVkIE51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBuYW1lPVwicmVkaXJlY3RlZE51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInJlZGlyZWN0ZWROdW1iZXJcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ3JlZGlyZWN0ZWROdW1iZXInKVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cF9fc2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbD5DYWxsZXIgTnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIG5hbWU9XCJjYWxsZXJOdW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJjYWxsZXJOdW1iZXJcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlRmllbGQoJ2NhbGxlck51bWJlcicpXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwX19zZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsPkRpYWxlZCBOdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgbmFtZT1cImRpYWxlZE51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cImRpYWxlZE51bWJlclwiIChjaGFuZ2UpPVwib25DaGFuZ2VGaWVsZCgnZGlhbGVkTnVtYmVyJylcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLWxpbmUtZGV0YWlscy1ibG9jaz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,24 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/slide-toggle";
5
- export class DeviceListComponent {
6
- constructor() {
7
- this.onDeviceSelect = new EventEmitter();
8
- console.log('devices list');
9
- }
10
- selectDevice(device) {
11
- this.onDeviceSelect.emit(device);
12
- }
13
- }
14
- DeviceListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- DeviceListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceListComponent, selector: "app-device-list", inputs: { devices: "devices" }, outputs: { onDeviceSelect: "onDeviceSelect" }, ngImport: i0, template: "<div class=\"webex-list device-list-container\">\r\n <div class=\"webex-list-header\">\r\n <div class=\"webex-list-header__hr\">Name</div>\r\n <div class=\"webex-list-header__hr\">Type</div>\r\n <div class=\"webex-list-header__hr\">Line</div>\r\n <div class=\"webex-list-header__hr\">Device description</div>\r\n <div class=\"webex-list-header__hr\">Plar service</div>\r\n </div>\r\n <ng-container *ngFor=\"let device of devices\">\r\n <div class=\"device-item\" (click)=\"selectDevice(device)\">\r\n <div class=\"device-item__td\">{{ device.name }}</div>\r\n <div class=\"device-item__td\">{{ device.deviceType }}</div>\r\n <div class=\"device-item__td\" *ngIf=\"device.lineAssociations?.length\">\r\n <span class=\"device-associated-line\" *ngFor=\"let line of device.lineAssociations\">{{line.directoryNumber?.directoryNumber}} | </span>\r\n </div>\r\n <div class=\"device-item__td\">{{ device.description }}</div>\r\n <div class=\"device-item__td\">\r\n <mat-slide-toggle class=\"device-slide-toggle\" [disabled]=\"true\" [checked]=\"device.plarService\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"device-item__actions-menu\" style=\"text-align: right;\">\r\n <div class=\"device-item__more\">\r\n<!-- <mat-icon>more_vert</mat-icon>-->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [".info-holder{display:flex;gap:16px;align-items:center;font-family:Inter,sans-serif;height:102px;width:100%;background:white;margin:0 0 30px}.info-holder__user-image img{width:40px;border-radius:120px;margin:20px 0 0}.info-holder__user-information{padding:10px;margin:10px;gap:10px;display:flex;flex-direction:column}.info-holder__user-name{font-size:20px;font-weight:500}.info-holder__user-breadcrumbs{display:flex;gap:8px;font-weight:400;font-size:14px;color:#000000b3;align-items:center}.info-holder .icon-separator{height:5px;width:5px;background-color:#000000b3;border-radius:50%}.info-holder .is-active{display:flex;gap:8px;align-items:center}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.webex-list{padding:2.5rem}.webex-list-header{display:flex;align-items:center;padding:1rem}.webex-list-header__hr{width:100%;font-size:12px}.device-item{position:relative;display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-bottom:1px solid #b0b0b0;padding:.8rem;z-index:10;transition:background-color .3s;cursor:pointer}.device-item__td{width:100%}.device-item__actions-menu{position:absolute;margin:0 1rem;right:0}.device-item__more{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#b0b0b0;border-radius:50%;padding:.5rem;transition:background-color .3s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceListComponent, decorators: [{
17
- type: Component,
18
- args: [{ selector: 'app-device-list', template: "<div class=\"webex-list device-list-container\">\r\n <div class=\"webex-list-header\">\r\n <div class=\"webex-list-header__hr\">Name</div>\r\n <div class=\"webex-list-header__hr\">Type</div>\r\n <div class=\"webex-list-header__hr\">Line</div>\r\n <div class=\"webex-list-header__hr\">Device description</div>\r\n <div class=\"webex-list-header__hr\">Plar service</div>\r\n </div>\r\n <ng-container *ngFor=\"let device of devices\">\r\n <div class=\"device-item\" (click)=\"selectDevice(device)\">\r\n <div class=\"device-item__td\">{{ device.name }}</div>\r\n <div class=\"device-item__td\">{{ device.deviceType }}</div>\r\n <div class=\"device-item__td\" *ngIf=\"device.lineAssociations?.length\">\r\n <span class=\"device-associated-line\" *ngFor=\"let line of device.lineAssociations\">{{line.directoryNumber?.directoryNumber}} | </span>\r\n </div>\r\n <div class=\"device-item__td\">{{ device.description }}</div>\r\n <div class=\"device-item__td\">\r\n <mat-slide-toggle class=\"device-slide-toggle\" [disabled]=\"true\" [checked]=\"device.plarService\"></mat-slide-toggle>\r\n </div>\r\n <div class=\"device-item__actions-menu\" style=\"text-align: right;\">\r\n <div class=\"device-item__more\">\r\n<!-- <mat-icon>more_vert</mat-icon>-->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [".info-holder{display:flex;gap:16px;align-items:center;font-family:Inter,sans-serif;height:102px;width:100%;background:white;margin:0 0 30px}.info-holder__user-image img{width:40px;border-radius:120px;margin:20px 0 0}.info-holder__user-information{padding:10px;margin:10px;gap:10px;display:flex;flex-direction:column}.info-holder__user-name{font-size:20px;font-weight:500}.info-holder__user-breadcrumbs{display:flex;gap:8px;font-weight:400;font-size:14px;color:#000000b3;align-items:center}.info-holder .icon-separator{height:5px;width:5px;background-color:#000000b3;border-radius:50%}.info-holder .is-active{display:flex;gap:8px;align-items:center}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.webex-list{padding:2.5rem}.webex-list-header{display:flex;align-items:center;padding:1rem}.webex-list-header__hr{width:100%;font-size:12px}.device-item{position:relative;display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-bottom:1px solid #b0b0b0;padding:.8rem;z-index:10;transition:background-color .3s;cursor:pointer}.device-item__td{width:100%}.device-item__actions-menu{position:absolute;margin:0 1rem;right:0}.device-item__more{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#b0b0b0;border-radius:50%;padding:.5rem;transition:background-color .3s ease-in-out}\n"] }]
19
- }], ctorParameters: function () { return []; }, propDecorators: { devices: [{
20
- type: Input
21
- }], onDeviceSelect: [{
22
- type: Output
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLWxpc3QvZGV2aWNlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLWxpc3QvZGV2aWNlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCO1FBRkEsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUIsQ0FBQztJQUdELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7O2lIQWJVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHNJQ1JoQyw0NENBMkJBOzRGRG5CYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzBFQUtsQixPQUFPO3NCQUFmLEtBQUs7Z0JBRU4sY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSAnLi4vY2xhc3Nlcy9kZXZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGV2aWNlLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZpY2UtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGV2aWNlLWxpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV2aWNlTGlzdENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZGV2aWNlcyE6IGFueTtcclxuICBAT3V0cHV0KClcclxuICBvbkRldmljZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGV2aWNlPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGNvbnNvbGUubG9nKCdkZXZpY2VzIGxpc3QnKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgc2VsZWN0RGV2aWNlKGRldmljZTogRGV2aWNlKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRGV2aWNlU2VsZWN0LmVtaXQoZGV2aWNlKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwid2ViZXgtbGlzdCBkZXZpY2UtbGlzdC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwid2ViZXgtbGlzdC1oZWFkZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3ZWJleC1saXN0LWhlYWRlcl9faHJcIj5OYW1lPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwid2ViZXgtbGlzdC1oZWFkZXJfX2hyXCI+VHlwZTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIndlYmV4LWxpc3QtaGVhZGVyX19oclwiPkxpbmU8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3ZWJleC1saXN0LWhlYWRlcl9faHJcIj5EZXZpY2UgZGVzY3JpcHRpb248L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3ZWJleC1saXN0LWhlYWRlcl9faHJcIj5QbGFyIHNlcnZpY2U8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkZXZpY2Ugb2YgZGV2aWNlc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImRldmljZS1pdGVtXCIgKGNsaWNrKT1cInNlbGVjdERldmljZShkZXZpY2UpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXZpY2UtaXRlbV9fdGRcIj57eyBkZXZpY2UubmFtZSB9fTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWl0ZW1fX3RkXCI+e3sgZGV2aWNlLmRldmljZVR5cGUgfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRldmljZS1pdGVtX190ZFwiICpuZ0lmPVwiZGV2aWNlLmxpbmVBc3NvY2lhdGlvbnM/Lmxlbmd0aFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLWFzc29jaWF0ZWQtbGluZVwiICpuZ0Zvcj1cImxldCBsaW5lIG9mIGRldmljZS5saW5lQXNzb2NpYXRpb25zXCI+e3tsaW5lLmRpcmVjdG9yeU51bWJlcj8uZGlyZWN0b3J5TnVtYmVyfX0gfCA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWl0ZW1fX3RkXCI+e3sgZGV2aWNlLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXZpY2UtaXRlbV9fdGRcIj5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImRldmljZS1zbGlkZS10b2dnbGVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIFtjaGVja2VkXT1cImRldmljZS5wbGFyU2VydmljZVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXZpY2UtaXRlbV9fYWN0aW9ucy1tZW51XCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWl0ZW1fX21vcmVcIj5cclxuPCEtLSAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==