@tuki-io/tuki-widgets 0.0.219-dev.5 → 0.0.219-dev.50

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 (193) hide show
  1. package/di2mt/api/api.endpoints.d.ts +3 -0
  2. package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
  3. package/esm2020/locations/public-api.mjs +8 -0
  4. package/esm2020/locations/src/app.constants.mjs +14 -0
  5. package/esm2020/locations/src/location-confirm-dialog/location-confirm-dialog.component.mjs +23 -0
  6. package/esm2020/locations/src/locations.component.mjs +351 -0
  7. package/esm2020/locations/src/locations.module.mjs +42 -0
  8. package/esm2020/locations/src/material.module.mjs +55 -0
  9. package/esm2020/locations/src/services/api.service.mjs +67 -0
  10. package/esm2020/locations/src/services/locations.service.mjs +65 -0
  11. package/esm2020/locations/src/types/location.mjs +2 -0
  12. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
  13. package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
  14. package/esm2020/meetings/public-api.mjs +8 -0
  15. package/esm2020/meetings/src/app.constants.mjs +9 -0
  16. package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
  17. package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
  18. package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
  19. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
  20. package/esm2020/meetings/src/material.module.mjs +76 -0
  21. package/esm2020/meetings/src/meetings.component.mjs +65 -0
  22. package/esm2020/meetings/src/meetings.module.mjs +51 -0
  23. package/esm2020/meetings/src/services/api.service.mjs +67 -0
  24. package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
  25. package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
  26. package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
  27. package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
  28. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
  29. package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
  30. package/esm2020/shared/public-api.mjs +4 -0
  31. package/esm2020/shared/src/ui/material.module.mjs +188 -0
  32. package/esm2020/shared/src/ui/shared.module.mjs +36 -0
  33. package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
  34. package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
  35. package/esm2020/shared/src/ui/ui.module.mjs +37 -0
  36. package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
  37. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
  38. package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
  39. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
  40. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
  41. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
  42. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
  43. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
  44. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  45. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +1 -4
  46. package/esm2020/user-manage/src/app.constants.mjs +7 -1
  47. package/esm2020/user-manage/src/classes/simplified-user.mjs +5 -3
  48. package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
  49. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
  50. package/esm2020/user-manage/src/material.module.mjs +14 -7
  51. package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
  52. package/esm2020/user-manage/src/services/user.service.mjs +65 -19
  53. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
  54. package/esm2020/user-manage/src/user-manage-widget.component.mjs +64 -23
  55. package/esm2020/user-manage/src/user-manage.module.mjs +10 -3
  56. package/esm2020/users-list/src/app.constants.mjs +2 -1
  57. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  58. package/esm2020/users-list/src/classes/user-list.mjs +2 -1
  59. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
  60. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
  61. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
  62. package/esm2020/users-list/src/users-list.component.mjs +100 -17
  63. package/esm2020/workspaces/public-api.mjs +8 -0
  64. package/esm2020/workspaces/src/app.constants.mjs +27 -0
  65. package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
  66. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +61 -0
  67. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
  68. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +127 -0
  69. package/esm2020/workspaces/src/material.module.mjs +83 -0
  70. package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
  71. package/esm2020/workspaces/src/services/api.service.mjs +67 -0
  72. package/esm2020/workspaces/src/services/workspace-detail.service.mjs +122 -0
  73. package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
  74. package/esm2020/workspaces/src/services/workspaces.service.mjs +105 -0
  75. package/esm2020/workspaces/src/types/workspace.mjs +4 -0
  76. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
  77. package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
  78. package/esm2020/workspaces/src/utils/workspace-name.mjs +8 -0
  79. package/esm2020/workspaces/src/workspaces.component.mjs +306 -0
  80. package/esm2020/workspaces/src/workspaces.module.mjs +51 -0
  81. package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
  82. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  83. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  84. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +623 -0
  85. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  86. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
  87. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  88. package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
  89. package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  90. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
  91. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  92. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
  93. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  94. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +253 -60
  95. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  96. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +121 -22
  97. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  98. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +1082 -0
  99. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  100. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  101. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  102. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +617 -0
  103. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  104. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
  105. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  106. package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
  107. package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  108. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
  109. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  110. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
  111. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  112. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +248 -58
  113. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  114. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +120 -22
  115. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  116. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +1089 -0
  117. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  118. package/locations/index.d.ts +5 -0
  119. package/locations/public-api.d.ts +2 -0
  120. package/locations/src/app.constants.d.ts +9 -0
  121. package/locations/src/location-confirm-dialog/location-confirm-dialog.component.d.ts +15 -0
  122. package/locations/src/locations.component.d.ts +86 -0
  123. package/locations/src/locations.module.d.ts +13 -0
  124. package/locations/src/material.module.d.ts +12 -0
  125. package/locations/src/services/api.service.d.ts +18 -0
  126. package/locations/src/services/locations.service.d.ts +19 -0
  127. package/locations/src/types/location.d.ts +28 -0
  128. package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
  129. package/meetings/index.d.ts +5 -0
  130. package/meetings/public-api.d.ts +2 -0
  131. package/meetings/src/app.constants.d.ts +8 -0
  132. package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
  133. package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
  134. package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
  135. package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
  136. package/meetings/src/material.module.d.ts +15 -0
  137. package/meetings/src/meetings.component.d.ts +29 -0
  138. package/meetings/src/meetings.module.d.ts +16 -0
  139. package/meetings/src/services/api.service.d.ts +18 -0
  140. package/meetings/src/services/live-meetings.service.d.ts +9 -0
  141. package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
  142. package/meetings/src/types/live-meeting.d.ts +71 -0
  143. package/meetings/src/types/meeting-space.d.ts +52 -0
  144. package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
  145. package/package.json +33 -1
  146. package/shared/index.d.ts +5 -0
  147. package/shared/public-api.d.ts +3 -0
  148. package/shared/src/ui/material.module.d.ts +28 -0
  149. package/shared/src/ui/shared.module.d.ts +10 -0
  150. 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
  151. package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
  152. package/shared/src/ui/ui.module.d.ts +11 -0
  153. package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
  154. package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
  155. package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
  156. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
  157. package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
  158. package/user-device-manage/src/user-device-manage.module.d.ts +9 -10
  159. package/user-manage/src/app.constants.d.ts +6 -0
  160. package/user-manage/src/classes/simplified-user.d.ts +11 -1
  161. package/user-manage/src/device-list/device-list.component.d.ts +2 -0
  162. package/user-manage/src/material.module.d.ts +2 -1
  163. package/user-manage/src/services/dcp-api.service.d.ts +21 -0
  164. package/user-manage/src/services/user.service.d.ts +8 -1
  165. package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
  166. package/user-manage/src/user-manage-widget.component.d.ts +10 -2
  167. package/user-manage/src/user-manage.module.d.ts +2 -1
  168. package/users-list/src/app.constants.d.ts +1 -0
  169. package/users-list/src/classes/simlified-user.d.ts +1 -1
  170. package/users-list/src/classes/user-list.d.ts +4 -0
  171. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
  172. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
  173. package/users-list/src/users-list.component.d.ts +6 -1
  174. package/workspaces/index.d.ts +5 -0
  175. package/workspaces/public-api.d.ts +2 -0
  176. package/workspaces/src/app.constants.d.ts +25 -0
  177. package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
  178. package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +25 -0
  179. package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
  180. package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +42 -0
  181. package/workspaces/src/material.module.d.ts +16 -0
  182. package/workspaces/src/services/api-webex.service.d.ts +6 -0
  183. package/workspaces/src/services/api.service.d.ts +18 -0
  184. package/workspaces/src/services/workspace-detail.service.d.ts +20 -0
  185. package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
  186. package/workspaces/src/services/workspaces.service.d.ts +11 -0
  187. package/workspaces/src/types/workspace.d.ts +416 -0
  188. package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
  189. package/workspaces/src/utils/device-icon.d.ts +1 -0
  190. package/workspaces/src/utils/workspace-name.d.ts +1 -0
  191. package/workspaces/src/workspaces.component.d.ts +74 -0
  192. package/workspaces/src/workspaces.module.d.ts +16 -0
  193. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy1taWdyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy93b3Jrc3BhY2VzL3NyYy9zZXJ2aWNlcy93b3Jrc3BhY2VzLW1pZ3JhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFTdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBSSxDQUFDO0lBRXpELFFBQVEsQ0FBQyxVQUEyQixFQUFFLE1BQTZCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBMkIsRUFBRSxNQUFjO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYzthQUNyQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGdDQUFnQyxDQUM5QixVQUEyQixFQUMzQixTQUFpQixFQUNqQixPQUFPLEdBQUcsaUJBQWlCO1FBRTNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsVUFBMkIsRUFDM0IsZUFBdUIsRUFDdkIsU0FBNEI7UUFFNUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQywwQkFBMEI7YUFDakQsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQzthQUNsQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGdCQUFnQixDQUNkLFVBQTJCLEVBQzNCLGVBQXVCLEVBQ3ZCLGNBQWMsR0FBRyxPQUFPO1FBRXhCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCO2FBQ3pDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUM7YUFDMUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBMkIsRUFBRSxRQUFnQjtRQUMzRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVk7YUFDbkMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQTJCLEVBQUUsTUFBNkI7UUFDNUUsT0FBTztZQUNMLFVBQVU7WUFDVixRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BFO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3dIQTdEVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcbmltcG9ydCB7IFdvcmtzcGFjZURldmljZVJlY29yZCB9IGZyb20gJy4uL3R5cGVzL3dvcmtzcGFjZSc7XG5pbXBvcnQgeyBBcGlXZWJleFNlcnZpY2UgfSBmcm9tICcuL2FwaS13ZWJleC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgRmlybXdhcmVEZXZpY2VNYXAgPSBSZWNvcmQ8bnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc01pZ3JhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlKSB7IH1cblxuICBtb3ZlVG9NVChjdXN0b21lcklkOiBzdHJpbmcgfCBudW1iZXIsIGRldmljZTogV29ya3NwYWNlRGV2aWNlUmVjb3JkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTUlHUkFUSU9OLk1PVkUsIHRoaXMuZ2V0TW92ZUJvZHkoY3VzdG9tZXJJZCwgZGV2aWNlKSk7XG4gIH1cblxuICBnZXRNaWdyYXRpb25Gb3JtU3RhdHVzKGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlciwgZm9ybUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IEFQSS5NSUdSQVRJT04uTUlHUkFUSU9OX0ZPUk1cbiAgICAgIC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSlcbiAgICAgIC5yZXBsYWNlKCc6Zm9ybUlkJywgU3RyaW5nKGZvcm1JZCkpO1xuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5mZXRjaCh1cmwpO1xuICB9XG5cbiAgZ2V0TWlncmF0ZWRNaWdyYXRpb25Gb3JtRW50aXRpZXMoXG4gICAgY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIHdlYmV4VVVJRDogc3RyaW5nLFxuICAgIGZlYXR1cmUgPSAnT1JQSEFORURfREVWSUNFJyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBBUEkuTUlHUkFUSU9OLk1JR1JBVElPTl9GT1JNX0VOVElUSUVTX01JR1JBVEVELnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UuZmV0Y2godXJsLCB7IHdlYmV4VVVJRCwgZmVhdHVyZSB9KTtcbiAgfVxuXG4gIHRyaWdnZXJGaXJtd2FyZVVwZ3JhZGUoXG4gICAgY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1pZ3JhdGlvbkZvcm1JZDogbnVtYmVyLFxuICAgIGRldmljZU1hcDogRmlybXdhcmVEZXZpY2VNYXAsXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5UUklHR0VSX0ZJUk1XQVJFX01JR1JBVElPTlxuICAgICAgLnJlcGxhY2UoJzptaWdyYXRpb25UeXBlJywgJ1dFQkVYJylcbiAgICAgIC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSlcbiAgICAgIC5yZXBsYWNlKCc6bWlncmF0aW9uRm9ybUlkJywgU3RyaW5nKG1pZ3JhdGlvbkZvcm1JZCkpO1xuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5wb3N0KHVybCwgZGV2aWNlTWFwKTtcbiAgfVxuXG4gIHJlbW92ZVVjbUxpY2Vuc2UoXG4gICAgY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1pZ3JhdGlvbkZvcm1JZDogbnVtYmVyLFxuICAgIGNvbnRyb2xIdWJUeXBlID0gJ1dFQkVYJyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBBUEkuTUlHUkFUSU9OLlJFTU9WRV9VQ01fTElDRU5TRVxuICAgICAgLnJlcGxhY2UoJzpjb250cm9sSHViVHlwZScsIGNvbnRyb2xIdWJUeXBlKVxuICAgICAgLnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKVxuICAgICAgLnJlcGxhY2UoJzptaWdyYXRpb25Gb3JtSWQnLCBTdHJpbmcobWlncmF0aW9uRm9ybUlkKSk7XG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QodXJsLCB7fSk7XG4gIH1cblxuICByZXZlcnRNaWdyYXRpb24oY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLCBwZXJzb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBBUEkuTUlHUkFUSU9OLldFQkVYX1JFVkVSVFxuICAgICAgLnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKVxuICAgICAgLnJlcGxhY2UoJzpwZXJzb25JZCcsIHBlcnNvbklkKTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdCh1cmwsIHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW92ZUJvZHkoY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLCBkZXZpY2U6IFdvcmtzcGFjZURldmljZVJlY29yZCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbWVySWQsXG4gICAgICBlbnRpdGllczoge1xuICAgICAgICBPUlBIQU5FRF9ERVZJQ0U6IFt7IGN1Y21JZDogZGV2aWNlLmN1Y21JZCwgZW50aXR5SWQ6IGRldmljZS5uYW1lIH1dLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,105 @@
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 toWorkspace(item, index) {
18
+ const device = item.device;
19
+ const firstDirectoryNumber = device.associatedDNs?.[0]?.directoryNumber ?? '';
20
+ return {
21
+ id: device.pkid || item.workspaceDevices?.[0]?.deviceId || device.name || `workspace-${index}`,
22
+ displayName: device.newName || device.name || 'Unnamed device',
23
+ typeLabel: device.userDeviceType || 'No type',
24
+ capacity: null,
25
+ location: item.site?.name || device.siteName || device.location || '',
26
+ siteId: item.site?.id ?? null,
27
+ devices: (item.workspaceDevices || []).map(workspaceDevice => ({
28
+ id: workspaceDevice.deviceId,
29
+ kind: 'device',
30
+ label: workspaceDevice.model || workspaceDevice.mac,
31
+ model: workspaceDevice.model,
32
+ })),
33
+ scheduling: 'Not set',
34
+ callingLicense: firstDirectoryNumber,
35
+ provisioningType: 'On-premises',
36
+ status: toStatus(device.provisioningStatus),
37
+ statusLabel: device.provisioningStatus || 'Status unavailable',
38
+ device,
39
+ isHybrid: false,
40
+ };
41
+ }
42
+ function mergeDevices(a, b) {
43
+ return {
44
+ ...a,
45
+ ...b,
46
+ cucmId: b.cucmId ?? a.cucmId,
47
+ webexUUID: b.webexUUID ?? a.webexUUID,
48
+ };
49
+ }
50
+ function mergeWorkspacesByDeviceName(workspaces) {
51
+ const merged = new Map();
52
+ for (const workspace of workspaces) {
53
+ const key = withoutSep(workspace.device.name);
54
+ const existing = merged.get(key);
55
+ merged.set(key, existing ? {
56
+ ...existing,
57
+ ...workspace,
58
+ device: mergeDevices(existing.device, workspace.device),
59
+ isHybrid: true,
60
+ } : workspace);
61
+ }
62
+ return Array.from(merged.values());
63
+ }
64
+ const FETCH_ALL_SIZE = 9999;
65
+ export class WorkspacesService {
66
+ constructor(apiService) {
67
+ this.apiService = apiService;
68
+ }
69
+ fetchWorkspaces(customerId) {
70
+ const baseParams = {
71
+ type: 'ORPHAN_DEVICE',
72
+ customerid: customerId.toString(),
73
+ size: FETCH_ALL_SIZE.toString(),
74
+ page: '0',
75
+ };
76
+ const cucm$ = this.apiService.fetch(API.WORKSPACES.GET_ALL, {
77
+ ...baseParams,
78
+ 'device-name': 'SEP',
79
+ provisionType: 'CUCM',
80
+ });
81
+ const webex$ = this.apiService.fetch(API.WORKSPACES.GET_ALL, {
82
+ ...baseParams,
83
+ provisionType: 'WEBEX',
84
+ });
85
+ return forkJoin([cucm$, webex$]).pipe(map(([cucmResponse, webexResponse]) => {
86
+ const cucmParsed = parseResponse(cucmResponse);
87
+ const webexParsed = parseResponse(webexResponse);
88
+ const items = [...(cucmParsed?.pageData || []), ...(webexParsed?.pageData || [])];
89
+ const workspaces = mergeWorkspacesByDeviceName(items.map(toWorkspace));
90
+ return {
91
+ workspaces,
92
+ total: workspaces.length,
93
+ };
94
+ }));
95
+ }
96
+ }
97
+ WorkspacesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesService, deps: [{ token: i1.APIService }], target: i0.ɵɵFactoryTarget.Injectable });
98
+ WorkspacesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesService, providedIn: 'root' });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesService, decorators: [{
100
+ type: Injectable,
101
+ args: [{
102
+ providedIn: 'root'
103
+ }]
104
+ }], ctorParameters: function () { return [{ type: i1.APIService }]; } });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3NlcnZpY2VzL3dvcmtzcGFjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUVyRCxTQUFTLGFBQWEsQ0FBQyxRQUFhO0lBQ2xDLE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLGtCQUFpQztJQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7UUFDdkIsT0FBTyxhQUFhLENBQUM7S0FDdEI7SUFDRCxPQUFPLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDL0UsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsS0FBYTtJQUN6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNCLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFFOUUsT0FBTztRQUNMLEVBQUUsRUFB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QUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtzcGFjZSwgV29ya3NwYWNlTGlzdEl0ZW0sIFdvcmtzcGFjZXNQYWdlLCBXb3Jrc3BhY2VzUmVzcG9uc2UsIFdvcmtzcGFjZVN0YXR1cyB9IGZyb20gJy4uL3R5cGVzL3dvcmtzcGFjZSc7XG5pbXBvcnQgeyB3aXRob3V0U2VwIH0gZnJvbSAnLi4vdXRpbHMvd29ya3NwYWNlLW5hbWUnO1xuXG5mdW5jdGlvbiBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBhbnkge1xuICByZXR1cm4gdHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UocmVzcG9uc2UpIDogcmVzcG9uc2U7XG59XG5cbmZ1bmN0aW9uIHRvU3RhdHVzKHByb3Zpc2lvbmluZ1N0YXR1czogc3RyaW5nIHwgbnVsbCk6IFdvcmtzcGFjZVN0YXR1cyB7XG4gIGlmICghcHJvdmlzaW9uaW5nU3RhdHVzKSB7XG4gICAgcmV0dXJuICd1bmF2YWlsYWJsZSc7XG4gIH1cbiAgcmV0dXJuIHByb3Zpc2lvbmluZ1N0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnYWN0aXZlJyA/ICdhY3RpdmUnIDogJ2luYWN0aXZlJztcbn1cblxuZnVuY3Rpb24gdG9Xb3Jrc3BhY2UoaXRlbTogV29ya3NwYWNlTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIpOiBXb3Jrc3BhY2Uge1xuICBjb25zdCBkZXZpY2UgPSBpdGVtLmRldmljZTtcbiAgY29uc3QgZmlyc3REaXJlY3RvcnlOdW1iZXIgPSBkZXZpY2UuYXNzb2NpYXRlZEROcz8uWzBdPy5kaXJlY3RvcnlOdW1iZXIgPz8gJyc7XG5cbiAgcmV0dXJuIHtcbiAgICBpZDogZGV2aWNlLnBraWQgfHwgaXRlbS53b3Jrc3BhY2VEZXZpY2VzPy5bMF0/LmRldmljZUlkIHx8IGRldmljZS5uYW1lIHx8IGB3b3Jrc3BhY2UtJHtpbmRleH1gLFxuICAgIGRpc3BsYXlOYW1lOiBkZXZpY2UubmV3TmFtZSB8fCBkZXZpY2UubmFtZSB8fCAnVW5uYW1lZCBkZXZpY2UnLFxuICAgIHR5cGVMYWJlbDogZGV2aWNlLnVzZXJEZXZpY2VUeXBlIHx8ICdObyB0eXBlJyxcbiAgICBjYXBhY2l0eTogbnVsbCxcbiAgICBsb2NhdGlvbjogaXRlbS5zaXRlPy5uYW1lIHx8IGRldmljZS5zaXRlTmFtZSB8fCBkZXZpY2UubG9jYXRpb24gfHwgJycsXG4gICAgc2l0ZUlkOiBpdGVtLnNpdGU/LmlkID8/IG51bGwsXG4gICAgZGV2aWNlczogKGl0ZW0ud29ya3NwYWNlRGV2aWNlcyB8fCBbXSkubWFwKHdvcmtzcGFjZURldmljZSA9PiAoe1xuICAgICAgaWQ6IHdvcmtzcGFjZURldmljZS5kZXZpY2VJZCxcbiAgICAgIGtpbmQ6ICdkZXZpY2UnIGFzIGNvbnN0LFxuICAgICAgbGFiZWw6IHdvcmtzcGFjZURldmljZS5tb2RlbCB8fCB3b3Jrc3BhY2VEZXZpY2UubWFjLFxuICAgICAgbW9kZWw6IHdvcmtzcGFjZURldmljZS5tb2RlbCxcbiAgICB9KSksXG4gICAgc2NoZWR1bGluZzogJ05vdCBzZXQnLFxuICAgIGNhbGxpbmdMaWNlbnNlOiBmaXJzdERpcmVjdG9yeU51bWJlcixcbiAgICBwcm92aXNpb25pbmdUeXBlOiAnT24tcHJlbWlzZXMnLFxuICAgIHN0YXR1czogdG9TdGF0dXMoZGV2aWNlLnByb3Zpc2lvbmluZ1N0YXR1cyksXG4gICAgc3RhdHVzTGFiZWw6IGRldmljZS5wcm92aXNpb25pbmdTdGF0dXMgfHwgJ1N0YXR1cyB1bmF2YWlsYWJsZScsXG4gICAgZGV2aWNlLFxuICAgIGlzSHlicmlkOiBmYWxzZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VEZXZpY2VzKGE6IFdvcmtzcGFjZVsnZGV2aWNlJ10sIGI6IFdvcmtzcGFjZVsnZGV2aWNlJ10pOiBXb3Jrc3BhY2VbJ2RldmljZSddIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5hLFxuICAgIC4uLmIsXG4gICAgY3VjbUlkOiBiLmN1Y21JZCA/PyBhLmN1Y21JZCxcbiAgICB3ZWJleFVVSUQ6IGIud2ViZXhVVUlEID8/IGEud2ViZXhVVUlELFxuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZVdvcmtzcGFjZXNCeURldmljZU5hbWUod29ya3NwYWNlczogV29ya3NwYWNlW10pOiBXb3Jrc3BhY2VbXSB7XG4gIGNvbnN0IG1lcmdlZCA9IG5ldyBNYXA8c3RyaW5nLCBXb3Jrc3BhY2U+KCk7XG5cbiAgZm9yIChjb25zdCB3b3Jrc3BhY2Ugb2Ygd29ya3NwYWNlcykge1xuICAgIGNvbnN0IGtleSA9IHdpdGhvdXRTZXAod29ya3NwYWNlLmRldmljZS5uYW1lKTtcbiAgICBjb25zdCBleGlzdGluZyA9IG1lcmdlZC5nZXQoa2V5KTtcbiAgICBtZXJnZWQuc2V0KGtleSwgZXhpc3RpbmcgPyB7XG4gICAgICAuLi5leGlzdGluZyxcbiAgICAgIC4uLndvcmtzcGFjZSxcbiAgICAgIGRldmljZTogbWVyZ2VEZXZpY2VzKGV4aXN0aW5nLmRldmljZSwgd29ya3NwYWNlLmRldmljZSksXG4gICAgICBpc0h5YnJpZDogdHJ1ZSxcbiAgICB9IDogd29ya3NwYWNlKTtcbiAgfVxuXG4gIHJldHVybiBBcnJheS5mcm9tKG1lcmdlZC52YWx1ZXMoKSk7XG59XG5cbmNvbnN0IEZFVENIX0FMTF9TSVpFID0gOTk5OTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UpIHsgfVxuXG4gIGZldGNoV29ya3NwYWNlcyhjdXN0b21lcklkOiBzdHJpbmcgfCBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtzcGFjZXNQYWdlPiB7XG4gICAgY29uc3QgYmFzZVBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHR5cGU6ICdPUlBIQU5fREVWSUNFJyxcbiAgICAgIGN1c3RvbWVyaWQ6IGN1c3RvbWVySWQudG9TdHJpbmcoKSxcbiAgICAgIHNpemU6IEZFVENIX0FMTF9TSVpFLnRvU3RyaW5nKCksXG4gICAgICBwYWdlOiAnMCcsXG4gICAgfTtcblxuICAgIGNvbnN0IGN1Y20kID0gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5XT1JLU1BBQ0VTLkdFVF9BTEwsIHtcbiAgICAgIC4uLmJhc2VQYXJhbXMsXG4gICAgICAnZGV2aWNlLW5hbWUnOiAnU0VQJyxcbiAgICAgIHByb3Zpc2lvblR5cGU6ICdDVUNNJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdlYmV4JCA9IHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuV09SS1NQQUNFUy5HRVRfQUxMLCB7XG4gICAgICAuLi5iYXNlUGFyYW1zLFxuICAgICAgcHJvdmlzaW9uVHlwZTogJ1dFQkVYJyxcbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JrSm9pbihbY3VjbSQsIHdlYmV4JF0pLnBpcGUoXG4gICAgICBtYXAoKFtjdWNtUmVzcG9uc2UsIHdlYmV4UmVzcG9uc2VdKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1Y21QYXJzZWQgPSBwYXJzZVJlc3BvbnNlKGN1Y21SZXNwb25zZSkgYXMgV29ya3NwYWNlc1Jlc3BvbnNlO1xuICAgICAgICBjb25zdCB3ZWJleFBhcnNlZCA9IHBhcnNlUmVzcG9uc2Uod2ViZXhSZXNwb25zZSkgYXMgV29ya3NwYWNlc1Jlc3BvbnNlO1xuICAgICAgICBjb25zdCBpdGVtcyA9IFsuLi4oY3VjbVBhcnNlZD8ucGFnZURhdGEgfHwgW10pLCAuLi4od2ViZXhQYXJzZWQ/LnBhZ2VEYXRhIHx8IFtdKV07XG4gICAgICAgIGNvbnN0IHdvcmtzcGFjZXMgPSBtZXJnZVdvcmtzcGFjZXNCeURldmljZU5hbWUoaXRlbXMubWFwKHRvV29ya3NwYWNlKSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB3b3Jrc3BhY2VzLFxuICAgICAgICAgIHRvdGFsOiB3b3Jrc3BhY2VzLmxlbmd0aCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3R5cGVzL3dvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyRUFBMkU7QUFDM0Usd0VBQXdFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmF3IHNoYXBlcyByZXR1cm5lZCBieSAvYXBpL3NlYXJjaC9xdWlja25vbnVzZXJkZXZpY2VzIChhIHBhZ2luYXRlZCBDVUNNXG4vLyBub24tdXNlci9zaGFyZWQgZGV2aWNlIHNlYXJjaCwgcmV1c2VkIGhlcmUgYXMgdGhlIFwiV29ya3NwYWNlc1wiIGxpc3QpLlxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUFzc29jaWF0ZWREaXJlY3RvcnlOdW1iZXIge1xuICBkaXJlY3RvcnlOdW1iZXI6IHN0cmluZztcbiAgcm91dGVQYXJ0aXRpb25OYW1lOiBzdHJpbmc7XG4gIHBraWQ6IHN0cmluZyB8IG51bGw7XG4gIGRuVHlwZTogc3RyaW5nIHwgbnVsbDtcbiAgc3ViVHlwZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VMaW5lQXNzb2NpYXRpb24ge1xuICBsaW5lUGtpZDogc3RyaW5nIHwgbnVsbDtcbiAgaW5kZXg6IG51bWJlciB8IG51bGw7XG4gIHBvc2l0aW9uOiBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVNpdGUge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlRGV2aWNlQXNzb2NpYXRpb24ge1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICBtYWM6IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5ld05hbWU6IHN0cmluZztcbiAgcGtpZDogc3RyaW5nIHwgbnVsbDtcbiAgZW50aXR5Q2hhbmdlVHlwZTogc3RyaW5nIHwgbnVsbDtcbiAgZGV2aWNlVHlwZTogc3RyaW5nIHwgbnVsbDtcbiAgYWN0aXZlTG9hZElkOiBzdHJpbmcgfCBudWxsO1xuICBhc3NvY2lhdGVkRE5zOiBXb3Jrc3BhY2VBc3NvY2lhdGVkRGlyZWN0b3J5TnVtYmVyW107XG4gIGF1dGhlbnRpY2F0aW9uTW9kZTogc3RyaW5nIHwgbnVsbDtcbiAgYXV0aGVudGljYXRpb25TdHJpbmc6IHN0cmluZyB8IG51bGw7XG4gIGJ1aWx0SW5CcmlkZ2U6IHN0cmluZyB8IG51bGw7XG4gIGJ1c3lMYW1wRmllbGRzOiB1bmtub3duW107XG4gIGJ1dHRvblRlbXBsYXRlOiBzdHJpbmcgfCBudWxsO1xuICBjYWxsaW5nU2VhcmNoU3BhY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBjZXJ0aWZpY2F0ZU9wZXJhdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgY2VydGlmaWNhdGVTdGF0dXM6IHN0cmluZyB8IG51bGw7XG4gIGNoYW5nZWRMaW5lQXBwRW50aXR5OiBzdHJpbmcgfCBudWxsO1xuICBjaGFuZ2VkTWVldE1lRW50aXR5OiBzdHJpbmcgfCBudWxsO1xuICBjb21tb25QaG9uZUNvbmZpZ05hbWU6IHN0cmluZyB8IG51bGw7XG4gIGN0aVJlbW90ZURldmljZTogYm9vbGVhbjtcbiAgY3VjbUlkOiBzdHJpbmcgfCBudWxsO1xuICBjdXN0b21lcklkOiBudW1iZXI7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBkZXZpY2VQb29sTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgZGV2aWNlUmVnU3RhdHVzOiBzdHJpbmcgfCBudWxsO1xuICBkZXZpY2VTZWN1cml0eU1vZGU6IHN0cmluZyB8IG51bGw7XG4gIGVuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eTogYm9vbGVhbjtcbiAgZXhjbHVkZURldmljZUV4dHJhT3B0aW9uczogYm9vbGVhbjtcbiAgZXh0cmFPcHRpb25zOiB1bmtub3duIHwgbnVsbDtcbiAgZmlybXdhcmVWZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xuICBmaXJzdEV4cGFuc2lvbk1vZHVsZTogc3RyaW5nIHwgbnVsbDtcbiAgaW50ZXJjb21MaW5lQXNzb2NpYXRpb25zOiB1bmtub3duW107XG4gIGlwQWRkcmVzczogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdFJlZ1RpbWU6IHN0cmluZyB8IG51bGw7XG4gIGxpbmVBc3NvY2lhdGlvbnM6IFdvcmtzcGFjZUxpbmVBc3NvY2lhdGlvbltdO1xuICBsaW5lczogdW5rbm93bltdO1xuICBsb2NhdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgbWVldE1lRW5hYmxlZDogYm9vbGVhbjtcbiAgbmV0d29ya0xvY2FsZTogc3RyaW5nIHwgbnVsbDtcbiAgb3BlcmF0aW9uQ29tcGxldGVzQnk6IHN0cmluZyB8IG51bGw7XG4gIG93bmVyVXNlcklkOiBzdHJpbmcgfCBudWxsO1xuICBwbGFyRGV2aWNlOiBib29sZWFuO1xuICBwcm90b2NvbDogc3RyaW5nIHwgbnVsbDtcbiAgcHJvdmlzaW9uaW5nU3RhdHVzOiBzdHJpbmcgfCBudWxsO1xuICByZXJvdXRpbmdDc3M6IHN0cmluZyB8IG51bGw7XG4gIHJzYUtleVNpemU6IHN0cmluZyB8IG51bGw7XG4gIHNlY29uZEV4cGFuc2lvbk1vZHVsZTogc3RyaW5nIHwgbnVsbDtcbiAgc2VjdXJpdHlQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xuICBzZWN1cml0eVByb2ZpbGVVdWlkOiBzdHJpbmcgfCBudWxsO1xuICBzZWxlY3RlZERldmljZXNBYXJTZXR0aW5nczogdW5rbm93bltdO1xuICBzZWxlY3RlZERldmljZXNBZGRpdGlvbmFsSW5mb3M6IHVua25vd25bXTtcbiAgc2VsZWN0ZWREZXZpY2VzRG5kU2V0dGluZ3M6IHVua25vd25bXTtcbiAgc2VsZWN0ZWREZXZpY2VzRXh0ZXJuYWxEYXRhTG9jYXRpb25zOiB1bmtub3duW107XG4gIHNlbGVjdGVkRGV2aWNlc0dlbmVyYWxJbmZvczogdW5rbm93bltdO1xuICBzZWxlY3RlZERldmljZXNNZWRpYVNldHRpbmdzOiB1bmtub3duW107XG4gIHNlbGVjdGVkRGV2aWNlc01scHBJbmZvczogdW5rbm93bltdO1xuICBzZWxlY3RlZERldmljZXNOdW1iZXJQcmVzZW50YXRpb25zOiB1bmtub3duW107XG4gIHNlbGVjdGVkRGV2aWNlc1Bob25lU3BlY2lmaWNzOiB1bmtub3duW107XG4gIHNlbGVjdGVkRGV2aWNlc1Byb3RvY29sU3BlY2lmaWNzOiB1bmtub3duW107XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgc2VydmljZXM6IHN0cmluZ1tdO1xuICBzaGFyZWRVc2Vyczogc3RyaW5nW107XG4gIHNpcFByb2ZpbGU6IHN0cmluZyB8IG51bGw7XG4gIHNpdGVJZDogbnVtYmVyO1xuICBzaXRlTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgc29mdGtleVRlbXBsYXRlOiBzdHJpbmcgfCBudWxsO1xuICBzcGVlZERpYWxzOiB1bmtub3duW107XG4gIHN1YnNjcmliZUNhbGxpbmdTZWFyY2hTcGFjZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIHRoaXJkRXhwYW5zaW9uTW9kdWxlOiBzdHJpbmcgfCBudWxsO1xuICB1blN1cHBvcnRlZEZvclNEOiB1bmtub3duIHwgbnVsbDtcbiAgdXNlckRldmljZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJMb2NhbGU6IHN0cmluZyB8IG51bGw7XG4gIHZvaWNlbWFpbEVuYWJsZWQ6IGJvb2xlYW47XG4gIHdlYmV4VVVJRDogc3RyaW5nIHwgbnVsbDtcbiAgd2l0aFVkcDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VMaXN0SXRlbSB7XG4gIGRldmljZTogV29ya3NwYWNlRGV2aWNlUmVjb3JkO1xuICBsaW5lczogdW5rbm93bltdO1xuICBzaXRlOiBXb3Jrc3BhY2VTaXRlIHwgbnVsbDtcbiAgd29ya3NwYWNlRGV2aWNlczogV29ya3NwYWNlRGV2aWNlQXNzb2NpYXRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VzUmVzcG9uc2Uge1xuICB0b3RhbDogbnVtYmVyO1xuICBwYWdlRGF0YTogV29ya3NwYWNlTGlzdEl0ZW1bXTtcbn1cblxuLy8gRGlzcGxheS1mcmllbmRseSBzaGFwZSBjb25zdW1lZCBieSB0aGUgZmlsdGVycy90YWJsZSBjb21wb25lbnRzLlxuXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VTdGF0dXMgPSAnYWN0aXZlJyB8ICdpbmFjdGl2ZScgfCAndW5hdmFpbGFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZURldmljZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGtpbmQ6ICdkZXZpY2UnIHwgJ3BlcnNvbic7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGluaXRpYWxzPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgbW9kZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlc1BhZ2Uge1xuICB3b3Jrc3BhY2VzOiBXb3Jrc3BhY2VbXTtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2Uge1xuICBpZDogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICB0eXBlTGFiZWw6IHN0cmluZztcbiAgY2FwYWNpdHk6IG51bWJlciB8IG51bGw7XG4gIGxvY2F0aW9uOiBzdHJpbmc7XG4gIHNpdGVJZDogbnVtYmVyIHwgbnVsbDtcbiAgZGV2aWNlczogV29ya3NwYWNlRGV2aWNlW107XG4gIHNjaGVkdWxpbmc6IHN0cmluZztcbiAgY2FsbGluZ0xpY2Vuc2U6IHN0cmluZztcbiAgcHJvdmlzaW9uaW5nVHlwZTogc3RyaW5nO1xuICBzdGF0dXM6IFdvcmtzcGFjZVN0YXR1cztcbiAgc3RhdHVzTGFiZWw6IHN0cmluZztcbiAgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQ7XG4gIGlzSHlicmlkOiBib29sZWFuO1xufVxuXG4vLyBXaGljaCBpZGVudGl0eSBhIHdvcmtzcGFjZSBzaG91bGQgYmUgb3BlbmVkL2FkZHJlc3NlZCBieTogdGhlIHBsYWluIFdlYmV4XG4vLyBDYWxsaW5nIGNvbm5lY3Rpb24gKGtleWVkIGJ5IGRldmljZS53ZWJleFVVSUQpIG9yIHRoZSBXZWJleCBDYWxsaW5nIERJIC9cbi8vIG9uLXByZW0gY29ubmVjdGlvbiAoa2V5ZWQgYnkgZGV2aWNlLm5hbWUpLiBBIGh5YnJpZCB3b3Jrc3BhY2UgaGFzIGJvdGggYW5kXG4vLyB0aGUgY2FsbGVyIHBpY2tzIHdoaWNoIG9uZSB0aGV5IGNsaWNrZWQ7IGEgbm9uLWh5YnJpZCB3b3Jrc3BhY2Ugb25seSBldmVyXG4vLyBoYXMgb25lIG9mIHRoZSB0d28gc2V0LlxuZXhwb3J0IHR5cGUgV29ya3NwYWNlQ29ubmVjdGlvblR5cGUgPSAnd2ViZXgnIHwgJ2RpJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VPcGVuRXZlbnQge1xuICBpZDogc3RyaW5nO1xuICBjb25uZWN0aW9uVHlwZTogV29ya3NwYWNlQ29ubmVjdGlvblR5cGU7XG59XG5cbi8vIE1vY2sgZGF0YSBzaG93biBvbiB0aGUgd29ya3NwYWNlIGRldGFpbCAoT3ZlcnZpZXcgLyBDYWxsaW5nKSB2aWV3LCB1bnRpbCBhXG4vLyBkZWRpY2F0ZWQgZGV0YWlsIEFQSSBpcyBhdmFpbGFibGUuXG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlSXNzdWUge1xuICBpZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBhY3Rpb25MYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUxvY2F0aW9uRGV0YWlscyB7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUNhbGxpbmdEZXRhaWxzIHtcbiAgbGljZW5zZTogc3RyaW5nO1xuICBzaXBBZGRyZXNzOiBzdHJpbmc7XG4gIGRpcmVjdG9yeU51bWJlcjogc3RyaW5nO1xuICByb3V0ZVBhcnRpdGlvbjogc3RyaW5nO1xuICBjYWxsaW5nU2VhcmNoU3BhY2U6IHN0cmluZztcbiAgc2VjdXJpdHlQcm9maWxlOiBzdHJpbmc7XG4gIGV4dGVybmFsQ2FsbGVySWROYW1lPzogc3RyaW5nO1xuICBleHRlcm5hbENhbGxlcklkTnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZURldGFpbHMge1xuICBpc3N1ZXM6IFdvcmtzcGFjZUlzc3VlW107XG4gIGxvY2F0aW9uOiBXb3Jrc3BhY2VMb2NhdGlvbkRldGFpbHM7XG4gIGNhbGxpbmc6IFdvcmtzcGFjZUNhbGxpbmdEZXRhaWxzO1xuICBzY2hlZHVsaW5nQ29uZmlndXJlZDogYm9vbGVhbjtcbiAgcGxhbm5lZE1haW50ZW5hbmNlRW5hYmxlZDogYm9vbGVhbjtcbiAgbm90ZXM6IHN0cmluZyB8IG51bGw7XG4gIGNhcGFjaXR5PzogbnVtYmVyIHwgbnVsbDtcbn1cblxuLy8gUmF3IHNoYXBlcyByZXR1cm5lZCBieSB0aGUgV2ViZXggQ2FsbGluZyB3b3Jrc3BhY2UtZGV0YWlsIGVuZHBvaW50c1xuLy8gKEFQSS5ERVRBSUxTLldFQkVYLldPUktTUEFDRSAvIE5VTUJFUlMgLyBDQUxMRVJJRCkuXG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhXb3Jrc3BhY2VEZXZpY2VTdW1tYXJ5IHtcbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgbWFjOiBzdHJpbmc7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHJlZ2lzdGVyZWQ6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhXb3Jrc3BhY2VEZXRhaWxzUmVzcG9uc2Uge1xuICBjdXN0b21lcklkOiBudW1iZXI7XG4gIGNhcGFjaXR5OiBudW1iZXIgfCBudWxsO1xuICBkZXZpY2VzOiBXZWJleFdvcmtzcGFjZURldmljZVN1bW1hcnlbXTtcbiAgZXh0ZW5zaW9uczogc3RyaW5nW107XG4gIGxpY2Vuc2VOYW1lOiBzdHJpbmc7XG4gIGxvY2F0aW9uSWQ6IHN0cmluZztcbiAgbG9jYXRpb25OYW1lOiBzdHJpbmc7XG4gIHNpcEFkZHJlc3M6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICB3b3Jrc3BhY2VJZDogc3RyaW5nO1xuICB3b3Jrc3BhY2VOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhOdW1iZXJMb2NhdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgYWRkcmVzczogc3RyaW5nIHwgbnVsbDtcbiAgYW5ub3VuY2VtZW50TGFuZ3VhZ2U6IHN0cmluZyB8IG51bGw7XG4gIGNpdHk6IHN0cmluZyB8IG51bGw7XG4gIGNvdW50cnk6IHN0cmluZyB8IG51bGw7XG4gIGVtYWlsTGFuZ3VhZ2U6IHN0cmluZyB8IG51bGw7XG4gIHBvc3RhbENvZGU6IHN0cmluZyB8IG51bGw7XG4gIHByZWZlcnJlZExhbmd1YWdlOiBzdHJpbmcgfCBudWxsO1xuICBzdGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgdGltZVpvbmU6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhOdW1iZXJPcmdhbml6YXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhQaG9uZU51bWJlciB7XG4gIGVzbjogc3RyaW5nIHwgbnVsbDtcbiAgZXh0ZW5zaW9uOiBzdHJpbmcgfCBudWxsO1xuICBleHRlcm5hbDogc3RyaW5nIHwgbnVsbDtcbiAgcHJpbWFyeTogYm9vbGVhbjtcbiAgd29ya3NwYWNlPzogeyBpZDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhOdW1iZXJzUmVzcG9uc2Uge1xuICBwaG9uZU51bWJlcnM6IFdlYmV4UGhvbmVOdW1iZXJbXTtcbiAgbG9jYXRpb246IFdlYmV4TnVtYmVyTG9jYXRpb247XG4gIG9yZ2FuaXphdGlvbjogV2ViZXhOdW1iZXJPcmdhbml6YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViZXhDYWxsZXJJZFJlc3BvbnNlIHtcbiAgdHlwZXM6IHN0cmluZ1tdO1xuICBzZWxlY3RlZDogc3RyaW5nO1xuICBibG9ja0luRm9yd2FyZENhbGxzRW5hYmxlZDogYm9vbGVhbjtcbiAgY3VzdG9tRXh0ZXJuYWxDYWxsZXJJZE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGN1c3RvbU51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgY3VzdG9tZXJOdW1iZXI6IHN0cmluZyB8IG51bGw7XG4gIGRpcmVjdE51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgZGlzcGxheURldGFpbDogc3RyaW5nIHwgbnVsbDtcbiAgZGlzcGxheU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGV4dGVybmFsQ2FsbGVySWROYW1lUG9saWN5OiBzdHJpbmcgfCBudWxsO1xuICBsb2NhdGlvbkV4dGVybmFsQ2FsbGVySWROYW1lOiBzdHJpbmcgfCBudWxsO1xuICBsb2NhdGlvbk51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgdG9sbEZyZWVMb2NhdGlvbk51bWJlcjogYm9vbGVhbjtcbn1cblxuLy8gUmF3IHNoYXBlcyByZXR1cm5lZCBieSB0aGUgQ1VDTSB3b3Jrc3BhY2UtZGV0YWlsIGVuZHBvaW50c1xuLy8gKEFQSS5ERVRBSUxTLkNVQ00uV09SS1NQQUNFIC8gU0lURSkuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbUNhbGxJbmZvRGlzcGxheSB7XG4gIGNhbGxlck5hbWU6IHN0cmluZztcbiAgY2FsbGVyTnVtYmVyOiBzdHJpbmc7XG4gIHJlZGlyZWN0ZWROdW1iZXI6IHN0cmluZztcbiAgZGlhbGVkTnVtYmVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbUxpbmVBc3NvY2lhdGlvbiB7XG4gIGxpbmVQa2lkOiBzdHJpbmcgfCBudWxsO1xuICBpbmRleDogbnVtYmVyIHwgbnVsbDtcbiAgcG9zaXRpb246IG51bWJlciB8IG51bGw7XG4gIGRpcmVjdG9yeU51bWJlcjogV29ya3NwYWNlQXNzb2NpYXRlZERpcmVjdG9yeU51bWJlcjtcbiAgZTE2NE1hc2s6IHN0cmluZyB8IG51bGw7XG4gIHRleHRMYWJlbDogc3RyaW5nIHwgbnVsbDtcbiAgZGlzcGxheUxhYmVsOiBzdHJpbmcgfCBudWxsO1xuICBkaXNwbGF5TGFiZWxBc2NpaTogc3RyaW5nIHwgbnVsbDtcbiAgbWF4TnVtYmVyT2ZDYWxsczogbnVtYmVyIHwgbnVsbDtcbiAgYnVzeVRyaWdnZXI6IG51bWJlciB8IG51bGw7XG4gIHJlY29yZGluZ09wdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgcmVjb3JkaW5nUHJvZmlsZTogc3RyaW5nIHwgbnVsbDtcbiAgcmVjb3JkaW5nTWVkaWFTb3VyY2U6IHN0cmluZyB8IG51bGw7XG4gIHZpc3VhbE1XSTogc3RyaW5nIHwgbnVsbDtcbiAgYXVkaWJsZU1XSTogc3RyaW5nIHwgbnVsbDtcbiAgcmluZ1NldHRpbmdfaWRsZTogc3RyaW5nIHwgbnVsbDtcbiAgcmluZ1NldHRpbmdfYWN0aXZlOiBzdHJpbmcgfCBudWxsO1xuICBwaWNrdXBBQVNfaWRsZTogc3RyaW5nIHwgbnVsbDtcbiAgcGlja3VwQUFTX2FjdGl2ZTogc3RyaW5nIHwgbnVsbDtcbiAgbW9uaXRvckNTUzogc3RyaW5nIHwgbnVsbDtcbiAgbG9nTWlzc2VkQ2FsbDogc3RyaW5nIHwgbnVsbDtcbiAgY2FsbEluZm9EaXNwbGF5OiBDdWNtQ2FsbEluZm9EaXNwbGF5O1xuICBsaW5lTG9jYWxJZDogc3RyaW5nIHwgbnVsbDtcbiAgZGlkUGF0dGVybjogdW5rbm93biB8IG51bGw7XG4gIHNoYXJlZERldmljZXM6IHVua25vd25bXTtcbiAgc2hhcmVkVXNlcnM6IHVua25vd25bXTtcbiAgb3duZXJVc2VySWQ6IHVua25vd25bXTtcbiAgYXNzb2NpYXRlZDogdW5rbm93biB8IG51bGw7XG4gIHBhdHRlcm5Vc2FnZTogdW5rbm93biB8IG51bGw7XG4gIGFsZXJ0aW5nTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcG9wdWxhdGVXaXRoRGlkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21TZXJ2aWNlIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0ZWxlY2FzdGVyU2VydmljZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWNtRGV2aWNlRGV0YWlscyBleHRlbmRzIE9taXQ8V29ya3NwYWNlRGV2aWNlUmVjb3JkLCAnbGluZUFzc29jaWF0aW9ucycgfCAnc2VydmljZXMnPiB7XG4gIGxpbmVBc3NvY2lhdGlvbnM6IEN1Y21MaW5lQXNzb2NpYXRpb25bXTtcbiAgc2VydmljZXM6IEN1Y21TZXJ2aWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbUNhbGxGb3J3YXJkU2V0dGluZyB7XG4gIGZvcndhcmRUb1ZvaWNlTWFpbDogYm9vbGVhbiB8IG51bGw7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBjYWxsaW5nU2VhcmNoU3BhY2U6IHN0cmluZyB8IG51bGw7XG4gIGR1cmF0aW9uOiBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21BYXJTZXR0aW5ncyB7XG4gIGFhckRlc3RpbmF0aW9uTWFzazogc3RyaW5nIHwgbnVsbDtcbiAgYWFyR3JvdXA6IHN0cmluZyB8IG51bGw7XG4gIGFhclZvaWNlTWFpbEVuYWJsZWQ6IGJvb2xlYW47XG4gIGFhcktlZXBDYWxsSGlzdG9yeTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWNtUGFya01vbml0b3Jpbmcge1xuICBkZXN0aW5hdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgY2FsbGluZ1NlYXJjaFNwYWNlOiBzdHJpbmcgfCBudWxsO1xuICB2b2ljZU1haWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbURpZFBhdHRlcm4ge1xuICBwa2lkOiBzdHJpbmcgfCBudWxsO1xuICBwYXR0ZXJuOiBzdHJpbmcgfCBudWxsO1xuICBuZXdQYXR0ZXJuOiBzdHJpbmcgfCBudWxsO1xuICBjYWxsZWRQYXJ0eVRyYW5zZm9ybWF0aW9uTWFzazogc3RyaW5nIHwgbnVsbDtcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIHVzZU9yaWdpbmF0b3JDc3M6IHVua25vd24gfCBudWxsO1xuICBjYWxsaW5nU2VhcmNoU3BhY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xuICByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZyB8IG51bGw7XG4gIG5ld1JvdXRlUGFydGl0aW9uTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgdXJnZW50UHJpb3JpdHk6IGJvb2xlYW47XG4gIG91dGdvaW5nQ2FsbHM6IHVua25vd24gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21MaW5lRGV0YWlscyB7XG4gIGRpcmVjdG9yeU51bWJlcjogV29ya3NwYWNlQXNzb2NpYXRlZERpcmVjdG9yeU51bWJlcjtcbiAgcGtpZDogc3RyaW5nIHwgbnVsbDtcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGVudGl0eUNoYW5nZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIGFsZXJ0aW5nTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXNjaWlBbGVydGluZ05hbWU6IHN0cmluZyB8IG51bGw7XG4gIGNhbGxpbmdTZWFyY2hTcGFjZTogc3RyaW5nIHwgbnVsbDtcbiAgY2FsbEZvcndhcmRBbGw6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XG4gIGNhbGxGb3J3YXJkQWxsU2Vjb25kYXJ5Q1NTOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xuICBjYWxsRm9yd2FyZEJ1c3lJbnRlcm5hbDogQ3VjbUNhbGxGb3J3YXJkU2V0dGluZztcbiAgY2FsbEZvcndhcmRCdXN5RXh0ZXJuYWw6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XG4gIGNhbGxGb3J3YXJkTm9BbnN3ZXJJbnRlcm5hbDogQ3VjbUNhbGxGb3J3YXJkU2V0dGluZztcbiAgY2FsbEZvcndhcmROb0Fuc3dlckV4dGVybmFsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xuICBjYWxsRm9yd2FyZE5vQ292ZXJhZ2VJbnRlcm5hbDogQ3VjbUNhbGxGb3J3YXJkU2V0dGluZztcbiAgY2FsbEZvcndhcmROb0NvdmVyYWdlRXh0ZXJuYWw6IEN1Y21DYWxsRm9yd2FyZFNldHRpbmc7XG4gIGNhbGxGb3J3YXJkT25DVElGYWlsdXJlOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xuICBjYWxsRm9yd2FyZFVucmVnaXN0ZXJlZEludGVybmFsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xuICBjYWxsRm9yd2FyZFVucmVnaXN0ZXJlZEV4dGVybmFsOiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xuICBjYWxsRm9yd2FyZEFsdGVybmF0ZVBhcnR5OiBDdWNtQ2FsbEZvcndhcmRTZXR0aW5nO1xuICB2b2ljZU1haWxQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xuICBub0Fuc3dlclJpbmdEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgYXV0b0Fuc3dlcjogc3RyaW5nIHwgbnVsbDtcbiAgY2FsbFBpY2t1cEdyb3VwOiBzdHJpbmcgfCBudWxsO1xuICBhYXJTZXR0aW5nczogQ3VjbUFhclNldHRpbmdzO1xuICBwYXJrTW9uaXRvcmluZ0ludGVybmFsOiBDdWNtUGFya01vbml0b3Jpbmc7XG4gIHBhcmtNb25pdG9yaW5nRXh0ZXJuYWw6IEN1Y21QYXJrTW9uaXRvcmluZztcbiAgdXJnZW50UHJpb3JpdHk6IGJvb2xlYW47XG4gIGJsZlByZXNlbmNlR3JvdXA6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJIb2xkTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcbiAgdXNlckhvbGRNT0hBdWRpb1NvdXJjZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIG5ldHdvcmtNT0hBdWRpb1NvdXJjZUlkOiBzdHJpbmcgfCBudWxsO1xuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xuICByZWplY3RBbm9ueW1vdXNDYWxsOiBib29sZWFuO1xuICBlbnRlcnByaXNlQWx0TnVtOiB1bmtub3duIHwgbnVsbDtcbiAgZTE2NEFsdE51bTogdW5rbm93biB8IG51bGw7XG4gIGRpcmVjdG9yeVVyaXM6IHVua25vd25bXTtcbiAgbWxwcE5vQW5zd2VyUmluZ0R1cmF0aW9uOiBudW1iZXIgfCBudWxsO1xuICBjb25maWRlbnRpYWxBY2Nlc3NNb2RlOiB1bmtub3duIHwgbnVsbDtcbiAgY29uZmlkZW50aWFsQWNjZXNzTGV2ZWw6IHVua25vd24gfCBudWxsO1xuICBjb25maWRlbnRpYWxBY2Nlc3NMZXZlbE5hbWU6IHVua25vd24gfCBudWxsO1xuICBjYWxsQ29udHJvbEFnZW50UHJvZmlsZTogdW5rbm93biB8IG51bGw7XG4gIGhvbGRSZXZlcnNpb25SaW5nRHVyYXRpb246IG51bWJlciB8IG51bGw7XG4gIGhvbGRSZXZlcnNpb25Ob3RpZmljYXRpb25JbnRlcnZhbDogbnVtYmVyIHwgbnVsbDtcbiAgcGFydHlFbnRyYW5jZVRvbmU6IHN0cmluZyB8IG51bGw7XG4gIHBzdG5GYWlsb3Zlcjogc3RyaW5nIHwgbnVsbDtcbiAgbG9jYWxJZDogc3RyaW5nIHwgbnVsbDtcbiAgY3VzdG9tZXJJZDogbnVtYmVyO1xuICBjdWNtSWQ6IG51bWJlcjtcbiAgc2l0ZUlkOiBudW1iZXI7XG4gIHNpdGVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBsb2NhdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgbG9jYXRpb25OYW1lczogc3RyaW5nW107XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgZGlkUGF0dGVybnM6IEN1Y21EaWRQYXR0ZXJuW107XG4gIG1hcHBlZERpZHM6IHN0cmluZ1tdO1xuICBzZWxlY3RlZExpbmVzR2VuZXJhbFNldHRpbmdzOiB1bmtub3duW107XG4gIHNlbGVjdGVkTGluZXNBc3NvY2lhdGVkU2V0dGluZ3M6IHVua25vd25bXTtcbiAgc2VsZWN0ZWRMaW5lc011bHRpcGxlQ2FsbHM6IHVua25vd25bXTtcbiAgc2VsZWN0ZWRMaW5lc0NhbGxSZWNvcmRpbmdzOiB1bmtub3duW107XG4gIHNlbGVjdGVkTGluZXNBZGRpdGlvbmFsU2V0dGluZ3M6IHVua25vd25bXTtcbiAgc2VsZWN0ZWRMaW5lc0ZvcndhcmRDYWxsczogdW5rbm93bltdO1xuICBuZXdUb1VzZXI6IGJvb2xlYW47XG4gIHBsYXJEZXN0aW5hdGlvbk51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgcHJlZml4RGlnaXRzOiBzdHJpbmcgfCBudWxsO1xuICBwbGFyRGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIHBsYXJDc3M6IHN0cmluZyB8IG51bGw7XG4gIHBsYXJSb3V0ZVBhcnRpdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgcGxhckVuYWJsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbVdvcmtzcGFjZURldGFpbHNSZXNwb25zZSB7XG4gIGRldmljZTogQ3VjbURldmljZURldGFpbHM7XG4gIGxpbmVzOiBDdWNtTGluZURldGFpbHNbXTtcbiAgc2l0ZTogV29ya3NwYWNlU2l0ZSB8IG51bGw7XG4gIHdvcmtzcGFjZURldmljZXM6IFdvcmtzcGFjZURldmljZUFzc29jaWF0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VjbVNpdGVDdWNJbmZvIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21TaXRlQ3VjbUluZm8ge1xuICBwbGF0Zm9ybVR5cGU6IHN0cmluZztcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1Y21TaXRlUmVzcG9uc2Uge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBhZGRyZXNzMjogc3RyaW5nIHwgbnVsbDtcbiAgYWRkcmVzczM6IHN0cmluZyB8IG51bGw7XG4gIGNvdW50cnk6IHN0cmluZyB8IG51bGw7XG4gIGN1YzogQ3VjbVNpdGVDdWNJbmZvIHwgbnVsbDtcbiAgY3VjbTogQ3VjbVNpdGVDdWNtSW5mbyB8IG51bGw7XG4gIGhhc0FjdGl2YXRlZDogYm9vbGVhbjtcbiAgaHFTdGF0dXM6IGJvb2xlYW47XG4gIGlzQWZ0ZXJUdHU6IGJvb2xlYW47XG4gIGxvY2F0aW9uTmFtZTogc3RyaW5nO1xuICBwcmVmZXRjaERuOiBib29sZWFuO1xuICBzZXR0aW5nczogdW5rbm93bltdO1xuICBzdGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgdGltZXpvbmU6IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
@@ -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\">\n <mat-progress-spinner\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"70\"\n strokeWidth=\"3\"></mat-progress-spinner>\n</div>\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\">\n <mat-progress-spinner\n class=\"page-spinner\"\n mode=\"indeterminate\"\n [diameter]=\"70\"\n strokeWidth=\"3\"></mat-progress-spinner>\n</div>\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy93b3Jrc3BhY2VzL3NyYy91dGlscy9hcHAtbG9hZGVyL2FwcC1sb2FkZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvYXBwLWxvYWRlci9hcHAtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVE3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCO0lBQ0EsQ0FBQzs7Z0hBRlUsa0JBQWtCO29HQUFsQixrQkFBa0Isa0RDUi9CLDBMQU9BOzRGRENhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2FkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1sb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwTG9hZGVyQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm92ZXJsYXlcIj5cbiAgPG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gICAgY2xhc3M9XCJwYWdlLXNwaW5uZXJcIlxuICAgIG1vZGU9XCJpbmRldGVybWluYXRlXCJcbiAgICBbZGlhbWV0ZXJdPVwiNzBcIlxuICAgIHN0cm9rZVdpZHRoPVwiM1wiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG48L2Rpdj5cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvZGV2aWNlLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxtQkFBbUIsR0FBRyw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLGtCQUFrQixHQUEyQjtJQUNqRCxZQUFZLEVBQUUsNkJBQTZCO0lBQzNDLFlBQVksRUFBRSw2QkFBNkI7SUFDM0MsWUFBWSxFQUFFLDZCQUE2QjtDQUM1QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFjO0lBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLG1CQUFtQixDQUFDO0tBQzVCO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgREVGQVVMVF9ERVZJQ0VfSUNPTiA9ICdhc3NldHMvaWNvbnMvY2lzY29fODg1MS5wbmcnO1xuXG5jb25zdCBERVZJQ0VfTU9ERUxfSUNPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdjaXNjbyA4ODUxJzogJ2Fzc2V0cy9pY29ucy9jaXNjb184ODUxLnBuZycsXG4gICdjaXNjbyA4ODQ1JzogJ2Fzc2V0cy9pY29ucy9jaXNjb184ODQ1LnBuZycsXG4gICdjaXNjbyA5ODQxJzogJ2Fzc2V0cy9pY29ucy9jaXNjb185ODQxLnBuZycsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGV2aWNlSWNvbihtb2RlbD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghbW9kZWwpIHtcbiAgICByZXR1cm4gREVGQVVMVF9ERVZJQ0VfSUNPTjtcbiAgfVxuICByZXR1cm4gREVWSUNFX01PREVMX0lDT05TW21vZGVsLnRyaW0oKS50b0xvd2VyQ2FzZSgpXSA/PyBERUZBVUxUX0RFVklDRV9JQ09OO1xufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvd29ya3NwYWNlLW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUZBQWlGO0FBQ2pGLHdFQUF3RTtBQUN4RSw4RUFBOEU7QUFDOUUsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENVQ00gYW5kIFdlYmV4IENhbGxpbmcgZGV2aWNlIG5hbWVzIGZvciB0aGUgc2FtZSBwaHlzaWNhbCB3b3Jrc3BhY2UgY2FuIGRpZmZlclxuLy8gb25seSBieSB0aGUgJ1NFUCcgc3Vic3RyaW5nIChDaXNjbydzIE1BQy1iYXNlZCBkZXZpY2UgbmFtaW5nIGZvciBDVUNNXG4vLyBlbmRwb2ludHMpLiBDb21wYXJpbmcvcmVuZGVyaW5nIHdpdGggaXQgc3RyaXBwZWQgaXMgaG93IHRoZSB0d28gZ2V0IHRyZWF0ZWRcbi8vIGFzIG9uZSB3b3Jrc3BhY2UsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIHVuZGVybHlpbmcgZGV2aWNlIG5hbWUgZGF0YS5cbmV4cG9ydCBmdW5jdGlvbiB3aXRob3V0U2VwKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lLnRvTG9jYWxlVXBwZXJDYXNlKCkucmVwbGFjZSgvU0VQL2dpLCAnJyk7XG59XG4iXX0=