@tuki-io/tuki-widgets 0.0.219-dev.6 → 0.0.219-dev.62

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 (261) hide show
  1. package/contact-center/cc-import/cc-import.module.d.ts +13 -0
  2. package/contact-center/cc-import/cc-import.service.d.ts +85 -0
  3. package/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.d.ts +56 -0
  4. package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.d.ts +77 -0
  5. package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.d.ts +3 -0
  6. package/contact-center/cc-import/constants/cc-import.constants.d.ts +37 -0
  7. package/contact-center/cc-import/mock/cc-import.mock.d.ts +4 -0
  8. package/contact-center/cc-import/types/cc-import.d.ts +73 -0
  9. package/contact-center/cc-import/types/uccx.d.ts +109 -0
  10. package/contact-center/cc-readiness/cc-readiness.module.d.ts +3 -3
  11. package/contact-center/public-api.d.ts +8 -0
  12. package/contact-center/shared/api.endpoints.d.ts +25 -0
  13. package/contact-center/shared/api.service.d.ts +3 -1
  14. package/contact-center/shared/components/card/card.component.d.ts +13 -0
  15. package/contact-center/shared/dcp-api.service.d.ts +15 -0
  16. package/contact-center/shared/shared.module.d.ts +11 -5
  17. package/di2mt/api/api.endpoints.d.ts +3 -0
  18. package/esm2020/contact-center/cc-import/cc-import.module.mjs +45 -0
  19. package/esm2020/contact-center/cc-import/cc-import.service.mjs +228 -0
  20. package/esm2020/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.mjs +144 -0
  21. package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.mjs +243 -0
  22. package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.mjs +3 -0
  23. package/esm2020/contact-center/cc-import/constants/cc-import.constants.mjs +62 -0
  24. package/esm2020/contact-center/cc-import/mock/cc-import.mock.mjs +78 -0
  25. package/esm2020/contact-center/cc-import/types/cc-import.mjs +2 -0
  26. package/esm2020/contact-center/cc-import/types/uccx.mjs +24 -0
  27. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +7 -6
  28. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +5 -5
  29. package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +2 -2
  30. package/esm2020/contact-center/public-api.mjs +9 -1
  31. package/esm2020/contact-center/shared/api.endpoints.mjs +26 -1
  32. package/esm2020/contact-center/shared/api.service.mjs +8 -3
  33. package/esm2020/contact-center/shared/components/card/card.component.mjs +24 -0
  34. package/esm2020/contact-center/shared/dcp-api.service.mjs +26 -0
  35. package/esm2020/contact-center/shared/shared.module.mjs +15 -5
  36. package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
  37. package/esm2020/locations/public-api.mjs +8 -0
  38. package/esm2020/locations/src/app.constants.mjs +18 -0
  39. package/esm2020/locations/src/location-confirm-dialog/location-confirm-dialog.component.mjs +23 -0
  40. package/esm2020/locations/src/locations.component.mjs +398 -0
  41. package/esm2020/locations/src/locations.module.mjs +42 -0
  42. package/esm2020/locations/src/material.module.mjs +55 -0
  43. package/esm2020/locations/src/services/api.service.mjs +67 -0
  44. package/esm2020/locations/src/services/locations.service.mjs +69 -0
  45. package/esm2020/locations/src/types/location.mjs +2 -0
  46. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
  47. package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
  48. package/esm2020/meetings/public-api.mjs +8 -0
  49. package/esm2020/meetings/src/app.constants.mjs +9 -0
  50. package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
  51. package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
  52. package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
  53. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
  54. package/esm2020/meetings/src/material.module.mjs +76 -0
  55. package/esm2020/meetings/src/meetings.component.mjs +65 -0
  56. package/esm2020/meetings/src/meetings.module.mjs +51 -0
  57. package/esm2020/meetings/src/services/api.service.mjs +67 -0
  58. package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
  59. package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
  60. package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
  61. package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
  62. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
  63. package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
  64. package/esm2020/shared/public-api.mjs +4 -0
  65. package/esm2020/shared/src/ui/material.module.mjs +188 -0
  66. package/esm2020/shared/src/ui/shared.module.mjs +36 -0
  67. package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
  68. package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
  69. package/esm2020/shared/src/ui/ui.module.mjs +37 -0
  70. package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
  71. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
  72. package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
  73. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
  74. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
  75. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
  76. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
  77. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
  78. package/esm2020/user-device-manage/public-api.mjs +4 -1
  79. package/esm2020/user-device-manage/src/app.constants.mjs +9 -3
  80. package/esm2020/user-device-manage/src/associate-lines/associate-lines.component.mjs +311 -0
  81. package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
  82. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  83. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  84. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +2 -2
  85. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +34 -17
  86. package/esm2020/user-device-manage/src/device-settings/device-settings.component.mjs +207 -0
  87. package/esm2020/user-device-manage/src/line-key-config/line-key-config.component.mjs +401 -0
  88. package/esm2020/user-device-manage/src/services/device.service.mjs +32 -2
  89. package/esm2020/user-device-manage/src/services/user.service.mjs +34 -6
  90. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +19 -7
  91. package/esm2020/user-manage/src/app.constants.mjs +8 -1
  92. package/esm2020/user-manage/src/classes/simplified-user.mjs +19 -4
  93. package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
  94. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
  95. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +9 -5
  96. package/esm2020/user-manage/src/material.module.mjs +21 -7
  97. package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
  98. package/esm2020/user-manage/src/services/site-settings.service.mjs +11 -4
  99. package/esm2020/user-manage/src/services/user.service.mjs +94 -19
  100. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
  101. package/esm2020/user-manage/src/user-manage-widget.component.mjs +90 -39
  102. package/esm2020/user-manage/src/user-manage.module.mjs +14 -4
  103. package/esm2020/user-manage/src/user-summary/user-summary.component.mjs +30 -0
  104. package/esm2020/users-list/src/app.constants.mjs +2 -1
  105. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  106. package/esm2020/users-list/src/classes/user-list.mjs +2 -1
  107. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
  108. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
  109. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
  110. package/esm2020/users-list/src/users-list.component.mjs +100 -17
  111. package/esm2020/workspaces/public-api.mjs +8 -0
  112. package/esm2020/workspaces/src/app.constants.mjs +27 -0
  113. package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
  114. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +96 -0
  115. package/esm2020/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.mjs +66 -0
  116. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
  117. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +130 -0
  118. package/esm2020/workspaces/src/material.module.mjs +83 -0
  119. package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
  120. package/esm2020/workspaces/src/services/api.service.mjs +67 -0
  121. package/esm2020/workspaces/src/services/workspace-detail.service.mjs +169 -0
  122. package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
  123. package/esm2020/workspaces/src/services/workspaces.service.mjs +152 -0
  124. package/esm2020/workspaces/src/types/workspace.mjs +4 -0
  125. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
  126. package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
  127. package/esm2020/workspaces/src/utils/workspace-name.mjs +8 -0
  128. package/esm2020/workspaces/src/workspaces.component.mjs +322 -0
  129. package/esm2020/workspaces/src/workspaces.module.mjs +54 -0
  130. package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
  131. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +998 -127
  132. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  133. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  134. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  135. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +679 -0
  136. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  137. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
  138. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  139. package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
  140. package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  141. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
  142. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  143. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +1013 -48
  144. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  145. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +380 -89
  146. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  147. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +121 -22
  148. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  149. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +1292 -0
  150. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  151. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +989 -127
  152. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  153. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  154. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  155. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +672 -0
  156. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  157. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
  158. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  159. package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
  160. package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  161. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
  162. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  163. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +996 -47
  164. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  165. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +366 -82
  166. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  167. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +120 -22
  168. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  169. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +1294 -0
  170. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  171. package/locations/index.d.ts +5 -0
  172. package/locations/public-api.d.ts +2 -0
  173. package/locations/src/app.constants.d.ts +10 -0
  174. package/locations/src/location-confirm-dialog/location-confirm-dialog.component.d.ts +15 -0
  175. package/locations/src/locations.component.d.ts +92 -0
  176. package/locations/src/locations.module.d.ts +13 -0
  177. package/locations/src/material.module.d.ts +12 -0
  178. package/locations/src/services/api.service.d.ts +18 -0
  179. package/locations/src/services/locations.service.d.ts +25 -0
  180. package/locations/src/types/location.d.ts +30 -0
  181. package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
  182. package/meetings/index.d.ts +5 -0
  183. package/meetings/public-api.d.ts +2 -0
  184. package/meetings/src/app.constants.d.ts +8 -0
  185. package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
  186. package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
  187. package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
  188. package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
  189. package/meetings/src/material.module.d.ts +15 -0
  190. package/meetings/src/meetings.component.d.ts +29 -0
  191. package/meetings/src/meetings.module.d.ts +16 -0
  192. package/meetings/src/services/api.service.d.ts +18 -0
  193. package/meetings/src/services/live-meetings.service.d.ts +9 -0
  194. package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
  195. package/meetings/src/types/live-meeting.d.ts +71 -0
  196. package/meetings/src/types/meeting-space.d.ts +52 -0
  197. package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
  198. package/package.json +33 -1
  199. package/shared/index.d.ts +5 -0
  200. package/shared/public-api.d.ts +3 -0
  201. package/shared/src/ui/material.module.d.ts +28 -0
  202. package/shared/src/ui/shared.module.d.ts +10 -0
  203. package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
  204. package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
  205. package/shared/src/ui/ui.module.d.ts +11 -0
  206. package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
  207. package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
  208. package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
  209. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
  210. package/user-device-manage/public-api.d.ts +3 -0
  211. package/user-device-manage/src/app.constants.d.ts +6 -0
  212. package/user-device-manage/src/associate-lines/associate-lines.component.d.ts +95 -0
  213. package/user-device-manage/src/classes/device.d.ts +15 -0
  214. package/user-device-manage/src/classes/deviceProfile.d.ts +5 -0
  215. package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
  216. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +1 -0
  217. package/user-device-manage/src/device-manage-widget.component.d.ts +6 -1
  218. package/user-device-manage/src/device-settings/device-settings.component.d.ts +53 -0
  219. package/user-device-manage/src/line-key-config/line-key-config.component.d.ts +84 -0
  220. package/user-device-manage/src/services/device.service.d.ts +6 -1
  221. package/user-device-manage/src/services/user.service.d.ts +2 -1
  222. package/user-device-manage/src/user-device-manage.module.d.ts +12 -10
  223. package/user-manage/src/app.constants.d.ts +7 -0
  224. package/user-manage/src/classes/simplified-user.d.ts +17 -1
  225. package/user-manage/src/device-list/device-list.component.d.ts +2 -0
  226. package/user-manage/src/material.module.d.ts +3 -1
  227. package/user-manage/src/services/dcp-api.service.d.ts +21 -0
  228. package/user-manage/src/services/user.service.d.ts +19 -1
  229. package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
  230. package/user-manage/src/user-manage-widget.component.d.ts +14 -2
  231. package/user-manage/src/user-manage.module.d.ts +9 -7
  232. package/user-manage/src/user-summary/user-summary.component.d.ts +10 -0
  233. package/users-list/src/app.constants.d.ts +1 -0
  234. package/users-list/src/classes/simlified-user.d.ts +1 -1
  235. package/users-list/src/classes/user-list.d.ts +4 -0
  236. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
  237. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
  238. package/users-list/src/users-list.component.d.ts +6 -1
  239. package/workspaces/index.d.ts +5 -0
  240. package/workspaces/public-api.d.ts +2 -0
  241. package/workspaces/src/app.constants.d.ts +25 -0
  242. package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
  243. package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +34 -0
  244. package/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.d.ts +25 -0
  245. package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
  246. package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +43 -0
  247. package/workspaces/src/material.module.d.ts +16 -0
  248. package/workspaces/src/services/api-webex.service.d.ts +6 -0
  249. package/workspaces/src/services/api.service.d.ts +18 -0
  250. package/workspaces/src/services/workspace-detail.service.d.ts +22 -0
  251. package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
  252. package/workspaces/src/services/workspaces.service.d.ts +11 -0
  253. package/workspaces/src/types/workspace.d.ts +439 -0
  254. package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
  255. package/workspaces/src/utils/device-icon.d.ts +1 -0
  256. package/workspaces/src/utils/workspace-name.d.ts +1 -0
  257. package/workspaces/src/workspaces.component.d.ts +75 -0
  258. package/workspaces/src/workspaces.module.d.ts +17 -0
  259. package/contact-center/cc-readiness/components/card/card.component.d.ts +0 -6
  260. package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +0 -13
  261. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
@@ -0,0 +1,169 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { forkJoin } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { API } from '../app.constants';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./api.service";
7
+ import * as i2 from "./api-webex.service";
8
+ export class WorkspaceDetailService {
9
+ constructor(apiService, apiWebexService) {
10
+ this.apiService = apiService;
11
+ this.apiWebexService = apiWebexService;
12
+ }
13
+ getByWorkspace(workspace, connectionType, customerId) {
14
+ if (connectionType === 'webex' && workspace.device.webexUUID) {
15
+ return this.getWebexDetails(customerId, workspace.device.webexUUID);
16
+ }
17
+ return this.getCucmDetails(workspace);
18
+ }
19
+ getWebexDetails(customerId, workspaceId) {
20
+ const params = { customerId: String(customerId), workspaceId };
21
+ return forkJoin([
22
+ this.apiWebexService.fetch(this.buildUrl(API.DETAILS.WEBEX.WORKSPACE, params)),
23
+ this.apiWebexService.fetch(this.buildUrl(API.DETAILS.WEBEX.NUMBERS, params)),
24
+ this.apiWebexService.fetch(this.buildUrl(API.DETAILS.WEBEX.CALLERID, params)),
25
+ ]).pipe(map(([workspaceRes, numbersRes, callerIdRes]) => this.toWebexDetails(workspaceRes, numbersRes, callerIdRes)));
26
+ }
27
+ toWebexDetails(workspaceRes, numbersRes, callerIdRes) {
28
+ const primaryNumber = numbersRes.phoneNumbers?.find(number => number.primary) ?? numbersRes.phoneNumbers?.[0];
29
+ return {
30
+ issues: this.buildIssues(workspaceRes.type, workspaceRes.capacity),
31
+ location: {
32
+ country: numbersRes.location?.name || workspaceRes.locationName || 'Not set',
33
+ address: numbersRes.location?.address || 'Address not available',
34
+ },
35
+ calling: {
36
+ license: workspaceRes.licenseName || 'Not set',
37
+ sipAddress: workspaceRes.sipAddress || 'Not assigned',
38
+ directoryNumber: primaryNumber?.external || primaryNumber?.extension || 'Not assigned',
39
+ extension: primaryNumber?.extension || undefined,
40
+ routePartition: '',
41
+ callingSearchSpace: '',
42
+ securityProfile: '',
43
+ externalCallerIdName: callerIdRes.locationExternalCallerIdName || callerIdRes.customExternalCallerIdName || undefined,
44
+ externalCallerIdNumber: callerIdRes.locationNumber || callerIdRes.customNumber || callerIdRes.directNumber || undefined,
45
+ },
46
+ schedulingConfigured: false,
47
+ plannedMaintenanceEnabled: false,
48
+ notes: null,
49
+ capacity: workspaceRes.capacity,
50
+ device: this.buildWebexDeviceDetails(workspaceRes, numbersRes),
51
+ };
52
+ }
53
+ buildWebexDeviceDetails(workspaceRes, numbersRes) {
54
+ const device = workspaceRes.devices?.[0];
55
+ const primaryNumber = numbersRes.phoneNumbers?.find(number => number.primary) ?? numbersRes.phoneNumbers?.[0];
56
+ return {
57
+ model: device?.model || 'Unknown device',
58
+ registrationStatus: device?.registered ? 'Registered' : 'Not Registered',
59
+ mac: device?.mac || 'N/A',
60
+ lineCount: numbersRes.phoneNumbers?.length ?? null,
61
+ hostIpAddress: 'N/A',
62
+ remoteIpAddress: 'N/A',
63
+ managedBy: 'Cisco',
64
+ softwareChannel: 'Unknown',
65
+ softwareVersion: 'N/A',
66
+ lines: primaryNumber ? [{
67
+ name: workspaceRes.workspaceName || '',
68
+ number: primaryNumber.external || primaryNumber.extension || 'NA',
69
+ registered: !!device?.registered,
70
+ }] : [],
71
+ };
72
+ }
73
+ getCucmDetails(workspace) {
74
+ const siteId = String(workspace.siteId);
75
+ const params = { siteId, workspaceId: workspace.cucmDeviceName ?? workspace.device.name };
76
+ return forkJoin([
77
+ this.apiService.fetch(this.buildUrl(API.DETAILS.CUCM.WORKSPACE, params)),
78
+ this.apiService.fetch(this.buildUrl(API.DETAILS.CUCM.SITE, { siteId })),
79
+ ]).pipe(map(([workspaceRes, siteRes]) => this.toCucmDetails(workspace, workspaceRes, siteRes)));
80
+ }
81
+ toCucmDetails(workspace, workspaceRes, siteRes) {
82
+ const device = workspaceRes.device;
83
+ const directoryNumber = device.associatedDNs?.[0]?.directoryNumber ?? '';
84
+ const sipAddress = `${(device.name || workspace.displayName || 'workspace').toLowerCase()}@tukidev.rooms.webex.com`;
85
+ const address = [siteRes.address2, siteRes.address3].filter(Boolean).join(', ');
86
+ return {
87
+ issues: this.buildIssues(workspace.typeLabel, workspace.capacity),
88
+ location: {
89
+ country: siteRes.country || 'Not set',
90
+ address: address || 'Address not available',
91
+ },
92
+ calling: {
93
+ license: workspace.callingLicense || 'Cisco Webex Calling Professional Workspace',
94
+ sipAddress,
95
+ directoryNumber: directoryNumber || 'Not assigned',
96
+ routePartition: device.associatedDNs?.[0]?.routePartitionName || 'Not set',
97
+ callingSearchSpace: device.callingSearchSpaceName || 'Not set',
98
+ securityProfile: device.securityProfile || 'Not set',
99
+ },
100
+ schedulingConfigured: false,
101
+ plannedMaintenanceEnabled: false,
102
+ notes: null,
103
+ device: this.buildCucmDeviceDetails(workspaceRes),
104
+ };
105
+ }
106
+ buildCucmDeviceDetails(workspaceRes) {
107
+ const device = workspaceRes.device;
108
+ const isRegistered = (device.deviceRegStatus || '').toLowerCase() === 'registered';
109
+ return {
110
+ model: device.deviceType || 'Unknown device',
111
+ registrationStatus: device.deviceRegStatus || 'Not Registered',
112
+ mac: workspaceRes.workspaceDevices?.[0]?.mac || 'N/A',
113
+ lineCount: workspaceRes.lines?.length ?? null,
114
+ hostIpAddress: device.ipAddress || 'N/A',
115
+ remoteIpAddress: 'N/A',
116
+ managedBy: 'Cisco',
117
+ softwareChannel: 'Unknown',
118
+ softwareVersion: device.firmwareVersion || 'N/A',
119
+ lines: (workspaceRes.lines || []).map(line => ({
120
+ name: line.alertingName || line.description || '',
121
+ number: line.directoryNumber?.directoryNumber || 'NA',
122
+ registered: isRegistered,
123
+ })),
124
+ };
125
+ }
126
+ buildUrl(template, params) {
127
+ return Object.keys(params).reduce((url, key) => url.replace(`:${key}`, params[key]), template);
128
+ }
129
+ buildIssues(typeLabel, capacity) {
130
+ const timestamp = this.formatTimestamp(new Date());
131
+ return [
132
+ !typeLabel || typeLabel === 'No type' || typeLabel.toLowerCase() === 'notset' ? {
133
+ id: 'type',
134
+ message: 'Workspace type not set',
135
+ timestamp,
136
+ actionLabel: 'Assign type',
137
+ description: 'Adding a type specifies what the workspace is used for.',
138
+ suggestedAction: 'Set a type for this workspace.',
139
+ } : null,
140
+ capacity == null ? {
141
+ id: 'capacity',
142
+ message: 'Workspace capacity not set',
143
+ timestamp,
144
+ actionLabel: 'Set capacity',
145
+ description: 'Adding a capacity specifies how many people can use this workspace.',
146
+ suggestedAction: 'Set a capacity for this workspace.',
147
+ } : null,
148
+ ].filter((issue) => issue !== null);
149
+ }
150
+ formatTimestamp(date) {
151
+ return date.toLocaleString('en-US', {
152
+ year: '2-digit',
153
+ month: 'numeric',
154
+ day: 'numeric',
155
+ hour: 'numeric',
156
+ minute: '2-digit',
157
+ hour12: true,
158
+ });
159
+ }
160
+ }
161
+ WorkspaceDetailService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDetailService, deps: [{ token: i1.APIService }, { token: i2.ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
162
+ WorkspaceDetailService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDetailService, providedIn: 'root' });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDetailService, decorators: [{
164
+ type: Injectable,
165
+ args: [{
166
+ providedIn: 'root'
167
+ }]
168
+ }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWRldGFpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3NlcnZpY2VzL3dvcmtzcGFjZS1kZXRhaWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQW1CdkMsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3RDLENBQUM7SUFFTCxjQUFjLENBQ1osU0FBb0IsRUFDcEIsY0FBdUMsRUFDdkMsVUFBMkI7UUFFM0IsSUFBSSxjQUFjLEtBQUssT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQzVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyRTtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQTJCLEVBQUUsV0FBbUI7UUFDdEUsTUFBTSxNQUFNLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRS9ELE9BQU8sUUFBUSxDQUFDO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxD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QUMsS0FBSyxFQUFzQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQ2xDLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7WUFDZCxJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBaE1VLHNCQUFzQjt3SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi9hcGktd2ViZXguc2VydmljZSc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDdWNtU2l0ZVJlc3BvbnNlLFxyXG4gIEN1Y21Xb3Jrc3BhY2VEZXRhaWxzUmVzcG9uc2UsXHJcbiAgV2ViZXhDYWxsZXJJZFJlc3BvbnNlLFxyXG4gIFdlYmV4TnVtYmVyc1Jlc3BvbnNlLFxyXG4gIFdlYmV4V29ya3NwYWNlRGV0YWlsc1Jlc3BvbnNlLFxyXG4gIFdvcmtzcGFjZSxcclxuICBXb3Jrc3BhY2VDb25uZWN0aW9uVHlwZSxcclxuICBXb3Jrc3BhY2VEZXRhaWxzLFxyXG4gIFdvcmtzcGFjZURldmljZURldGFpbHMsXHJcbiAgV29ya3NwYWNlSXNzdWUsXHJcbn0gZnJvbSAnLi4vdHlwZXMvd29ya3NwYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZURldGFpbFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlXZWJleFNlcnZpY2U6IEFwaVdlYmV4U2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICBnZXRCeVdvcmtzcGFjZShcclxuICAgIHdvcmtzcGFjZTogV29ya3NwYWNlLFxyXG4gICAgY29ubmVjdGlvblR5cGU6IFdvcmtzcGFjZUNvbm5lY3Rpb25UeXBlLFxyXG4gICAgY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLFxyXG4gICk6IE9ic2VydmFibGU8V29ya3NwYWNlRGV0YWlscz4ge1xyXG4gICAgaWYgKGNvbm5lY3Rpb25UeXBlID09PSAnd2ViZXgnICYmIHdvcmtzcGFjZS5kZXZpY2Uud2ViZXhVVUlEKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFdlYmV4RGV0YWlscyhjdXN0b21lcklkLCB3b3Jrc3BhY2UuZGV2aWNlLndlYmV4VVVJRCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDdWNtRGV0YWlscyh3b3Jrc3BhY2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRXZWJleERldGFpbHMoY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLCB3b3Jrc3BhY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXb3Jrc3BhY2VEZXRhaWxzPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IGN1c3RvbWVySWQ6IFN0cmluZyhjdXN0b21lcklkKSwgd29ya3NwYWNlSWQgfTtcclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgICB0aGlzLmFwaVdlYmV4U2VydmljZS5mZXRjaCh0aGlzLmJ1aWxkVXJsKEFQSS5ERVRBSUxTLldFQkVYLldPUktTUEFDRSwgcGFyYW1zKSksXHJcbiAgICAgIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmZldGNoKHRoaXMuYnVpbGRVcmwoQVBJLkRFVEFJTFMuV0VCRVguTlVNQkVSUywgcGFyYW1zKSksXHJcbiAgICAgIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmZldGNoKHRoaXMuYnVpbGRVcmwoQVBJLkRFVEFJTFMuV0VCRVguQ0FMTEVSSUQsIHBhcmFtcykpLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKChbd29ya3NwYWNlUmVzLCBudW1iZXJzUmVzLCBjYWxsZXJJZFJlc106IFtcclxuICAgICAgICBXZWJleFdvcmtzcGFjZURldGFpbHNSZXNwb25zZSxcclxuICAgICAgICBXZWJleE51bWJlcnNSZXNwb25zZSxcclxuICAgICAgICBXZWJleENhbGxlcklkUmVzcG9uc2UsXHJcbiAgICAgIF0pID0+IHRoaXMudG9XZWJleERldGFpbHMod29ya3NwYWNlUmVzLCBudW1iZXJzUmVzLCBjYWxsZXJJZFJlcykpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9XZWJleERldGFpbHMoXHJcbiAgICB3b3Jrc3BhY2VSZXM6IFdlYmV4V29ya3NwYWNlRGV0YWlsc1Jlc3BvbnNlLFxyXG4gICAgbnVtYmVyc1JlczogV2ViZXhOdW1iZXJzUmVzcG9uc2UsXHJcbiAgICBjYWxsZXJJZFJlczogV2ViZXhDYWxsZXJJZFJlc3BvbnNlLFxyXG4gICk6IFdvcmtzcGFjZURldGFpbHMge1xyXG4gICAgY29uc3QgcHJpbWFyeU51bWJlciA9IG51bWJlcnNSZXMucGhvbmVOdW1iZXJzPy5maW5kKG51bWJlciA9PiBudW1iZXIucHJpbWFyeSkgPz8gbnVtYmVyc1Jlcy5waG9uZU51bWJlcnM/LlswXTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpc3N1ZXM6IHRoaXMuYnVpbGRJc3N1ZXMod29ya3NwYWNlUmVzLnR5cGUsIHdvcmtzcGFjZVJlcy5jYXBhY2l0eSksXHJcbiAgICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgY291bnRyeTogbnVtYmVyc1Jlcy5sb2NhdGlvbj8ubmFtZSB8fCB3b3Jrc3BhY2VSZXMubG9jYXRpb25OYW1lIHx8ICdOb3Qgc2V0JyxcclxuICAgICAgICBhZGRyZXNzOiBudW1iZXJzUmVzLmxvY2F0aW9uPy5hZGRyZXNzIHx8ICdBZGRyZXNzIG5vdCBhdmFpbGFibGUnLFxyXG4gICAgICB9LFxyXG4gICAgICBjYWxsaW5nOiB7XHJcbiAgICAgICAgbGljZW5zZTogd29ya3NwYWNlUmVzLmxpY2Vuc2VOYW1lIHx8ICdOb3Qgc2V0JyxcclxuICAgICAgICBzaXBBZGRyZXNzOiB3b3Jrc3BhY2VSZXMuc2lwQWRkcmVzcyB8fCAnTm90IGFzc2lnbmVkJyxcclxuICAgICAgICBkaXJlY3RvcnlOdW1iZXI6IHByaW1hcnlOdW1iZXI/LmV4dGVybmFsIHx8IHByaW1hcnlOdW1iZXI/LmV4dGVuc2lvbiB8fCAnTm90IGFzc2lnbmVkJyxcclxuICAgICAgICBleHRlbnNpb246IHByaW1hcnlOdW1iZXI/LmV4dGVuc2lvbiB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgcm91dGVQYXJ0aXRpb246ICcnLFxyXG4gICAgICAgIGNhbGxpbmdTZWFyY2hTcGFjZTogJycsXHJcbiAgICAgICAgc2VjdXJpdHlQcm9maWxlOiAnJyxcclxuICAgICAgICBleHRlcm5hbENhbGxlcklkTmFtZTogY2FsbGVySWRSZXMubG9jYXRpb25FeHRlcm5hbENhbGxlcklkTmFtZSB8fCBjYWxsZXJJZFJlcy5jdXN0b21FeHRlcm5hbENhbGxlcklkTmFtZSB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgZXh0ZXJuYWxDYWxsZXJJZE51bWJlcjogY2FsbGVySWRSZXMubG9jYXRpb25OdW1iZXIgfHwgY2FsbGVySWRSZXMuY3VzdG9tTnVtYmVyIHx8IGNhbGxlcklkUmVzLmRpcmVjdE51bWJlciB8fCB1bmRlZmluZWQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHNjaGVkdWxpbmdDb25maWd1cmVkOiBmYWxzZSxcclxuICAgICAgcGxhbm5lZE1haW50ZW5hbmNlRW5hYmxlZDogZmFsc2UsXHJcbiAgICAgIG5vdGVzOiBudWxsLFxyXG4gICAgICBjYXBhY2l0eTogd29ya3NwYWNlUmVzLmNhcGFjaXR5LFxyXG4gICAgICBkZXZpY2U6IHRoaXMuYnVpbGRXZWJleERldmljZURldGFpbHMod29ya3NwYWNlUmVzLCBudW1iZXJzUmVzKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkV2ViZXhEZXZpY2VEZXRhaWxzKFxyXG4gICAgd29ya3NwYWNlUmVzOiBXZWJleFdvcmtzcGFjZURldGFpbHNSZXNwb25zZSxcclxuICAgIG51bWJlcnNSZXM6IFdlYmV4TnVtYmVyc1Jlc3BvbnNlLFxyXG4gICk6IFdvcmtzcGFjZURldmljZURldGFpbHMge1xyXG4gICAgY29uc3QgZGV2aWNlID0gd29ya3NwYWNlUmVzLmRldmljZXM/LlswXTtcclxuICAgIGNvbnN0IHByaW1hcnlOdW1iZXIgPSBudW1iZXJzUmVzLnBob25lTnVtYmVycz8uZmluZChudW1iZXIgPT4gbnVtYmVyLnByaW1hcnkpID8/IG51bWJlcnNSZXMucGhvbmVOdW1iZXJzPy5bMF07XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbW9kZWw6IGRldmljZT8ubW9kZWwgfHwgJ1Vua25vd24gZGV2aWNlJyxcclxuICAgICAgcmVnaXN0cmF0aW9uU3RhdHVzOiBkZXZpY2U/LnJlZ2lzdGVyZWQgPyAnUmVnaXN0ZXJlZCcgOiAnTm90IFJlZ2lzdGVyZWQnLFxyXG4gICAgICBtYWM6IGRldmljZT8ubWFjIHx8ICdOL0EnLFxyXG4gICAgICBsaW5lQ291bnQ6IG51bWJlcnNSZXMucGhvbmVOdW1iZXJzPy5sZW5ndGggPz8gbnVsbCxcclxuICAgICAgaG9zdElwQWRkcmVzczogJ04vQScsXHJcbiAgICAgIHJlbW90ZUlwQWRkcmVzczogJ04vQScsXHJcbiAgICAgIG1hbmFnZWRCeTogJ0Npc2NvJyxcclxuICAgICAgc29mdHdhcmVDaGFubmVsOiAnVW5rbm93bicsXHJcbiAgICAgIHNvZnR3YXJlVmVyc2lvbjogJ04vQScsXHJcbiAgICAgIGxpbmVzOiBwcmltYXJ5TnVtYmVyID8gW3tcclxuICAgICAgICBuYW1lOiB3b3Jrc3BhY2VSZXMud29ya3NwYWNlTmFtZSB8fCAnJyxcclxuICAgICAgICBudW1iZXI6IHByaW1hcnlOdW1iZXIuZXh0ZXJuYWwgfHwgcHJpbWFyeU51bWJlci5leHRlbnNpb24gfHwgJ05BJyxcclxuICAgICAgICByZWdpc3RlcmVkOiAhIWRldmljZT8ucmVnaXN0ZXJlZCxcclxuICAgICAgfV0gOiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEN1Y21EZXRhaWxzKHdvcmtzcGFjZTogV29ya3NwYWNlKTogT2JzZXJ2YWJsZTxXb3Jrc3BhY2VEZXRhaWxzPiB7XHJcbiAgICBjb25zdCBzaXRlSWQgPSBTdHJpbmcod29ya3NwYWNlLnNpdGVJZCk7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IHNpdGVJZCwgd29ya3NwYWNlSWQ6IHdvcmtzcGFjZS5jdWNtRGV2aWNlTmFtZSA/PyB3b3Jrc3BhY2UuZGV2aWNlLm5hbWUgfTtcclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgICB0aGlzLmFwaVNlcnZpY2UuZmV0Y2godGhpcy5idWlsZFVybChBUEkuREVUQUlMUy5DVUNNLldPUktTUEFDRSwgcGFyYW1zKSksXHJcbiAgICAgIHRoaXMuYXBpU2VydmljZS5mZXRjaCh0aGlzLmJ1aWxkVXJsKEFQSS5ERVRBSUxTLkNVQ00uU0lURSwgeyBzaXRlSWQgfSkpLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKChbd29ya3NwYWNlUmVzLCBzaXRlUmVzXTogW0N1Y21Xb3Jrc3BhY2VEZXRhaWxzUmVzcG9uc2UsIEN1Y21TaXRlUmVzcG9uc2VdKSA9PlxyXG4gICAgICAgIHRoaXMudG9DdWNtRGV0YWlscyh3b3Jrc3BhY2UsIHdvcmtzcGFjZVJlcywgc2l0ZVJlcykpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9DdWNtRGV0YWlscyhcclxuICAgIHdvcmtzcGFjZTogV29ya3NwYWNlLFxyXG4gICAgd29ya3NwYWNlUmVzOiBDdWNtV29ya3NwYWNlRGV0YWlsc1Jlc3BvbnNlLFxyXG4gICAgc2l0ZVJlczogQ3VjbVNpdGVSZXNwb25zZSxcclxuICApOiBXb3Jrc3BhY2VEZXRhaWxzIHtcclxuICAgIGNvbnN0IGRldmljZSA9IHdvcmtzcGFjZVJlcy5kZXZpY2U7XHJcbiAgICBjb25zdCBkaXJlY3RvcnlOdW1iZXIgPSBkZXZpY2UuYXNzb2NpYXRlZEROcz8uWzBdPy5kaXJlY3RvcnlOdW1iZXIgPz8gJyc7XHJcbiAgICBjb25zdCBzaXBBZGRyZXNzID0gYCR7KGRldmljZS5uYW1lIHx8IHdvcmtzcGFjZS5kaXNwbGF5TmFtZSB8fCAnd29ya3NwYWNlJykudG9Mb3dlckNhc2UoKX1AdHVraWRldi5yb29tcy53ZWJleC5jb21gO1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IFtzaXRlUmVzLmFkZHJlc3MyLCBzaXRlUmVzLmFkZHJlc3MzXS5maWx0ZXIoQm9vbGVhbikuam9pbignLCAnKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpc3N1ZXM6IHRoaXMuYnVpbGRJc3N1ZXMod29ya3NwYWNlLnR5cGVMYWJlbCwgd29ya3NwYWNlLmNhcGFjaXR5KSxcclxuICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICBjb3VudHJ5OiBzaXRlUmVzLmNvdW50cnkgfHwgJ05vdCBzZXQnLFxyXG4gICAgICAgIGFkZHJlc3M6IGFkZHJlc3MgfHwgJ0FkZHJlc3Mgbm90IGF2YWlsYWJsZScsXHJcbiAgICAgIH0sXHJcbiAgICAgIGNhbGxpbmc6IHtcclxuICAgICAgICBsaWNlbnNlOiB3b3Jrc3BhY2UuY2FsbGluZ0xpY2Vuc2UgfHwgJ0Npc2NvIFdlYmV4IENhbGxpbmcgUHJvZmVzc2lvbmFsIFdvcmtzcGFjZScsXHJcbiAgICAgICAgc2lwQWRkcmVzcyxcclxuICAgICAgICBkaXJlY3RvcnlOdW1iZXI6IGRpcmVjdG9yeU51bWJlciB8fCAnTm90IGFzc2lnbmVkJyxcclxuICAgICAgICByb3V0ZVBhcnRpdGlvbjogZGV2aWNlLmFzc29jaWF0ZWRETnM/LlswXT8ucm91dGVQYXJ0aXRpb25OYW1lIHx8ICdOb3Qgc2V0JyxcclxuICAgICAgICBjYWxsaW5nU2VhcmNoU3BhY2U6IGRldmljZS5jYWxsaW5nU2VhcmNoU3BhY2VOYW1lIHx8ICdOb3Qgc2V0JyxcclxuICAgICAgICBzZWN1cml0eVByb2ZpbGU6IGRldmljZS5zZWN1cml0eVByb2ZpbGUgfHwgJ05vdCBzZXQnLFxyXG4gICAgICB9LFxyXG4gICAgICBzY2hlZHVsaW5nQ29uZmlndXJlZDogZmFsc2UsXHJcbiAgICAgIHBsYW5uZWRNYWludGVuYW5jZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICBub3RlczogbnVsbCxcclxuICAgICAgZGV2aWNlOiB0aGlzLmJ1aWxkQ3VjbURldmljZURldGFpbHMod29ya3NwYWNlUmVzKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ3VjbURldmljZURldGFpbHMod29ya3NwYWNlUmVzOiBDdWNtV29ya3NwYWNlRGV0YWlsc1Jlc3BvbnNlKTogV29ya3NwYWNlRGV2aWNlRGV0YWlscyB7XHJcbiAgICBjb25zdCBkZXZpY2UgPSB3b3Jrc3BhY2VSZXMuZGV2aWNlO1xyXG4gICAgY29uc3QgaXNSZWdpc3RlcmVkID0gKGRldmljZS5kZXZpY2VSZWdTdGF0dXMgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdyZWdpc3RlcmVkJztcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb2RlbDogZGV2aWNlLmRldmljZVR5cGUgfHwgJ1Vua25vd24gZGV2aWNlJyxcclxuICAgICAgcmVnaXN0cmF0aW9uU3RhdHVzOiBkZXZpY2UuZGV2aWNlUmVnU3RhdHVzIHx8ICdOb3QgUmVnaXN0ZXJlZCcsXHJcbiAgICAgIG1hYzogd29ya3NwYWNlUmVzLndvcmtzcGFjZURldmljZXM/LlswXT8ubWFjIHx8ICdOL0EnLFxyXG4gICAgICBsaW5lQ291bnQ6IHdvcmtzcGFjZVJlcy5saW5lcz8ubGVuZ3RoID8/IG51bGwsXHJcbiAgICAgIGhvc3RJcEFkZHJlc3M6IGRldmljZS5pcEFkZHJlc3MgfHwgJ04vQScsXHJcbiAgICAgIHJlbW90ZUlwQWRkcmVzczogJ04vQScsXHJcbiAgICAgIG1hbmFnZWRCeTogJ0Npc2NvJyxcclxuICAgICAgc29mdHdhcmVDaGFubmVsOiAnVW5rbm93bicsXHJcbiAgICAgIHNvZnR3YXJlVmVyc2lvbjogZGV2aWNlLmZpcm13YXJlVmVyc2lvbiB8fCAnTi9BJyxcclxuICAgICAgbGluZXM6ICh3b3Jrc3BhY2VSZXMubGluZXMgfHwgW10pLm1hcChsaW5lID0+ICh7XHJcbiAgICAgICAgbmFtZTogbGluZS5hbGVydGluZ05hbWUgfHwgbGluZS5kZXNjcmlwdGlvbiB8fCAnJyxcclxuICAgICAgICBudW1iZXI6IGxpbmUuZGlyZWN0b3J5TnVtYmVyPy5kaXJlY3RvcnlOdW1iZXIgfHwgJ05BJyxcclxuICAgICAgICByZWdpc3RlcmVkOiBpc1JlZ2lzdGVyZWQsXHJcbiAgICAgIH0pKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVXJsKHRlbXBsYXRlOiBzdHJpbmcsIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKS5yZWR1Y2UoKHVybCwga2V5KSA9PiB1cmwucmVwbGFjZShgOiR7a2V5fWAsIHBhcmFtc1trZXldKSwgdGVtcGxhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZElzc3Vlcyh0eXBlTGFiZWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIGNhcGFjaXR5OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogV29ya3NwYWNlSXNzdWVbXSB7XHJcbiAgICBjb25zdCB0aW1lc3RhbXAgPSB0aGlzLmZvcm1hdFRpbWVzdGFtcChuZXcgRGF0ZSgpKTtcclxuXHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAhdHlwZUxhYmVsIHx8IHR5cGVMYWJlbCA9PT0gJ05vIHR5cGUnIHx8IHR5cGVMYWJlbC50b0xvd2VyQ2FzZSgpID09PSAnbm90c2V0JyA/IHtcclxuICAgICAgICBpZDogJ3R5cGUnLFxyXG4gICAgICAgIG1lc3NhZ2U6ICdXb3Jrc3BhY2UgdHlwZSBub3Qgc2V0JyxcclxuICAgICAgICB0aW1lc3RhbXAsXHJcbiAgICAgICAgYWN0aW9uTGFiZWw6ICdBc3NpZ24gdHlwZScsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdBZGRpbmcgYSB0eXBlIHNwZWNpZmllcyB3aGF0IHRoZSB3b3Jrc3BhY2UgaXMgdXNlZCBmb3IuJyxcclxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb246ICdTZXQgYSB0eXBlIGZvciB0aGlzIHdvcmtzcGFjZS4nLFxyXG4gICAgICB9IDogbnVsbCxcclxuICAgICAgY2FwYWNpdHkgPT0gbnVsbCA/IHtcclxuICAgICAgICBpZDogJ2NhcGFjaXR5JyxcclxuICAgICAgICBtZXNzYWdlOiAnV29ya3NwYWNlIGNhcGFjaXR5IG5vdCBzZXQnLFxyXG4gICAgICAgIHRpbWVzdGFtcCxcclxuICAgICAgICBhY3Rpb25MYWJlbDogJ1NldCBjYXBhY2l0eScsXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICdBZGRpbmcgYSBjYXBhY2l0eSBzcGVjaWZpZXMgaG93IG1hbnkgcGVvcGxlIGNhbiB1c2UgdGhpcyB3b3Jrc3BhY2UuJyxcclxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb246ICdTZXQgYSBjYXBhY2l0eSBmb3IgdGhpcyB3b3Jrc3BhY2UuJyxcclxuICAgICAgfSA6IG51bGwsXHJcbiAgICBdLmZpbHRlcigoaXNzdWUpOiBpc3N1ZSBpcyBOb25OdWxsYWJsZTx0eXBlb2YgaXNzdWU+ID0+IGlzc3VlICE9PSBudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VGltZXN0YW1wKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xyXG4gICAgICB5ZWFyOiAnMi1kaWdpdCcsXHJcbiAgICAgIG1vbnRoOiAnbnVtZXJpYycsXHJcbiAgICAgIGRheTogJ251bWVyaWMnLFxyXG4gICAgICBob3VyOiAnbnVtZXJpYycsXHJcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxyXG4gICAgICBob3VyMTI6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,59 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { API } from '../app.constants';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./api-webex.service";
5
+ export class WorkspacesMigrationService {
6
+ constructor(apiWebexService) {
7
+ this.apiWebexService = apiWebexService;
8
+ }
9
+ moveToMT(customerId, device) {
10
+ return this.apiWebexService.post(API.MIGRATION.MOVE, this.getMoveBody(customerId, device));
11
+ }
12
+ getMigrationFormStatus(customerId, formId) {
13
+ const url = API.MIGRATION.MIGRATION_FORM
14
+ .replace(':customerId', String(customerId))
15
+ .replace(':formId', String(formId));
16
+ return this.apiWebexService.fetch(url);
17
+ }
18
+ getMigratedMigrationFormEntities(customerId, webexUUID, feature = 'ORPHANED_DEVICE') {
19
+ const url = API.MIGRATION.MIGRATION_FORM_ENTITIES_MIGRATED.replace(':customerId', String(customerId));
20
+ return this.apiWebexService.fetch(url, { webexUUID, feature });
21
+ }
22
+ triggerFirmwareUpgrade(customerId, migrationFormId, deviceMap) {
23
+ const url = API.MIGRATION.TRIGGER_FIRMWARE_MIGRATION
24
+ .replace(':migrationType', 'WEBEX')
25
+ .replace(':customerId', String(customerId))
26
+ .replace(':migrationFormId', String(migrationFormId));
27
+ return this.apiWebexService.post(url, deviceMap);
28
+ }
29
+ removeUcmLicense(customerId, migrationFormId, controlHubType = 'WEBEX') {
30
+ const url = API.MIGRATION.REMOVE_UCM_LICENSE
31
+ .replace(':controlHubType', controlHubType)
32
+ .replace(':customerId', String(customerId))
33
+ .replace(':migrationFormId', String(migrationFormId));
34
+ return this.apiWebexService.post(url, {});
35
+ }
36
+ revertMigration(customerId, personId) {
37
+ const url = API.MIGRATION.WEBEX_REVERT
38
+ .replace(':customerId', String(customerId))
39
+ .replace(':personId', personId);
40
+ return this.apiWebexService.post(url, {});
41
+ }
42
+ getMoveBody(customerId, device) {
43
+ return {
44
+ customerId,
45
+ entities: {
46
+ ORPHANED_DEVICE: [{ cucmId: device.cucmId, entityId: device.name }],
47
+ },
48
+ };
49
+ }
50
+ }
51
+ WorkspacesMigrationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesMigrationService, deps: [{ token: i1.ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
52
+ WorkspacesMigrationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesMigrationService, providedIn: 'root' });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesMigrationService, decorators: [{
54
+ type: Injectable,
55
+ args: [{
56
+ providedIn: 'root',
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i1.ApiWebexService }]; } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy1taWdyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy93b3Jrc3BhY2VzL3NyYy9zZXJ2aWNlcy93b3Jrc3BhY2VzLW1pZ3JhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFTdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBSSxDQUFDO0lBRXpELFFBQVEsQ0FBQyxVQUEyQixFQUFFLE1BQTZCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBMkIsRUFBRSxNQUFjO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYzthQUNyQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGdDQUFnQyxDQUM5QixVQUEyQixFQUMzQixTQUFpQixFQUNqQixPQUFPLEdBQUcsaUJBQWlCO1FBRTNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsVUFBMkIsRUFDM0IsZUFBdUIsRUFDdkIsU0FBNEI7UUFFNUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQywwQkFBMEI7YUFDakQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQzthQUNsQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGdCQUFnQixDQUNkLFVBQTJCLEVBQzNCLGVBQXVCLEVBQ3ZCLGNBQWMsR0FBRyxPQUFPO1FBRXhCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCO2FBQ3pDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUM7YUFDMUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBMkIsRUFBRSxRQUFnQjtRQUMzRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVk7YUFDbkMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQTJCLEVBQUUsTUFBNkI7UUFDNUUsT0FBTztZQUNMLFVBQVU7WUFDVixRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BFO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3dIQTdEVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZURldmljZVJlY29yZCB9IGZyb20gJy4uL3R5cGVzL3dvcmtzcGFjZSc7XHJcbmltcG9ydCB7IEFwaVdlYmV4U2VydmljZSB9IGZyb20gJy4vYXBpLXdlYmV4LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlybXdhcmVEZXZpY2VNYXAgPSBSZWNvcmQ8bnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZXNNaWdyYXRpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbW92ZVRvTVQoY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLCBkZXZpY2U6IFdvcmtzcGFjZURldmljZVJlY29yZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTUlHUkFUSU9OLk1PVkUsIHRoaXMuZ2V0TW92ZUJvZHkoY3VzdG9tZXJJZCwgZGV2aWNlKSk7XHJcbiAgfVxyXG5cclxuICBnZXRNaWdyYXRpb25Gb3JtU3RhdHVzKGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlciwgZm9ybUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5NSUdSQVRJT05fRk9STVxyXG4gICAgICAucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6Zm9ybUlkJywgU3RyaW5nKGZvcm1JZCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmZldGNoKHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRNaWdyYXRlZE1pZ3JhdGlvbkZvcm1FbnRpdGllcyhcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcixcclxuICAgIHdlYmV4VVVJRDogc3RyaW5nLFxyXG4gICAgZmVhdHVyZSA9ICdPUlBIQU5FRF9ERVZJQ0UnLFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSBBUEkuTUlHUkFUSU9OLk1JR1JBVElPTl9GT1JNX0VOVElUSUVTX01JR1JBVEVELnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5mZXRjaCh1cmwsIHsgd2ViZXhVVUlELCBmZWF0dXJlIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckZpcm13YXJlVXBncmFkZShcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcixcclxuICAgIG1pZ3JhdGlvbkZvcm1JZDogbnVtYmVyLFxyXG4gICAgZGV2aWNlTWFwOiBGaXJtd2FyZURldmljZU1hcCxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5UUklHR0VSX0ZJUk1XQVJFX01JR1JBVElPTlxyXG4gICAgICAucmVwbGFjZSgnOm1pZ3JhdGlvblR5cGUnLCAnV0VCRVgnKVxyXG4gICAgICAucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6bWlncmF0aW9uRm9ybUlkJywgU3RyaW5nKG1pZ3JhdGlvbkZvcm1JZCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QodXJsLCBkZXZpY2VNYXApO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlVWNtTGljZW5zZShcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcixcclxuICAgIG1pZ3JhdGlvbkZvcm1JZDogbnVtYmVyLFxyXG4gICAgY29udHJvbEh1YlR5cGUgPSAnV0VCRVgnLFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSBBUEkuTUlHUkFUSU9OLlJFTU9WRV9VQ01fTElDRU5TRVxyXG4gICAgICAucmVwbGFjZSgnOmNvbnRyb2xIdWJUeXBlJywgY29udHJvbEh1YlR5cGUpXHJcbiAgICAgIC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSlcclxuICAgICAgLnJlcGxhY2UoJzptaWdyYXRpb25Gb3JtSWQnLCBTdHJpbmcobWlncmF0aW9uRm9ybUlkKSk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdCh1cmwsIHt9KTtcclxuICB9XHJcblxyXG4gIHJldmVydE1pZ3JhdGlvbihjdXN0b21lcklkOiBzdHJpbmcgfCBudW1iZXIsIHBlcnNvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5XRUJFWF9SRVZFUlRcclxuICAgICAgLnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKVxyXG4gICAgICAucmVwbGFjZSgnOnBlcnNvbklkJywgcGVyc29uSWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QodXJsLCB7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vdmVCb2R5KGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlciwgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3VzdG9tZXJJZCxcclxuICAgICAgZW50aXRpZXM6IHtcclxuICAgICAgICBPUlBIQU5FRF9ERVZJQ0U6IFt7IGN1Y21JZDogZGV2aWNlLmN1Y21JZCwgZW50aXR5SWQ6IGRldmljZS5uYW1lIH1dLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,152 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { forkJoin } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { API } from '../app.constants';
5
+ import { withoutSep } from '../utils/workspace-name';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./api.service";
8
+ function parseResponse(response) {
9
+ return typeof response === 'string' ? JSON.parse(response) : response;
10
+ }
11
+ function toStatus(provisioningStatus) {
12
+ if (!provisioningStatus) {
13
+ return 'unavailable';
14
+ }
15
+ return provisioningStatus.toLowerCase() === 'active' ? 'active' : 'inactive';
16
+ }
17
+ function toWorkspaceDevices(item, index) {
18
+ if (item.workspaceDevices?.length) {
19
+ return item.workspaceDevices.map(workspaceDevice => ({
20
+ id: workspaceDevice.deviceId,
21
+ kind: 'device',
22
+ label: workspaceDevice.model || workspaceDevice.mac,
23
+ model: workspaceDevice.model,
24
+ mac: workspaceDevice.mac,
25
+ }));
26
+ }
27
+ const device = item.device;
28
+ if (!device) {
29
+ return [];
30
+ }
31
+ const model = device.deviceType || device.userDeviceType || undefined;
32
+ return [{
33
+ id: device.pkid || device.webexUUID || device.name || `device-${index}`,
34
+ kind: 'device',
35
+ label: model || device.name || 'Unnamed device',
36
+ model,
37
+ mac: /^SEP/i.test(device.name || '') ? device.name.slice(3) : undefined,
38
+ }];
39
+ }
40
+ function toWorkspace(item, index, isCucm) {
41
+ const device = item.device;
42
+ const firstDirectoryNumber = device.associatedDNs?.[0]?.directoryNumber ?? '';
43
+ return {
44
+ id: device.pkid || item.workspaceDevices?.[0]?.deviceId || device.name || `workspace-${index}`,
45
+ displayName: device.newName || device.name || 'Unnamed device',
46
+ typeLabel: device.userDeviceType || 'No type',
47
+ capacity: null,
48
+ location: item.site?.name || device.siteName || device.location || '',
49
+ siteId: item.site?.id ?? null,
50
+ devices: toWorkspaceDevices(item, index),
51
+ scheduling: 'Not set',
52
+ callingLicense: firstDirectoryNumber,
53
+ provisioningType: 'On-premises',
54
+ status: toStatus(device.provisioningStatus),
55
+ statusLabel: device.provisioningStatus || 'Status unavailable',
56
+ device,
57
+ isHybrid: false,
58
+ cucmDeviceName: isCucm ? (device.name || null) : null,
59
+ };
60
+ }
61
+ function mergeDevices(a, b) {
62
+ return {
63
+ ...a,
64
+ ...b,
65
+ cucmId: b.cucmId ?? a.cucmId,
66
+ webexUUID: b.webexUUID ?? a.webexUUID,
67
+ };
68
+ }
69
+ function toMacKey(value) {
70
+ return value ? withoutSep(value).replace(/[^0-9A-F]/g, '') : '';
71
+ }
72
+ function mergeCucmAndWebexWorkspaces(cucmWorkspaces, webexItems, webexWorkspaces) {
73
+ const result = [...cucmWorkspaces];
74
+ const cucmIndexByMac = new Map();
75
+ cucmWorkspaces.forEach((workspace, index) => {
76
+ const key = toMacKey(workspace.device.name);
77
+ if (key && !cucmIndexByMac.has(key)) {
78
+ cucmIndexByMac.set(key, index);
79
+ }
80
+ });
81
+ webexWorkspaces.forEach((webexWorkspace, webexIndex) => {
82
+ const matchedMac = (webexItems[webexIndex].workspaceDevices || [])
83
+ .map(workspaceDevice => toMacKey(workspaceDevice.mac))
84
+ .find(key => key && cucmIndexByMac.has(key));
85
+ if (!matchedMac) {
86
+ result.push(webexWorkspace);
87
+ return;
88
+ }
89
+ const cucmIndex = cucmIndexByMac.get(matchedMac);
90
+ cucmIndexByMac.delete(matchedMac);
91
+ const cucmWorkspace = result[cucmIndex];
92
+ result[cucmIndex] = {
93
+ ...cucmWorkspace,
94
+ ...webexWorkspace,
95
+ displayName: cucmWorkspace.displayName,
96
+ location: webexWorkspace.location || cucmWorkspace.location,
97
+ siteId: webexWorkspace.siteId ?? cucmWorkspace.siteId,
98
+ device: {
99
+ ...mergeDevices(cucmWorkspace.device, webexWorkspace.device),
100
+ name: cucmWorkspace.device.name,
101
+ newName: cucmWorkspace.device.newName,
102
+ },
103
+ isHybrid: true,
104
+ cucmDeviceName: cucmWorkspace.cucmDeviceName,
105
+ };
106
+ });
107
+ return result;
108
+ }
109
+ const FETCH_ALL_SIZE = 9999;
110
+ export class WorkspacesService {
111
+ constructor(apiService) {
112
+ this.apiService = apiService;
113
+ }
114
+ fetchWorkspaces(customerId) {
115
+ const baseParams = {
116
+ type: 'ORPHAN_DEVICE',
117
+ customerid: customerId.toString(),
118
+ size: FETCH_ALL_SIZE.toString(),
119
+ page: '0',
120
+ };
121
+ const cucm$ = this.apiService.fetch(API.WORKSPACES.GET_ALL, {
122
+ ...baseParams,
123
+ 'device-name': 'SEP',
124
+ provisionType: 'CUCM',
125
+ });
126
+ const webex$ = this.apiService.fetch(API.WORKSPACES.GET_ALL, {
127
+ ...baseParams,
128
+ provisionType: 'WEBEX',
129
+ });
130
+ return forkJoin([cucm$, webex$]).pipe(map(([cucmResponse, webexResponse]) => {
131
+ const cucmParsed = parseResponse(cucmResponse);
132
+ const webexParsed = parseResponse(webexResponse);
133
+ const webexItems = webexParsed?.pageData || [];
134
+ const cucmWorkspaces = (cucmParsed?.pageData || []).map((item, index) => toWorkspace(item, index, true));
135
+ const webexWorkspaces = webexItems.map((item, index) => toWorkspace(item, index, false));
136
+ const workspaces = mergeCucmAndWebexWorkspaces(cucmWorkspaces, webexItems, webexWorkspaces);
137
+ return {
138
+ workspaces,
139
+ total: workspaces.length,
140
+ };
141
+ }));
142
+ }
143
+ }
144
+ WorkspacesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesService, deps: [{ token: i1.APIService }], target: i0.ɵɵFactoryTarget.Injectable });
145
+ WorkspacesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesService, providedIn: 'root' });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesService, decorators: [{
147
+ type: Injectable,
148
+ args: [{
149
+ providedIn: 'root'
150
+ }]
151
+ }], ctorParameters: function () { return [{ type: i1.APIService }]; } });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3NlcnZpY2VzL3dvcmtzcGFjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUVyRCxTQUFTLGFBQWEsQ0FBQyxRQUFhO0lBQ2xDLE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLGtCQUFpQztJQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7UUFDdkIsT0FBTyxhQUFhLENBQUM7S0FDdEI7SUFDRCxPQUFPLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDL0UsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBdUIsRUFBRSxLQUFhO0lBQ2hFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELEVBQUUsRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM1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RixPQUFPO2dCQUNMLFVBQVU7Z0JBQ1YsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNO2FBQ3pCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7K0dBckNVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2UsIFdvcmtzcGFjZURldmljZSwgV29ya3NwYWNlTGlzdEl0ZW0sIFdvcmtzcGFjZXNQYWdlLCBXb3Jrc3BhY2VzUmVzcG9uc2UsIFdvcmtzcGFjZVN0YXR1cyB9IGZyb20gJy4uL3R5cGVzL3dvcmtzcGFjZSc7XHJcbmltcG9ydCB7IHdpdGhvdXRTZXAgfSBmcm9tICcuLi91dGlscy93b3Jrc3BhY2UtbmFtZSc7XHJcblxyXG5mdW5jdGlvbiBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBhbnkge1xyXG4gIHJldHVybiB0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNwb25zZSkgOiByZXNwb25zZTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9TdGF0dXMocHJvdmlzaW9uaW5nU3RhdHVzOiBzdHJpbmcgfCBudWxsKTogV29ya3NwYWNlU3RhdHVzIHtcclxuICBpZiAoIXByb3Zpc2lvbmluZ1N0YXR1cykge1xyXG4gICAgcmV0dXJuICd1bmF2YWlsYWJsZSc7XHJcbiAgfVxyXG4gIHJldHVybiBwcm92aXNpb25pbmdTdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2FjdGl2ZScgPyAnYWN0aXZlJyA6ICdpbmFjdGl2ZSc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvV29ya3NwYWNlRGV2aWNlcyhpdGVtOiBXb3Jrc3BhY2VMaXN0SXRlbSwgaW5kZXg6IG51bWJlcik6IFdvcmtzcGFjZURldmljZVtdIHtcclxuICBpZiAoaXRlbS53b3Jrc3BhY2VEZXZpY2VzPy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBpdGVtLndvcmtzcGFjZURldmljZXMubWFwKHdvcmtzcGFjZURldmljZSA9PiAoe1xyXG4gICAgICBpZDogd29ya3NwYWNlRGV2aWNlLmRldmljZUlkLFxyXG4gICAgICBraW5kOiAnZGV2aWNlJyBhcyBjb25zdCxcclxuICAgICAgbGFiZWw6IHdvcmtzcGFjZURldmljZS5tb2RlbCB8fCB3b3Jrc3BhY2VEZXZpY2UubWFjLFxyXG4gICAgICBtb2RlbDogd29ya3NwYWNlRGV2aWNlLm1vZGVsLFxyXG4gICAgICBtYWM6IHdvcmtzcGFjZURldmljZS5tYWMsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBkZXZpY2UgPSBpdGVtLmRldmljZTtcclxuICBpZiAoIWRldmljZSkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbW9kZWwgPSBkZXZpY2UuZGV2aWNlVHlwZSB8fCBkZXZpY2UudXNlckRldmljZVR5cGUgfHwgdW5kZWZpbmVkO1xyXG4gIHJldHVybiBbe1xyXG4gICAgaWQ6IGRldmljZS5wa2lkIHx8IGRldmljZS53ZWJleFVVSUQgfHwgZGV2aWNlLm5hbWUgfHwgYGRldmljZS0ke2luZGV4fWAsXHJcbiAgICBraW5kOiAnZGV2aWNlJyBhcyBjb25zdCxcclxuICAgIGxhYmVsOiBtb2RlbCB8fCBkZXZpY2UubmFtZSB8fCAnVW5uYW1lZCBkZXZpY2UnLFxyXG4gICAgbW9kZWwsXHJcbiAgICBtYWM6IC9eU0VQL2kudGVzdChkZXZpY2UubmFtZSB8fCAnJykgPyBkZXZpY2UubmFtZS5zbGljZSgzKSA6IHVuZGVmaW5lZCxcclxuICB9XTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9Xb3Jrc3BhY2UoaXRlbTogV29ya3NwYWNlTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIsIGlzQ3VjbTogYm9vbGVhbik6IFdvcmtzcGFjZSB7XHJcbiAgY29uc3QgZGV2aWNlID0gaXRlbS5kZXZpY2U7XHJcbiAgY29uc3QgZmlyc3REaXJlY3RvcnlOdW1iZXIgPSBkZXZpY2UuYXNzb2NpYXRlZEROcz8uWzBdPy5kaXJlY3RvcnlOdW1iZXIgPz8gJyc7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBpZDogZGV2aWNlLnBraWQgfHwgaXRlbS53b3Jrc3BhY2VEZXZpY2VzPy5bMF0/LmRldmljZUlkIHx8IGRldmljZS5uYW1lIHx8IGB3b3Jrc3BhY2UtJHtpbmRleH1gLFxyXG4gICAgZGlzcGxheU5hbWU6IGRldmljZS5uZXdOYW1lIHx8IGRldmljZS5uYW1lIHx8ICdVbm5hbWVkIGRldmljZScsXHJcbiAgICB0eXBlTGFiZWw6IGRldmljZS51c2VyRGV2aWNlVHlwZSB8fCAnTm8gdHlwZScsXHJcbiAgICBjYXBhY2l0eTogbnVsbCxcclxuICAgIGxvY2F0aW9uOiBpdGVtLnNpdGU/Lm5hbWUgfHwgZGV2aWNlLnNpdGVOYW1lIHx8IGRldmljZS5sb2NhdGlvbiB8fCAnJyxcclxuICAgIHNpdGVJZDogaXRlbS5zaXRlPy5pZCA/PyBudWxsLFxyXG4gICAgZGV2aWNlczogdG9Xb3Jrc3BhY2VEZXZpY2VzKGl0ZW0sIGluZGV4KSxcclxuICAgIHNjaGVkdWxpbmc6ICdOb3Qgc2V0JyxcclxuICAgIGNhbGxpbmdMaWNlbnNlOiBmaXJzdERpcmVjdG9yeU51bWJlcixcclxuICAgIHByb3Zpc2lvbmluZ1R5cGU6ICdPbi1wcmVtaXNlcycsXHJcbiAgICBzdGF0dXM6IHRvU3RhdHVzKGRldmljZS5wcm92aXNpb25pbmdTdGF0dXMpLFxyXG4gICAgc3RhdHVzTGFiZWw6IGRldmljZS5wcm92aXNpb25pbmdTdGF0dXMgfHwgJ1N0YXR1cyB1bmF2YWlsYWJsZScsXHJcbiAgICBkZXZpY2UsXHJcbiAgICBpc0h5YnJpZDogZmFsc2UsXHJcbiAgICBjdWNtRGV2aWNlTmFtZTogaXNDdWNtID8gKGRldmljZS5uYW1lIHx8IG51bGwpIDogbnVsbCxcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZURldmljZXMoYTogV29ya3NwYWNlWydkZXZpY2UnXSwgYjogV29ya3NwYWNlWydkZXZpY2UnXSk6IFdvcmtzcGFjZVsnZGV2aWNlJ10ge1xyXG4gIHJldHVybiB7XHJcbiAgICAuLi5hLFxyXG4gICAgLi4uYixcclxuICAgIGN1Y21JZDogYi5jdWNtSWQgPz8gYS5jdWNtSWQsXHJcbiAgICB3ZWJleFVVSUQ6IGIud2ViZXhVVUlEID8/IGEud2ViZXhVVUlELFxyXG4gIH07XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiB0b01hY0tleSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHZhbHVlID8gd2l0aG91dFNlcCh2YWx1ZSkucmVwbGFjZSgvW14wLTlBLUZdL2csICcnKSA6ICcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZUN1Y21BbmRXZWJleFdvcmtzcGFjZXMoY3VjbVdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdLCB3ZWJleEl0ZW1zOiBXb3Jrc3BhY2VMaXN0SXRlbVtdLCB3ZWJleFdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdKTogV29ya3NwYWNlW10ge1xyXG4gIGNvbnN0IHJlc3VsdCA9IFsuLi5jdWNtV29ya3NwYWNlc107XHJcbiAgY29uc3QgY3VjbUluZGV4QnlNYWMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xyXG4gIGN1Y21Xb3Jrc3BhY2VzLmZvckVhY2goKHdvcmtzcGFjZSwgaW5kZXgpID0+IHtcclxuICAgIGNvbnN0IGtleSA9IHRvTWFjS2V5KHdvcmtzcGFjZS5kZXZpY2UubmFtZSk7XHJcbiAgICBpZiAoa2V5ICYmICFjdWNtSW5kZXhCeU1hYy5oYXMoa2V5KSkge1xyXG4gICAgICBjdWNtSW5kZXhCeU1hYy5zZXQoa2V5LCBpbmRleCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHdlYmV4V29ya3NwYWNlcy5mb3JFYWNoKCh3ZWJleFdvcmtzcGFjZSwgd2ViZXhJbmRleCkgPT4ge1xyXG4gICAgY29uc3QgbWF0Y2hlZE1hYyA9ICh3ZWJleEl0ZW1zW3dlYmV4SW5kZXhdLndvcmtzcGFjZURldmljZXMgfHwgW10pXHJcbiAgICAgIC5tYXAod29ya3NwYWNlRGV2aWNlID0+IHRvTWFjS2V5KHdvcmtzcGFjZURldmljZS5tYWMpKVxyXG4gICAgICAuZmluZChrZXkgPT4ga2V5ICYmIGN1Y21JbmRleEJ5TWFjLmhhcyhrZXkpKTtcclxuXHJcbiAgICBpZiAoIW1hdGNoZWRNYWMpIHtcclxuICAgICAgcmVzdWx0LnB1c2god2ViZXhXb3Jrc3BhY2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY3VjbUluZGV4ID0gY3VjbUluZGV4QnlNYWMuZ2V0KG1hdGNoZWRNYWMpITtcclxuICAgIGN1Y21JbmRleEJ5TWFjLmRlbGV0ZShtYXRjaGVkTWFjKTtcclxuICAgIGNvbnN0IGN1Y21Xb3Jrc3BhY2UgPSByZXN1bHRbY3VjbUluZGV4XTtcclxuICAgIHJlc3VsdFtjdWNtSW5kZXhdID0ge1xyXG4gICAgICAuLi5jdWNtV29ya3NwYWNlLFxyXG4gICAgICAuLi53ZWJleFdvcmtzcGFjZSxcclxuICAgICAgZGlzcGxheU5hbWU6IGN1Y21Xb3Jrc3BhY2UuZGlzcGxheU5hbWUsXHJcbiAgICAgIGxvY2F0aW9uOiB3ZWJleFdvcmtzcGFjZS5sb2NhdGlvbiB8fCBjdWNtV29ya3NwYWNlLmxvY2F0aW9uLFxyXG4gICAgICBzaXRlSWQ6IHdlYmV4V29ya3NwYWNlLnNpdGVJZCA/PyBjdWNtV29ya3NwYWNlLnNpdGVJZCxcclxuICAgICAgZGV2aWNlOiB7XHJcbiAgICAgICAgLi4ubWVyZ2VEZXZpY2VzKGN1Y21Xb3Jrc3BhY2UuZGV2aWNlLCB3ZWJleFdvcmtzcGFjZS5kZXZpY2UpLFxyXG4gICAgICAgIG5hbWU6IGN1Y21Xb3Jrc3BhY2UuZGV2aWNlLm5hbWUsXHJcbiAgICAgICAgbmV3TmFtZTogY3VjbVdvcmtzcGFjZS5kZXZpY2UubmV3TmFtZSxcclxuICAgICAgfSxcclxuICAgICAgaXNIeWJyaWQ6IHRydWUsXHJcbiAgICAgIGN1Y21EZXZpY2VOYW1lOiBjdWNtV29ya3NwYWNlLmN1Y21EZXZpY2VOYW1lLFxyXG4gICAgfTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuY29uc3QgRkVUQ0hfQUxMX1NJWkUgPSA5OTk5O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSkgeyB9XHJcblxyXG4gIGZldGNoV29ya3NwYWNlcyhjdXN0b21lcklkOiBzdHJpbmcgfCBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtzcGFjZXNQYWdlPiB7XHJcbiAgICBjb25zdCBiYXNlUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICAgICB0eXBlOiAnT1JQSEFOX0RFVklDRScsXHJcbiAgICAgIGN1c3RvbWVyaWQ6IGN1c3RvbWVySWQudG9TdHJpbmcoKSxcclxuICAgICAgc2l6ZTogRkVUQ0hfQUxMX1NJWkUudG9TdHJpbmcoKSxcclxuICAgICAgcGFnZTogJzAnLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjdWNtJCA9IHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuV09SS1NQQUNFUy5HRVRfQUxMLCB7XHJcbiAgICAgIC4uLmJhc2VQYXJhbXMsXHJcbiAgICAgICdkZXZpY2UtbmFtZSc6ICdTRVAnLFxyXG4gICAgICBwcm92aXNpb25UeXBlOiAnQ1VDTScsXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB3ZWJleCQgPSB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLldPUktTUEFDRVMuR0VUX0FMTCwge1xyXG4gICAgICAuLi5iYXNlUGFyYW1zLFxyXG4gICAgICBwcm92aXNpb25UeXBlOiAnV0VCRVgnLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKFtjdWNtJCwgd2ViZXgkXSkucGlwZShcclxuICAgICAgbWFwKChbY3VjbVJlc3BvbnNlLCB3ZWJleFJlc3BvbnNlXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGN1Y21QYXJzZWQgPSBwYXJzZVJlc3BvbnNlKGN1Y21SZXNwb25zZSkgYXMgV29ya3NwYWNlc1Jlc3BvbnNlO1xyXG4gICAgICAgIGNvbnN0IHdlYmV4UGFyc2VkID0gcGFyc2VSZXNwb25zZSh3ZWJleFJlc3BvbnNlKSBhcyBXb3Jrc3BhY2VzUmVzcG9uc2U7XHJcbiAgICAgICAgY29uc3Qgd2ViZXhJdGVtcyA9IHdlYmV4UGFyc2VkPy5wYWdlRGF0YSB8fCBbXTtcclxuICAgICAgICBjb25zdCBjdWNtV29ya3NwYWNlcyA9IChjdWNtUGFyc2VkPy5wYWdlRGF0YSB8fCBbXSkubWFwKChpdGVtLCBpbmRleCkgPT4gdG9Xb3Jrc3BhY2UoaXRlbSwgaW5kZXgsIHRydWUpKTtcclxuICAgICAgICBjb25zdCB3ZWJleFdvcmtzcGFjZXMgPSB3ZWJleEl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHRvV29ya3NwYWNlKGl0ZW0sIGluZGV4LCBmYWxzZSkpO1xyXG4gICAgICAgIGNvbnN0IHdvcmtzcGFjZXMgPSBtZXJnZUN1Y21BbmRXZWJleFdvcmtzcGFjZXMoY3VjbVdvcmtzcGFjZXMsIHdlYmV4SXRlbXMsIHdlYmV4V29ya3NwYWNlcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB3b3Jrc3BhY2VzLFxyXG4gICAgICAgICAgdG90YWw6IHdvcmtzcGFjZXMubGVuZ3RoLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,4 @@
1
+ // Raw shapes returned by /api/search/quicknonuserdevices (a paginated CUCM
2
+ // non-user/shared device search, reused here as the "Workspaces" list).
3
+ export {};
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3R5cGVzL3dvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyRUFBMkU7QUFDM0Usd0VBQXdFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmF3IHNoYXBlcyByZXR1cm5lZCBieSAvYXBpL3NlYXJjaC9xdWlja25vbnVzZXJkZXZpY2VzIChhIHBhZ2luYXRlZCBDVUNNXHJcbi8vIG5vbi11c2VyL3NoYXJlZCBkZXZpY2Ugc2VhcmNoLCByZXVzZWQgaGVyZSBhcyB0aGUgXCJXb3Jrc3BhY2VzXCIgbGlzdCkuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUFzc29jaWF0ZWREaXJlY3RvcnlOdW1iZXIge1xyXG4gIGRpcmVjdG9yeU51bWJlcjogc3RyaW5nO1xyXG4gIHJvdXRlUGFydGl0aW9uTmFtZTogc3RyaW5nO1xyXG4gIHBraWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgZG5UeXBlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHN1YlR5cGU6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlTGluZUFzc29jaWF0aW9uIHtcclxuICBsaW5lUGtpZDogc3RyaW5nIHwgbnVsbDtcclxuICBpbmRleDogbnVtYmVyIHwgbnVsbDtcclxuICBwb3NpdGlvbjogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VTaXRlIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VEZXZpY2VBc3NvY2lhdGlvbiB7XHJcbiAgZGV2aWNlSWQ6IHN0cmluZztcclxuICBtYWM6IHN0cmluZztcclxuICBtb2RlbDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZURldmljZVJlY29yZCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIG5ld05hbWU6IHN0cmluZztcclxuICBwa2lkOiBzdHJpbmcgfCBudWxsO1xyXG4gIGVudGl0eUNoYW5nZVR5cGU6IHN0cmluZyB8IG51bGw7XHJcbiAgZGV2aWNlVHlwZTogc3RyaW5nIHwgbnVsbDtcclxuICBhY3RpdmVMb2FkSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgYXNzb2NpYXRlZEROczogV29ya3NwYWNlQXNzb2NpYXRlZERpcmVjdG9yeU51bWJlcltdO1xyXG4gIGF1dGhlbnRpY2F0aW9uTW9kZTogc3RyaW5nIHwgbnVsbDtcclxuICBhdXRoZW50aWNhdGlvblN0cmluZzogc3RyaW5nIHwgbnVsbDtcclxuICBidWlsdEluQnJpZGdlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGJ1c3lMYW1wRmllbGRzOiB1bmtub3duW107XHJcbiAgYnV0dG9uVGVtcGxhdGU6IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBjZXJ0aWZpY2F0ZU9wZXJhdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBjZXJ0aWZpY2F0ZVN0YXR1czogc3RyaW5nIHwgbnVsbDtcclxuICBjaGFuZ2VkTGluZUFwcEVudGl0eTogc3RyaW5nIHwgbnVsbDtcclxuICBjaGFuZ2VkTWVldE1lRW50aXR5OiBzdHJpbmcgfCBudWxsO1xyXG4gIGNvbW1vblBob25lQ29uZmlnTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBjdGlSZW1vdGVEZXZpY2U6IGJvb2xlYW47XHJcbiAgY3VjbUlkOiBzdHJpbmcgfCBudWxsO1xyXG4gIGN1c3RvbWVySWQ6IG51bWJlcjtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBkZXZpY2VQb29sTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBkZXZpY2VSZWdTdGF0dXM6IHN0cmluZyB8IG51bGw7XHJcbiAgZGV2aWNlU2VjdXJpdHlNb2RlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGVuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eTogYm9vbGVhbjtcclxuICBleGNsdWRlRGV2aWNlRXh0cmFPcHRpb25zOiBib29sZWFuO1xyXG4gIGV4dHJhT3B0aW9uczogdW5rbm93biB8IG51bGw7XHJcbiAgZmlybXdhcmVWZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIGZpcnN0RXhwYW5zaW9uTW9kdWxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGludGVyY29tTGluZUFzc29jaWF0aW9uczogdW5rbm93bltdO1xyXG4gIGlwQWRkcmVzczogc3RyaW5nIHwgbnVsbDtcclxuICBsYXN0UmVnVGltZTogc3RyaW5nIHwgbnVsbDtcclxuICBsaW5lQXNzb2NpYXRpb25zOiBXb3Jrc3BhY2VMaW5lQXNzb2NpYXRpb25bXTtcclxuICBsaW5lczogdW5rbm93bltdO1xyXG4gIGxvY2F0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1lZXRNZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgbmV0d29ya0xvY2FsZTogc3RyaW5nIHwgbnVsbDtcclxuICBvcGVyYXRpb25Db21wbGV0ZXNCeTogc3RyaW5nIHwgbnVsbDtcclxuICBvd25lclVzZXJJZDogc3RyaW5nIHwgbnVsbDtcclxuICBwbGFyRGV2aWNlOiBib29sZWFuO1xyXG4gIHByb3RvY29sOiBzdHJpbmcgfCBudWxsO1xyXG4gIHByb3Zpc2lvbmluZ1N0YXR1czogc3RyaW5nIHwgbnVsbDtcclxuICByZXJvdXRpbmdDc3M6IHN0cmluZyB8IG51bGw7XHJcbiAgcnNhS2V5U2l6ZTogc3RyaW5nIHwgbnVsbDtcclxuICBzZWNvbmRFeHBhbnNpb25Nb2R1bGU6IHN0cmluZyB8IG51bGw7XHJcbiAgc2VjdXJpdHlQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlY3VyaXR5UHJvZmlsZVV1aWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgc2VsZWN0ZWREZXZpY2VzQWFyU2V0dGluZ3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZERldmljZXNBZGRpdGlvbmFsSW5mb3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZERldmljZXNEbmRTZXR0aW5nczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkRGV2aWNlc0V4dGVybmFsRGF0YUxvY2F0aW9uczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkRGV2aWNlc0dlbmVyYWxJbmZvczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkRGV2aWNlc01lZGlhU2V0dGluZ3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZERldmljZXNNbHBwSW5mb3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZERldmljZXNOdW1iZXJQcmVzZW50YXRpb25zOiB1bmtub3duW107XHJcbiAgc2VsZWN0ZWREZXZpY2VzUGhvbmVTcGVjaWZpY3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZERldmljZXNQcm90b2NvbFNwZWNpZmljczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcclxuICBzZXJ2aWNlczogc3RyaW5nW107XHJcbiAgc2hhcmVkVXNlcnM6IHN0cmluZ1tdO1xyXG4gIHNpcFByb2ZpbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgc2l0ZUlkOiBudW1iZXI7XHJcbiAgc2l0ZU5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgc29mdGtleVRlbXBsYXRlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNwZWVkRGlhbHM6IHVua25vd25bXTtcclxuICBzdWJzY3JpYmVDYWxsaW5nU2VhcmNoU3BhY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRoaXJkRXhwYW5zaW9uTW9kdWxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHVuU3VwcG9ydGVkRm9yU0Q6IHVua25vd24gfCBudWxsO1xyXG4gIHVzZXJEZXZpY2VUeXBlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHVzZXJMb2NhbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgdm9pY2VtYWlsRW5hYmxlZDogYm9vbGVhbjtcclxuICB3ZWJleFVVSUQ6IHN0cmluZyB8IG51bGw7XHJcbiAgd2l0aFVkcDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VMaXN0SXRlbSB7XHJcbiAgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQ7XHJcbiAgbGluZXM6IHVua25vd25bXTtcclxuICBzaXRlOiBXb3Jrc3BhY2VTaXRlIHwgbnVsbDtcclxuICB3b3Jrc3BhY2VEZXZpY2VzOiBXb3Jrc3BhY2VEZXZpY2VBc3NvY2lhdGlvbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZXNSZXNwb25zZSB7XHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBwYWdlRGF0YTogV29ya3NwYWNlTGlzdEl0ZW1bXTtcclxufVxyXG5cclxuLy8gRGlzcGxheS1mcmllbmRseSBzaGFwZSBjb25zdW1lZCBieSB0aGUgZmlsdGVycy90YWJsZSBjb21wb25lbnRzLlxyXG5cclxuZXhwb3J0IHR5cGUgV29ya3NwYWNlU3RhdHVzID0gJ2FjdGl2ZScgfCAnaW5hY3RpdmUnIHwgJ3VuYXZhaWxhYmxlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRGV2aWNlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGtpbmQ6ICdkZXZpY2UnIHwgJ3BlcnNvbic7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpbml0aWFscz86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBtb2RlbD86IHN0cmluZztcclxuICBtYWM/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlc1BhZ2Uge1xyXG4gIHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdO1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgdHlwZUxhYmVsOiBzdHJpbmc7XHJcbiAgY2FwYWNpdHk6IG51bWJlciB8IG51bGw7XHJcbiAgbG9jYXRpb246IHN0cmluZztcclxuICBzaXRlSWQ6IG51bWJlciB8IG51bGw7XHJcbiAgZGV2aWNlczogV29ya3NwYWNlRGV2aWNlW107XHJcbiAgc2NoZWR1bGluZzogc3RyaW5nO1xyXG4gIGNhbGxpbmdMaWNlbnNlOiBzdHJpbmc7XHJcbiAgcHJvdmlzaW9uaW5nVHlwZTogc3RyaW5nO1xyXG4gIHN0YXR1czogV29ya3NwYWNlU3RhdHVzO1xyXG4gIHN0YXR1c0xhYmVsOiBzdHJpbmc7XHJcbiAgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQ7XHJcbiAgaXNIeWJyaWQ6IGJvb2xlYW47XHJcbiAgLy8gVGhlIENVQ00gZGV2aWNlJ3Mgb3duIG5hbWUgKGUuZy4gXCJTRVAuLi5cIikgYXMgaXQgd2FzIGJlZm9yZSBtZXJnaW5nIHdpdGhcclxuICAvLyBpdHMgV2ViZXggY291bnRlcnBhcnQsIHdoaWNoIGNhbiBvdGhlcndpc2Ugb3ZlcndyaXRlIGRldmljZS5uYW1lLiBVc2VkIHRvXHJcbiAgLy8gYWRkcmVzcyB0aGUgQ1VDTSBkZXRhaWwgZW5kcG9pbnQgZm9yIGEgaHlicmlkIHdvcmtzcGFjZS5cclxuICBjdWNtRGV2aWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuLy8gV2hpY2ggaWRlbnRpdHkgYSB3b3Jrc3BhY2Ugc2hvdWxkIGJlIG9wZW5lZC9hZGRyZXNzZWQgYnk6IHRoZSBwbGFpbiBXZWJleFxyXG4vLyBDYWxsaW5nIGNvbm5lY3Rpb24gKGtleWVkIGJ5IGRldmljZS53ZWJleFVVSUQpIG9yIHRoZSBXZWJleCBDYWxsaW5nIERJIC9cclxuLy8gb24tcHJlbSBjb25uZWN0aW9uIChrZXllZCBieSBkZXZpY2UubmFtZSkuIEEgaHlicmlkIHdvcmtzcGFjZSBoYXMgYm90aCBhbmRcclxuLy8gdGhlIGNhbGxlciBwaWNrcyB3aGljaCBvbmUgdGhleSBjbGlja2VkOyBhIG5vbi1oeWJyaWQgd29ya3NwYWNlIG9ubHkgZXZlclxyXG4vLyBoYXMgb25lIG9mIHRoZSB0d28gc2V0LlxyXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VDb25uZWN0aW9uVHlwZSA9ICd3ZWJleCcgfCAnZGknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VPcGVuRXZlbnQge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY29ubmVjdGlvblR5cGU6IFdvcmtzcGFjZUNvbm5lY3Rpb25UeXBlO1xyXG59XHJcblxyXG4vLyBNb2NrIGRhdGEgc2hvd24gb24gdGhlIHdvcmtzcGFjZSBkZXRhaWwgKE92ZXJ2aWV3IC8gQ2FsbGluZykgdmlldywgdW50aWwgYVxyXG4vLyBkZWRpY2F0ZWQgZGV0YWlsIEFQSSBpcyBhdmFpbGFibGUuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUlzc3VlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICB0aW1lc3RhbXA6IHN0cmluZztcclxuICBhY3Rpb25MYWJlbDogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgc3VnZ2VzdGVkQWN0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlTG9jYXRpb25EZXRhaWxzIHtcclxuICBjb3VudHJ5OiBzdHJpbmc7XHJcbiAgYWRkcmVzczogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUNhbGxpbmdEZXRhaWxzIHtcclxuICBsaWNlbnNlOiBzdHJpbmc7XHJcbiAgc2lwQWRkcmVzczogc3RyaW5nO1xyXG4gIGRpcmVjdG9yeU51bWJlcjogc3RyaW5nO1xyXG4gIGV4dGVuc2lvbj86IHN0cmluZztcclxuICByb3V0ZVBhcnRpdGlvbjogc3RyaW5nO1xyXG4gIGNhbGxpbmdTZWFyY2hTcGFjZTogc3RyaW5nO1xyXG4gIHNlY3VyaXR5UHJvZmlsZTogc3RyaW5nO1xyXG4gIGV4dGVybmFsQ2FsbGVySWROYW1lPzogc3RyaW5nO1xyXG4gIGV4dGVybmFsQ2FsbGVySWROdW1iZXI/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRGV2aWNlTGluZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIG51bWJlcjogc3RyaW5nO1xyXG4gIHJlZ2lzdGVyZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRGV2aWNlRGV0YWlscyB7XHJcbiAgbW9kZWw6IHN0cmluZztcclxuICByZWdpc3RyYXRpb25TdGF0dXM6IHN0cmluZztcclxuICBtYWM6IHN0cmluZztcclxuICBsaW5lQ291bnQ6IG51bWJlciB8IG51bGw7XHJcbiAgaG9zdElwQWRkcmVzczogc3RyaW5nO1xyXG4gIHJlbW90ZUlwQWRkcmVzczogc3RyaW5nO1xyXG4gIG1hbmFnZWRCeTogc3RyaW5nO1xyXG4gIHNvZnR3YXJlQ2hhbm5lbDogc3RyaW5nO1xyXG4gIHNvZnR3YXJlVmVyc2lvbjogc3RyaW5nO1xyXG4gIGxpbmVzOiBXb3Jrc3BhY2VEZXZpY2VMaW5lW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRGV0YWlscyB7XHJcbiAgaXNzdWVzOiBXb3Jrc3BhY2VJc3N1ZVtdO1xyXG4gIGxvY2F0aW9uOiBXb3Jrc3BhY2VMb2NhdGlvbkRldGFpbHM7XHJcbiAgY2FsbGluZzogV29ya3NwYWNlQ2FsbGluZ0RldGFpbHM7XHJcbiAgc2NoZWR1bGluZ0NvbmZpZ3VyZWQ6IGJvb2xlYW47XHJcbiAgcGxhbm5lZE1haW50ZW5hbmNlRW5hYmxlZDogYm9vbGVhbjtcclxuICBub3Rlczogc3RyaW5nIHwgbnVsbDtcclxuICBjYXBhY2l0eT86IG51bWJlciB8IG51bGw7XHJcbiAgZGV2aWNlPzogV29ya3NwYWNlRGV2aWNlRGV0YWlscztcclxufVxyXG5cclxuLy8gUmF3IHNoYXBlcyByZXR1cm5lZCBieSB0aGUgV2ViZXggQ2FsbGluZyB3b3Jrc3BhY2UtZGV0YWlsIGVuZHBvaW50c1xyXG4vLyAoQVBJLkRFVEFJTFMuV0VCRVguV09SS1NQQUNFIC8gTlVNQkVSUyAvIENBTExFUklEKS5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhXb3Jrc3BhY2VEZXZpY2VTdW1tYXJ5IHtcclxuICBkZXZpY2VJZDogc3RyaW5nO1xyXG4gIG1hYzogc3RyaW5nO1xyXG4gIG1vZGVsOiBzdHJpbmc7XHJcbiAgcmVnaXN0ZXJlZDogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXZWJleFdvcmtzcGFjZURldGFpbHNSZXNwb25zZSB7XHJcbiAgY3VzdG9tZXJJZDogbnVtYmVyO1xyXG4gIGNhcGFjaXR5OiBudW1iZXIgfCBudWxsO1xyXG4gIGRldmljZXM6IFdlYmV4V29ya3NwYWNlRGV2aWNlU3VtbWFyeVtdO1xyXG4gIGV4dGVuc2lvbnM6IHN0cmluZ1tdO1xyXG4gIGxpY2Vuc2VOYW1lOiBzdHJpbmc7XHJcbiAgbG9jYXRpb25JZDogc3RyaW5nO1xyXG4gIGxvY2F0aW9uTmFtZTogc3RyaW5nO1xyXG4gIHNpcEFkZHJlc3M6IHN0cmluZztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgd29ya3NwYWNlSWQ6IHN0cmluZztcclxuICB3b3Jrc3BhY2VOYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhOdW1iZXJMb2NhdGlvbiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgb3JnSWQ6IHN0cmluZztcclxuICBhZGRyZXNzOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFubm91bmNlbWVudExhbmd1YWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGNpdHk6IHN0cmluZyB8IG51bGw7XHJcbiAgY291bnRyeTogc3RyaW5nIHwgbnVsbDtcclxuICBlbWFpbExhbmd1YWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBvc3RhbENvZGU6IHN0cmluZyB8IG51bGw7XHJcbiAgcHJlZmVycmVkTGFuZ3VhZ2U6IHN0cmluZyB8IG51bGw7XHJcbiAgc3RhdGU6IHN0cmluZyB8IG51bGw7XHJcbiAgdGltZVpvbmU6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhOdW1iZXJPcmdhbml6YXRpb24ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdlYmV4UGhvbmVOdW1iZXIge1xyXG4gIGVzbjogc3RyaW5nIHwgbnVsbDtcclxuICBleHRlbnNpb246IHN0cmluZyB8IG51bGw7XHJcbiAgZXh0ZXJuYWw6IHN0cmluZyB8IG51bGw7XHJcbiAgcHJpbWFyeTogYm9vbGVhbjtcclxuICB3b3Jrc3BhY2U/OiB7IGlkOiBzdHJpbmcgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXZWJleE51bWJlcnNSZXNwb25zZSB7XHJcbiAgcGhvbmVOdW1iZXJzOiBXZWJleFBob25lTnVtYmVyW107XHJcbiAgbG9jYXRpb246IFdlYmV4TnVtYmVyTG9jYXRpb247XHJcbiAgb3JnYW5pemF0aW9uOiBXZWJleE51bWJlck9yZ2FuaXphdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXZWJleENhbGxlcklkUmVzcG9uc2Uge1xyXG4gIHR5cGVzOiBzdHJpbmdbXTtcclxuICBzZWxlY3RlZDogc3RyaW5nO1xyXG4gIGJsb2NrSW5Gb3J3YXJkQ2FsbHNFbmFibGVkOiBib29sZWFuO1xyXG4gIGN1c3RvbUV4dGVybmFsQ2FsbGVySWROYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGN1c3RvbU51bWJlcjogc3RyaW5nIHwgbnVsbDtcclxuICBjdXN0b21lck51bWJlcjogc3RyaW5nIHwgbnVsbDtcclxuICBkaXJlY3ROdW1iZXI6IHN0cmluZyB8IG51bGw7XHJcbiAgZGlzcGxheURldGFpbDogc3RyaW5nIHwgbnVsbDtcclxuICBkaXNwbGF5TmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBleHRlcm5hbENhbGxlcklkTmFtZVBvbGljeTogc3RyaW5nIHwgbnVsbDtcclxuICBsb2NhdGlvbkV4dGVybmFsQ2FsbGVySWROYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGxvY2F0aW9uTnVtYmVyOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRvbGxGcmVlTG9jYXRpb25OdW1iZXI6IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIFJhdyBzaGFwZXMgcmV0dXJuZWQgYnkgdGhlIENVQ00gd29ya3NwYWNlLWRldGFpbCBlbmRwb2ludHNcclxuLy8gKEFQSS5ERVRBSUxTLkNVQ00uV09SS1NQQUNFIC8gU0lURSkuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21DYWxsSW5mb0Rpc3BsYXkge1xyXG4gIGNhbGxlck5hbWU6IHN0cmluZztcclxuICBjYWxsZXJOdW1iZXI6IHN0cmluZztcclxuICByZWRpcmVjdGVkTnVtYmVyOiBzdHJpbmc7XHJcbiAgZGlhbGVkTnVtYmVyOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbUxpbmVBc3NvY2lhdGlvbiB7XHJcbiAgbGluZVBraWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgaW5kZXg6IG51bWJlciB8IG51bGw7XHJcbiAgcG9zaXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgZGlyZWN0b3J5TnVtYmVyOiBXb3Jrc3BhY2VBc3NvY2lhdGVkRGlyZWN0b3J5TnVtYmVyO1xyXG4gIGUxNjRNYXNrOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRleHRMYWJlbDogc3RyaW5nIHwgbnVsbDtcclxuICBkaXNwbGF5TGFiZWw6IHN0cmluZyB8IG51bGw7XHJcbiAgZGlzcGxheUxhYmVsQXNjaWk6IHN0cmluZyB8IG51bGw7XHJcbiAgbWF4TnVtYmVyT2ZDYWxsczogbnVtYmVyIHwgbnVsbDtcclxuICBidXN5VHJpZ2dlcjogbnVtYmVyIHwgbnVsbDtcclxuICByZWNvcmRpbmdPcHRpb246IHN0cmluZyB8IG51bGw7XHJcbiAgcmVjb3JkaW5nUHJvZmlsZTogc3RyaW5nIHwgbnVsbDtcclxuICByZWNvcmRpbmdNZWRpYVNvdXJjZTogc3RyaW5nIHwgbnVsbDtcclxuICB2aXN1YWxNV0k6IHN0cmluZyB8IG51bGw7XHJcbiAgYXVkaWJsZU1XSTogc3RyaW5nIHwgbnVsbDtcclxuICByaW5nU2V0dGluZ19pZGxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHJpbmdTZXR0aW5nX2FjdGl2ZTogc3RyaW5nIHwgbnVsbDtcclxuICBwaWNrdXBBQVNfaWRsZTogc3RyaW5nIHwgbnVsbDtcclxuICBwaWNrdXBBQVNfYWN0aXZlOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1vbml0b3JDU1M6IHN0cmluZyB8IG51bGw7XHJcbiAgbG9nTWlzc2VkQ2FsbDogc3RyaW5nIHwgbnVsbDtcclxuICBjYWxsSW5mb0Rpc3BsYXk6IEN1Y21DYWxsSW5mb0Rpc3BsYXk7XHJcbiAgbGluZUxvY2FsSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgZGlkUGF0dGVybjogdW5rbm93biB8IG51bGw7XHJcbiAgc2hhcmVkRGV2aWNlczogdW5rbm93bltdO1xyXG4gIHNoYXJlZFVzZXJzOiB1bmtub3duW107XHJcbiAgb3duZXJVc2VySWQ6IHVua25vd25bXTtcclxuICBhc3NvY2lhdGVkOiB1bmtub3duIHwgbnVsbDtcclxuICBwYXR0ZXJuVXNhZ2U6IHVua25vd24gfCBudWxsO1xyXG4gIGFsZXJ0aW5nTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBwb3B1bGF0ZVdpdGhEaWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbVNlcnZpY2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0ZWxlY2FzdGVyU2VydmljZU5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWNtRGV2aWNlRGV0YWlscyBleHRlbmRzIE9taXQ8V29ya3NwYWNlRGV2aWNlUmVjb3JkLCAnbGluZUFzc29jaWF0aW9ucycgfCAnc2VydmljZXMnPiB7XHJcbiAgbGluZUFzc29jaWF0aW9uczogQ3VjbUxpbmVBc3NvY2lhdGlvbltdO1xyXG4gIHNlcnZpY2VzOiBDdWNtU2VydmljZVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21DYWxsRm9yd2FyZFNldHRpbmcge1xyXG4gIGZvcndhcmRUb1ZvaWNlTWFpbDogYm9vbGVhbiB8IG51bGw7XHJcbiAgZGVzdGluYXRpb246IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGR1cmF0aW9uOiBudW1iZXIgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21BYXJTZXR0aW5ncyB7XHJcbiAgYWFyRGVzdGluYXRpb25NYXNrOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFhckdyb3VwOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFhclZvaWNlTWFpbEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYWFyS2VlcENhbGxIaXN0b3J5OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21QYXJrTW9uaXRvcmluZyB7XHJcbiAgZGVzdGluYXRpb246IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHZvaWNlTWFpbDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWNtRGlkUGF0dGVybiB7XHJcbiAgcGtpZDogc3RyaW5nIHwgbnVsbDtcclxuICBwYXR0ZXJuOiBzdHJpbmcgfCBudWxsO1xyXG4gIG5ld1BhdHRlcm46IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbGVkUGFydHlUcmFuc2Zvcm1hdGlvbk1hc2s6IHN0cmluZyB8IG51bGw7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XHJcbiAgdXNlT3JpZ2luYXRvckNzczogdW5rbm93biB8IG51bGw7XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgbmV3Um91dGVQYXJ0aXRpb25OYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHVyZ2VudFByaW9yaXR5OiBib29sZWFuO1xyXG4gIG91dGdvaW5nQ2FsbHM6IHVua25vd24gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21MaW5lRGV0YWlscyB7XHJcbiAgZGlyZWN0b3J5TnVtYmVyOiBXb3Jrc3BhY2VBc3NvY2lhdGVkRGlyZWN0b3J5TnVtYmVyO1xyXG4gIHBraWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XHJcbiAgZW50aXR5Q2hhbmdlVHlwZTogc3RyaW5nIHwgbnVsbDtcclxuICBhbGVydGluZ05hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgYXNjaWlBbGVydGluZ05hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGNhbGxGb3J3YXJkQWxsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xyXG4gIGNhbGxGb3J3YXJkQWxsU2Vjb25kYXJ5Q1NTOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xyXG4gIGNhbGxGb3J3YXJkQnVzeUludGVybmFsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xyXG4gIGNhbGxGb3J3YXJkQnVzeUV4dGVybmFsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xyXG4gIGNhbGxGb3J3YXJkTm9BbnN3ZXJJbnRlcm5hbDogQ3VjbUNhbGxGb3J3YXJkU2V0dGluZztcclxuICBjYWxsRm9yd2FyZE5vQW5zd2VyRXh0ZXJuYWw6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XHJcbiAgY2FsbEZvcndhcmROb0NvdmVyYWdlSW50ZXJuYWw6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XHJcbiAgY2FsbEZvcndhcmROb0NvdmVyYWdlRXh0ZXJuYWw6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XHJcbiAgY2FsbEZvcndhcmRPbkNUSUZhaWx1cmU6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XHJcbiAgY2FsbEZvcndhcmRVbnJlZ2lzdGVyZWRJbnRlcm5hbDogQ3VjbUNhbGxGb3J3YXJkU2V0dGluZztcclxuICBjYWxsRm9yd2FyZFVucmVnaXN0ZXJlZEV4dGVybmFsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xyXG4gIGNhbGxGb3J3YXJkQWx0ZXJuYXRlUGFydHk6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XHJcbiAgdm9pY2VNYWlsUHJvZmlsZTogc3RyaW5nIHwgbnVsbDtcclxuICBub0Fuc3dlclJpbmdEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcclxuICBhdXRvQW5zd2VyOiBzdHJpbmcgfCBudWxsO1xyXG4gIGNhbGxQaWNrdXBHcm91cDogc3RyaW5nIHwgbnVsbDtcclxuICBhYXJTZXR0aW5nczogQ3VjbUFhclNldHRpbmdzO1xyXG4gIHBhcmtNb25pdG9yaW5nSW50ZXJuYWw6IEN1Y21QYXJrTW9uaXRvcmluZztcclxuICBwYXJrTW9uaXRvcmluZ0V4dGVybmFsOiBDdWNtUGFya01vbml0b3Jpbmc7XHJcbiAgdXJnZW50UHJpb3JpdHk6IGJvb2xlYW47XHJcbiAgYmxmUHJlc2VuY2VHcm91cDogc3RyaW5nIHwgbnVsbDtcclxuICB1c2VySG9sZE1PSEF1ZGlvU291cmNlSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgdXNlckhvbGRNT0hBdWRpb1NvdXJjZU5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgbmV0d29ya01PSEF1ZGlvU291cmNlSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgbmV0d29ya01PSEF1ZGlvU291cmNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICByZWplY3RBbm9ueW1vdXNDYWxsOiBib29sZWFuO1xyXG4gIGVudGVycHJpc2VBbHROdW06IHVua25vd24gfCBudWxsO1xyXG4gIGUxNjRBbHROdW06IHVua25vd24gfCBudWxsO1xyXG4gIGRpcmVjdG9yeVVyaXM6IHVua25vd25bXTtcclxuICBtbHBwTm9BbnN3ZXJSaW5nRHVyYXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgY29uZmlkZW50aWFsQWNjZXNzTW9kZTogdW5rbm93biB8IG51bGw7XHJcbiAgY29uZmlkZW50aWFsQWNjZXNzTGV2ZWw6IHVua25vd24gfCBudWxsO1xyXG4gIGNvbmZpZGVudGlhbEFjY2Vzc0xldmVsTmFtZTogdW5rbm93biB8IG51bGw7XHJcbiAgY2FsbENvbnRyb2xBZ2VudFByb2ZpbGU6IHVua25vd24gfCBudWxsO1xyXG4gIGhvbGRSZXZlcnNpb25SaW5nRHVyYXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgaG9sZFJldmVyc2lvbk5vdGlmaWNhdGlvbkludGVydmFsOiBudW1iZXIgfCBudWxsO1xyXG4gIHBhcnR5RW50cmFuY2VUb25lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBzdG5GYWlsb3Zlcjogc3RyaW5nIHwgbnVsbDtcclxuICBsb2NhbElkOiBzdHJpbmcgfCBudWxsO1xyXG4gIGN1c3RvbWVySWQ6IG51bWJlcjtcclxuICBjdWNtSWQ6IG51bWJlcjtcclxuICBzaXRlSWQ6IG51bWJlcjtcclxuICBzaXRlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBsb2NhdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBsb2NhdGlvbk5hbWVzOiBzdHJpbmdbXTtcclxuICBzZWxlY3RlZEluZGV4OiBudW1iZXI7XHJcbiAgZGlkUGF0dGVybnM6IEN1Y21EaWRQYXR0ZXJuW107XHJcbiAgbWFwcGVkRGlkczogc3RyaW5nW107XHJcbiAgc2VsZWN0ZWRMaW5lc0dlbmVyYWxTZXR0aW5nczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkTGluZXNBc3NvY2lhdGVkU2V0dGluZ3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZExpbmVzTXVsdGlwbGVDYWxsczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkTGluZXNDYWxsUmVjb3JkaW5nczogdW5rbm93bltdO1xyXG4gIHNlbGVjdGVkTGluZXNBZGRpdGlvbmFsU2V0dGluZ3M6IHVua25vd25bXTtcclxuICBzZWxlY3RlZExpbmVzRm9yd2FyZENhbGxzOiB1bmtub3duW107XHJcbiAgbmV3VG9Vc2VyOiBib29sZWFuO1xyXG4gIHBsYXJEZXN0aW5hdGlvbk51bWJlcjogc3RyaW5nIHwgbnVsbDtcclxuICBwcmVmaXhEaWdpdHM6IHN0cmluZyB8IG51bGw7XHJcbiAgcGxhckRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBsYXJDc3M6IHN0cmluZyB8IG51bGw7XHJcbiAgcGxhclJvdXRlUGFydGl0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBsYXJFbmFibGVkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21Xb3Jrc3BhY2VEZXRhaWxzUmVzcG9uc2Uge1xyXG4gIGRldmljZTogQ3VjbURldmljZURldGFpbHM7XHJcbiAgbGluZXM6IEN1Y21MaW5lRGV0YWlsc1tdO1xyXG4gIHNpdGU6IFdvcmtzcGFjZVNpdGUgfCBudWxsO1xyXG4gIHdvcmtzcGFjZURldmljZXM6IFdvcmtzcGFjZURldmljZUFzc29jaWF0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbVNpdGVDdWNJbmZvIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWNtU2l0ZUN1Y21JbmZvIHtcclxuICBwbGF0Zm9ybVR5cGU6IHN0cmluZztcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWNtU2l0ZVJlc3BvbnNlIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBzaG9ydE5hbWU6IHN0cmluZztcclxuICBhZGRyZXNzMjogc3RyaW5nIHwgbnVsbDtcclxuICBhZGRyZXNzMzogc3RyaW5nIHwgbnVsbDtcclxuICBjb3VudHJ5OiBzdHJpbmcgfCBudWxsO1xyXG4gIGN1YzogQ3VjbVNpdGVDdWNJbmZvIHwgbnVsbDtcclxuICBjdWNtOiBDdWNtU2l0ZUN1Y21JbmZvIHwgbnVsbDtcclxuICBoYXNBY3RpdmF0ZWQ6IGJvb2xlYW47XHJcbiAgaHFTdGF0dXM6IGJvb2xlYW47XHJcbiAgaXNBZnRlclR0dTogYm9vbGVhbjtcclxuICBsb2NhdGlvbk5hbWU6IHN0cmluZztcclxuICBwcmVmZXRjaERuOiBib29sZWFuO1xyXG4gIHNldHRpbmdzOiB1bmtub3duW107XHJcbiAgc3RhdGU6IHN0cmluZyB8IG51bGw7XHJcbiAgdGltZXpvbmU6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuIl19
@@ -0,0 +1,14 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/progress-spinner";
4
+ export class AppLoaderComponent {
5
+ constructor() {
6
+ }
7
+ }
8
+ AppLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ AppLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AppLoaderComponent, selector: "app-loader", ngImport: i0, template: "<div class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"70\"\r\n strokeWidth=\"3\"></mat-progress-spinner>\r\n</div>\r\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}.mat-progress-spinner circle,.mat-spinner circle{stroke:#000!important}\n"], dependencies: [{ kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'app-loader', encapsulation: ViewEncapsulation.None, template: "<div class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"70\"\r\n strokeWidth=\"3\"></mat-progress-spinner>\r\n</div>\r\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}.mat-progress-spinner circle,.mat-spinner circle{stroke:#000!important}\n"] }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy93b3Jrc3BhY2VzL3NyYy91dGlscy9hcHAtbG9hZGVyL2FwcC1sb2FkZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvYXBwLWxvYWRlci9hcHAtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVE3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCO0lBQ0EsQ0FBQzs7Z0hBRlUsa0JBQWtCO29HQUFsQixrQkFBa0Isa0RDUi9CLHdNQU9BOzRGRENhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHAtbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcExvYWRlckNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmxheVwiPlxyXG4gIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxyXG4gICAgY2xhc3M9XCJwYWdlLXNwaW5uZXJcIlxyXG4gICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgW2RpYW1ldGVyXT1cIjcwXCJcclxuICAgIHN0cm9rZVdpZHRoPVwiM1wiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,13 @@
1
+ const DEFAULT_DEVICE_ICON = 'assets/icons/cisco_8851.png';
2
+ const DEVICE_MODEL_ICONS = {
3
+ 'cisco 8851': 'assets/icons/cisco_8851.png',
4
+ 'cisco 8845': 'assets/icons/cisco_8845.png',
5
+ 'cisco 9841': 'assets/icons/cisco_9841.png',
6
+ };
7
+ export function getDeviceIcon(model) {
8
+ if (!model) {
9
+ return DEFAULT_DEVICE_ICON;
10
+ }
11
+ return DEVICE_MODEL_ICONS[model.trim().toLowerCase()] ?? DEFAULT_DEVICE_ICON;
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvZGV2aWNlLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxtQkFBbUIsR0FBRyw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLGtCQUFrQixHQUEyQjtJQUNqRCxZQUFZLEVBQUUsNkJBQTZCO0lBQzNDLFlBQVksRUFBRSw2QkFBNkI7SUFDM0MsWUFBWSxFQUFFLDZCQUE2QjtDQUM1QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFjO0lBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLG1CQUFtQixDQUFDO0tBQzVCO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgREVGQVVMVF9ERVZJQ0VfSUNPTiA9ICdhc3NldHMvaWNvbnMvY2lzY29fODg1MS5wbmcnO1xyXG5cclxuY29uc3QgREVWSUNFX01PREVMX0lDT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICdjaXNjbyA4ODUxJzogJ2Fzc2V0cy9pY29ucy9jaXNjb184ODUxLnBuZycsXHJcbiAgJ2Npc2NvIDg4NDUnOiAnYXNzZXRzL2ljb25zL2Npc2NvXzg4NDUucG5nJyxcclxuICAnY2lzY28gOTg0MSc6ICdhc3NldHMvaWNvbnMvY2lzY29fOTg0MS5wbmcnLFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERldmljZUljb24obW9kZWw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGlmICghbW9kZWwpIHtcclxuICAgIHJldHVybiBERUZBVUxUX0RFVklDRV9JQ09OO1xyXG4gIH1cclxuICByZXR1cm4gREVWSUNFX01PREVMX0lDT05TW21vZGVsLnRyaW0oKS50b0xvd2VyQ2FzZSgpXSA/PyBERUZBVUxUX0RFVklDRV9JQ09OO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ // CUCM and Webex Calling device names for the same physical workspace can differ
2
+ // only by the 'SEP' substring (Cisco's MAC-based device naming for CUCM
3
+ // endpoints). Comparing/rendering with it stripped is how the two get treated
4
+ // as one workspace, without altering the underlying device name data.
5
+ export function withoutSep(name) {
6
+ return name.toLocaleUpperCase().replace(/SEP/gi, '');
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvd29ya3NwYWNlLW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUZBQWlGO0FBQ2pGLHdFQUF3RTtBQUN4RSw4RUFBOEU7QUFDOUUsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENVQ00gYW5kIFdlYmV4IENhbGxpbmcgZGV2aWNlIG5hbWVzIGZvciB0aGUgc2FtZSBwaHlzaWNhbCB3b3Jrc3BhY2UgY2FuIGRpZmZlclxyXG4vLyBvbmx5IGJ5IHRoZSAnU0VQJyBzdWJzdHJpbmcgKENpc2NvJ3MgTUFDLWJhc2VkIGRldmljZSBuYW1pbmcgZm9yIENVQ01cclxuLy8gZW5kcG9pbnRzKS4gQ29tcGFyaW5nL3JlbmRlcmluZyB3aXRoIGl0IHN0cmlwcGVkIGlzIGhvdyB0aGUgdHdvIGdldCB0cmVhdGVkXHJcbi8vIGFzIG9uZSB3b3Jrc3BhY2UsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIHVuZGVybHlpbmcgZGV2aWNlIG5hbWUgZGF0YS5cclxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhvdXRTZXAobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gbmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpLnJlcGxhY2UoL1NFUC9naSwgJycpO1xyXG59XHJcbiJdfQ==