@tuki-io/tuki-widgets 0.0.219-dev.45 → 0.0.219-dev.46

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 (212) hide show
  1. package/README.md +24 -24
  2. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
  3. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
  4. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
  5. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
  6. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
  7. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
  8. package/esm2020/lib/widgets.component.mjs +9 -9
  9. package/esm2020/lib/widgets.module.mjs +1 -1
  10. package/esm2020/lib/widgets.service.mjs +1 -1
  11. package/esm2020/locations/public-api.mjs +1 -1
  12. package/esm2020/locations/src/app.constants.mjs +1 -1
  13. package/esm2020/locations/src/location-confirm-dialog/location-confirm-dialog.component.mjs +3 -3
  14. package/esm2020/locations/src/locations.component.mjs +6 -6
  15. package/esm2020/locations/src/locations.module.mjs +1 -1
  16. package/esm2020/locations/src/material.module.mjs +1 -1
  17. package/esm2020/locations/src/services/api.service.mjs +1 -1
  18. package/esm2020/locations/src/services/locations.service.mjs +1 -3
  19. package/esm2020/locations/src/types/location.mjs +1 -1
  20. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +3 -3
  21. package/esm2020/meetings/src/app.constants.mjs +1 -1
  22. package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +3 -3
  23. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +3 -3
  24. package/esm2020/meetings/src/meetings.component.mjs +3 -3
  25. package/esm2020/meetings/src/meetings.module.mjs +1 -1
  26. package/esm2020/meetings/src/services/live-meetings.service.mjs +1 -1
  27. package/esm2020/meetings/src/services/meeting-spaces.service.mjs +1 -1
  28. package/esm2020/meetings/src/types/live-meeting.mjs +1 -1
  29. package/esm2020/meetings/src/types/meeting-space.mjs +1 -1
  30. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +3 -3
  31. package/esm2020/public-api.mjs +1 -1
  32. package/esm2020/user-creation/src/app.constants.mjs +1 -1
  33. package/esm2020/user-creation/src/classes/notification.mjs +1 -1
  34. package/esm2020/user-creation/src/classes/site.mjs +1 -1
  35. package/esm2020/user-creation/src/environments/environment.mjs +1 -1
  36. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +1 -1
  37. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +3 -3
  38. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +1 -1
  39. package/esm2020/user-creation/src/shared/services/notification.service.mjs +1 -1
  40. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +1 -1
  41. package/esm2020/user-creation/src/shared/services/utils.mjs +1 -1
  42. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +3 -3
  43. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +1 -1
  44. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +1 -1
  45. package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +1 -1
  46. package/esm2020/user-creation/src/utils/device-name-validation.mjs +1 -1
  47. package/esm2020/user-creation/src/utils/model.mjs +1 -1
  48. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +1 -1
  49. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +3 -3
  50. package/esm2020/user-device-manage/public-api.mjs +1 -1
  51. package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
  52. package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
  53. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  54. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +1 -1
  55. package/esm2020/user-device-manage/src/classes/line-association.mjs +1 -1
  56. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +1 -1
  57. package/esm2020/user-device-manage/src/classes/line-directory.mjs +1 -1
  58. package/esm2020/user-device-manage/src/classes/line.mjs +1 -1
  59. package/esm2020/user-device-manage/src/classes/notification.mjs +1 -1
  60. package/esm2020/user-device-manage/src/classes/recording-options.mjs +1 -1
  61. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  62. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +1 -1
  63. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +1 -1
  64. package/esm2020/user-device-manage/src/classes/types.mjs +1 -1
  65. package/esm2020/user-device-manage/src/common-functions.mjs +1 -1
  66. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +3 -3
  67. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +3 -3
  68. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +3 -3
  69. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +3 -3
  70. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +1 -1
  71. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
  72. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +2 -2
  73. package/esm2020/user-device-manage/src/environments/environment.mjs +1 -1
  74. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +1 -1
  75. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  76. package/esm2020/user-device-manage/src/material.module.mjs +1 -1
  77. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +3 -3
  78. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
  79. package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
  80. package/esm2020/user-device-manage/src/services/device.service.mjs +1 -1
  81. package/esm2020/user-device-manage/src/services/dns.service.mjs +1 -1
  82. package/esm2020/user-device-manage/src/services/line.service.mjs +1 -1
  83. package/esm2020/user-device-manage/src/services/notification.service.mjs +1 -1
  84. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  85. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +1 -1
  86. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +1 -1
  87. package/esm2020/user-device-manage/src/services/user.service.mjs +1 -1
  88. package/esm2020/user-device-manage/src/services/utils.service.mjs +1 -1
  89. package/esm2020/user-device-manage/src/services/validation.service.mjs +1 -1
  90. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
  91. package/esm2020/user-manage/public-api.mjs +1 -1
  92. package/esm2020/user-manage/src/app.constants.mjs +1 -1
  93. package/esm2020/user-manage/src/classes/device.mjs +1 -1
  94. package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
  95. package/esm2020/user-manage/src/classes/line-association.mjs +1 -1
  96. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +1 -1
  97. package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
  98. package/esm2020/user-manage/src/classes/line.mjs +1 -1
  99. package/esm2020/user-manage/src/classes/notification.mjs +1 -1
  100. package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
  101. package/esm2020/user-manage/src/classes/recording-options.mjs +1 -1
  102. package/esm2020/user-manage/src/classes/simplified-user.mjs +1 -1
  103. package/esm2020/user-manage/src/classes/table-data.mjs +1 -1
  104. package/esm2020/user-manage/src/classes/translation-pattern.mjs +1 -1
  105. package/esm2020/user-manage/src/classes/user-list.mjs +1 -1
  106. package/esm2020/user-manage/src/common-functions.mjs +1 -1
  107. package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
  108. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
  109. package/esm2020/user-manage/src/environments/environment.mjs +1 -1
  110. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +1 -1
  111. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  112. package/esm2020/user-manage/src/material.module.mjs +1 -1
  113. package/esm2020/user-manage/src/notifications/notification.component.mjs +3 -3
  114. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +1 -1
  115. package/esm2020/user-manage/src/services/api.service.mjs +1 -1
  116. package/esm2020/user-manage/src/services/dcp-api.service.mjs +1 -1
  117. package/esm2020/user-manage/src/services/dns.service.mjs +1 -1
  118. package/esm2020/user-manage/src/services/line.service.mjs +1 -1
  119. package/esm2020/user-manage/src/services/notification.service.mjs +1 -1
  120. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  121. package/esm2020/user-manage/src/services/site-settings.service.mjs +1 -1
  122. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +1 -1
  123. package/esm2020/user-manage/src/services/user.service.mjs +1 -1
  124. package/esm2020/user-manage/src/services/utils.service.mjs +1 -1
  125. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +3 -3
  126. package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
  127. package/esm2020/user-manage/src/user-manage-widget.component.mjs +2 -2
  128. package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
  129. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
  130. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +3 -3
  131. package/esm2020/users-list/public-api.mjs +1 -1
  132. package/esm2020/users-list/src/app.constants.mjs +1 -1
  133. package/esm2020/users-list/src/classes/app-location.mjs +1 -1
  134. package/esm2020/users-list/src/classes/device.mjs +1 -1
  135. package/esm2020/users-list/src/classes/line.mjs +1 -1
  136. package/esm2020/users-list/src/classes/move-user.mjs +1 -1
  137. package/esm2020/users-list/src/classes/notification.mjs +1 -1
  138. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  139. package/esm2020/users-list/src/classes/table-data.mjs +1 -1
  140. package/esm2020/users-list/src/classes/user-list.mjs +1 -1
  141. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +3 -3
  142. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +3 -3
  143. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +3 -3
  144. package/esm2020/users-list/src/services/api-webex.service.mjs +1 -1
  145. package/esm2020/users-list/src/services/api.service.mjs +1 -1
  146. package/esm2020/users-list/src/services/dns.service.mjs +1 -1
  147. package/esm2020/users-list/src/services/events-communication.service.mjs +1 -1
  148. package/esm2020/users-list/src/services/notification.service.mjs +1 -1
  149. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +1 -1
  150. package/esm2020/users-list/src/services/site-settings.service.mjs +1 -1
  151. package/esm2020/users-list/src/services/user.service.mjs +1 -1
  152. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +3 -3
  153. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
  154. package/esm2020/users-list/src/utils/common-functions.mjs +1 -1
  155. package/esm2020/users-list/src/utils/notifications/notification.component.mjs +3 -3
  156. package/esm2020/users-list/src/utils/utils.service.mjs +1 -1
  157. package/esm2020/workspaces/public-api.mjs +1 -1
  158. package/esm2020/workspaces/src/app.constants.mjs +1 -1
  159. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +3 -3
  160. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +3 -3
  161. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +3 -3
  162. package/esm2020/workspaces/src/material.module.mjs +1 -1
  163. package/esm2020/workspaces/src/services/api.service.mjs +1 -1
  164. package/esm2020/workspaces/src/services/workspace-detail.service.mjs +1 -1
  165. package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +1 -1
  166. package/esm2020/workspaces/src/services/workspaces.service.mjs +1 -1
  167. package/esm2020/workspaces/src/types/workspace.mjs +1 -1
  168. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +3 -3
  169. package/esm2020/workspaces/src/utils/device-icon.mjs +1 -1
  170. package/esm2020/workspaces/src/workspaces.component.mjs +8 -8
  171. package/esm2020/workspaces/src/workspaces.module.mjs +1 -1
  172. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  173. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  174. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  175. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  176. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +9 -11
  177. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -1
  178. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +8 -8
  179. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -1
  180. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +6 -6
  181. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  182. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
  183. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  184. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +18 -18
  185. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  186. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +12 -12
  187. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  188. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +15 -15
  189. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
  190. package/fesm2015/tuki-io-tuki-widgets.mjs +8 -8
  191. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -1
  192. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  193. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  194. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  195. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  196. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +9 -11
  197. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -1
  198. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +8 -8
  199. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -1
  200. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +6 -6
  201. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  202. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
  203. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  204. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +18 -18
  205. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  206. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +12 -12
  207. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  208. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +15 -15
  209. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
  210. package/fesm2020/tuki-io-tuki-widgets.mjs +8 -8
  211. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -1
  212. package/package.json +1 -1
@@ -10,4 +10,4 @@ export function getDeviceIcon(model) {
10
10
  }
11
11
  return DEVICE_MODEL_ICONS[model.trim().toLowerCase()] ?? DEFAULT_DEVICE_ICON;
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvZGV2aWNlLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxtQkFBbUIsR0FBRyw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLGtCQUFrQixHQUEyQjtJQUNqRCxZQUFZLEVBQUUsNkJBQTZCO0lBQzNDLFlBQVksRUFBRSw2QkFBNkI7SUFDM0MsWUFBWSxFQUFFLDZCQUE2QjtDQUM1QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFjO0lBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLG1CQUFtQixDQUFDO0tBQzVCO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgREVGQVVMVF9ERVZJQ0VfSUNPTiA9ICdhc3NldHMvaWNvbnMvY2lzY29fODg1MS5wbmcnO1xyXG5cclxuY29uc3QgREVWSUNFX01PREVMX0lDT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICdjaXNjbyA4ODUxJzogJ2Fzc2V0cy9pY29ucy9jaXNjb184ODUxLnBuZycsXHJcbiAgJ2Npc2NvIDg4NDUnOiAnYXNzZXRzL2ljb25zL2Npc2NvXzg4NDUucG5nJyxcclxuICAnY2lzY28gOTg0MSc6ICdhc3NldHMvaWNvbnMvY2lzY29fOTg0MS5wbmcnLFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERldmljZUljb24obW9kZWw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGlmICghbW9kZWwpIHtcclxuICAgIHJldHVybiBERUZBVUxUX0RFVklDRV9JQ09OO1xyXG4gIH1cclxuICByZXR1cm4gREVWSUNFX01PREVMX0lDT05TW21vZGVsLnRyaW0oKS50b0xvd2VyQ2FzZSgpXSA/PyBERUZBVUxUX0RFVklDRV9JQ09OO1xyXG59XHJcbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvdXRpbHMvZGV2aWNlLWljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxtQkFBbUIsR0FBRyw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLGtCQUFrQixHQUEyQjtJQUNqRCxZQUFZLEVBQUUsNkJBQTZCO0lBQzNDLFlBQVksRUFBRSw2QkFBNkI7SUFDM0MsWUFBWSxFQUFFLDZCQUE2QjtDQUM1QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFjO0lBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLG1CQUFtQixDQUFDO0tBQzVCO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgREVGQVVMVF9ERVZJQ0VfSUNPTiA9ICdhc3NldHMvaWNvbnMvY2lzY29fODg1MS5wbmcnO1xuXG5jb25zdCBERVZJQ0VfTU9ERUxfSUNPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdjaXNjbyA4ODUxJzogJ2Fzc2V0cy9pY29ucy9jaXNjb184ODUxLnBuZycsXG4gICdjaXNjbyA4ODQ1JzogJ2Fzc2V0cy9pY29ucy9jaXNjb184ODQ1LnBuZycsXG4gICdjaXNjbyA5ODQxJzogJ2Fzc2V0cy9pY29ucy9jaXNjb185ODQxLnBuZycsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGV2aWNlSWNvbihtb2RlbD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghbW9kZWwpIHtcbiAgICByZXR1cm4gREVGQVVMVF9ERVZJQ0VfSUNPTjtcbiAgfVxuICByZXR1cm4gREVWSUNFX01PREVMX0lDT05TW21vZGVsLnRyaW0oKS50b0xvd2VyQ2FzZSgpXSA/PyBERUZBVUxUX0RFVklDRV9JQ09OO1xufVxuIl19
@@ -102,9 +102,9 @@ export class WorkspacesComponent {
102
102
  const dialogRef = this.dialog.open(WorkspaceConfirmDialogComponent, {
103
103
  data: {
104
104
  title: `Upgrade workspace ${workspace.displayName} to Multi Tenant?`,
105
- message: `<p>Upgrading this workspace will prepare it for migration to Multi Tenant.</p>
106
- <p>During this process, the workspace configuration will be copied to the Multi Tenant environment.
107
- The workspace will remain active on the current system until the Activate step is completed.</p>
105
+ message: `<p>Upgrading this workspace will prepare it for migration to Multi Tenant.</p>
106
+ <p>During this process, the workspace configuration will be copied to the Multi Tenant environment.
107
+ The workspace will remain active on the current system until the Activate step is completed.</p>
108
108
  <p>Do you want to continue?</p>`,
109
109
  confirmButtonText: 'Yes, upgrade',
110
110
  },
@@ -140,8 +140,8 @@ export class WorkspacesComponent {
140
140
  const dialogRef = this.dialog.open(WorkspaceConfirmDialogComponent, {
141
141
  data: {
142
142
  title: `Activate workspace ${workspace.displayName} on Multi Tenant?`,
143
- message: `<p>Activating this workspace will perform the cutover to Multi Tenant and complete the migration process.</p>
144
- <p>After activation, the workspace will become active on Multi Tenant and the original workspace will become inactive.</p>
143
+ message: `<p>Activating this workspace will perform the cutover to Multi Tenant and complete the migration process.</p>
144
+ <p>After activation, the workspace will become active on Multi Tenant and the original workspace will become inactive.</p>
145
145
  <p>Do you want to continue?</p>`,
146
146
  confirmButtonText: 'Activate',
147
147
  },
@@ -277,10 +277,10 @@ export class WorkspacesComponent {
277
277
  }
278
278
  }
279
279
  WorkspacesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesComponent, deps: [{ token: i1.APIService }, { token: i2.ApiWebexService }, { token: i3.WorkspacesService }, { token: i4.WorkspacesMigrationService }, { token: i5.MatDialog }, { token: i6.Location }], target: i0.ɵɵFactoryTarget.Component });
280
- WorkspacesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspacesComponent, selector: "tk-workspaces", inputs: { host: "host", token: "token", customerId: "customerId" }, outputs: { addWorkspace: "addWorkspace", openWorkspace: "openWorkspace", addDevice: "addDevice" }, ngImport: i0, template: "<div class=\"tk-workspaces\">\r\n <ng-container *ngIf=\"view === 'list'; else detailView\">\r\n <header class=\"tk-workspaces__header\">\r\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\r\n </header>\r\n\r\n <nav class=\"tk-workspaces__tabs\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let tab of tabs\"\r\n class=\"tk-workspaces__tab\"\r\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\r\n (click)=\"selectTab(tab.id)\">\r\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\r\n {{ tab.label }}\r\n </button>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\r\n <app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n <tk-workspaces-filters\r\n [resultCount]=\"total\"\r\n [typeOptions]=\"typeOptions\"\r\n [locationOptions]=\"locationOptions\"\r\n (searchChange)=\"onSearchChange($event)\"\r\n (typeChange)=\"onTypeFilterChange($event)\"\r\n (locationChange)=\"onLocationFilterChange($event)\"\r\n (addWorkspace)=\"addWorkspace.emit()\">\r\n </tk-workspaces-filters>\r\n\r\n <tk-workspaces-table\r\n [workspaces]=\"filteredWorkspaces\"\r\n [total]=\"total\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pendingWorkspaceIds]=\"pendingWorkspaceIds\"\r\n (openWorkspace)=\"onOpenWorkspace($event)\"\r\n (licenseWithHybrid)=\"onMoveToMT($event)\"\r\n (migrateToMT)=\"onMoveToMT($event)\"\r\n (enableWebexCalling)=\"onEnableWebexCalling($event)\"\r\n (migrateToUCM)=\"onMigrateToUCM($event)\"\r\n (addDevice)=\"addDevice.emit($event)\"\r\n (pageChange)=\"onPageChange($event)\">\r\n </tk-workspaces-table>\r\n </ng-container>\r\n\r\n <ng-template #placeholder>\r\n <div class=\"tk-workspaces__placeholder\">This section isn't available in this widget yet.</div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #detailView>\r\n <tk-workspace-detail\r\n *ngIf=\"selectedWorkspace\"\r\n [workspace]=\"selectedWorkspace\"\r\n [connectionType]=\"selectedConnectionType\"\r\n (back)=\"onBackToList()\">\r\n </tk-workspace-detail>\r\n </ng-template>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.tk-workspaces{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspaces__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem}.tk-workspaces__title{margin:0;font-size:1.5rem;font-weight:600}.tk-workspaces__tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.tk-workspaces__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:none;border:none;border-radius:6.25rem;font-family:inherit;font-size:1rem;font-weight:500;color:#000000b3;cursor:pointer}.tk-workspaces__tab:hover{background:rgba(0,0,0,.0705882353)}.tk-workspaces__tab--active{background:#C1C1C1;color:#000000f2}.tk-workspaces__tab--active:hover{background:rgba(0,0,0,.3019607843)}.tk-workspaces__tab-icon{height:1.125rem;width:1.125rem;opacity:.6}.tk-workspaces__tab--active .tk-workspaces__tab-icon{opacity:1}.tk-workspaces__placeholder{padding:3rem 1rem;text-align:center;color:#0009}::ng-deep input.blue-input{border:solid .0625rem rgba(0,0,0,.5019607843)!important}::ng-deep input.blue-input:focus{display:flex;align-items:center;color:#000000b3;background-color:#ededed;border:solid .0625rem rgba(0,0,0,.5019607843);font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important}::ng-deep input.blue-input:focus:focus-visible{outline:none}::ng-deep input.blue-input:hover{background-color:#00000012!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.WorkspacesFiltersComponent, selector: "tk-workspaces-filters", inputs: ["resultCount", "typeOptions", "locationOptions"], outputs: ["searchChange", "typeChange", "locationChange", "addWorkspace"] }, { kind: "component", type: i8.WorkspacesTableComponent, selector: "tk-workspaces-table", inputs: ["workspaces", "total", "pageIndex", "pageSize", "pageSizeOptions", "pendingWorkspaceIds"], outputs: ["openWorkspace", "licenseWithHybrid", "migrateToMT", "enableWebexCalling", "migrateToUCM", "addDevice", "pageChange"] }, { kind: "component", type: i9.WorkspaceDetailComponent, selector: "tk-workspace-detail", inputs: ["workspace", "connectionType"], outputs: ["back"] }, { kind: "component", type: i10.AppLoaderComponent, selector: "app-loader" }] });
280
+ WorkspacesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspacesComponent, selector: "tk-workspaces", inputs: { host: "host", token: "token", customerId: "customerId" }, outputs: { addWorkspace: "addWorkspace", openWorkspace: "openWorkspace", addDevice: "addDevice" }, ngImport: i0, template: "<div class=\"tk-workspaces\">\n <ng-container *ngIf=\"view === 'list'; else detailView\">\n <header class=\"tk-workspaces__header\">\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\n </header>\n\n <nav class=\"tk-workspaces__tabs\">\n <button\n type=\"button\"\n *ngFor=\"let tab of tabs\"\n class=\"tk-workspaces__tab\"\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\n (click)=\"selectTab(tab.id)\">\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\n {{ tab.label }}\n </button>\n </nav>\n\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\n <app-loader *ngIf=\"isLoading\"></app-loader>\n\n <tk-workspaces-filters\n [resultCount]=\"total\"\n [typeOptions]=\"typeOptions\"\n [locationOptions]=\"locationOptions\"\n (searchChange)=\"onSearchChange($event)\"\n (typeChange)=\"onTypeFilterChange($event)\"\n (locationChange)=\"onLocationFilterChange($event)\"\n (addWorkspace)=\"addWorkspace.emit()\">\n </tk-workspaces-filters>\n\n <tk-workspaces-table\n [workspaces]=\"filteredWorkspaces\"\n [total]=\"total\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pendingWorkspaceIds]=\"pendingWorkspaceIds\"\n (openWorkspace)=\"onOpenWorkspace($event)\"\n (licenseWithHybrid)=\"onMoveToMT($event)\"\n (migrateToMT)=\"onMoveToMT($event)\"\n (enableWebexCalling)=\"onEnableWebexCalling($event)\"\n (migrateToUCM)=\"onMigrateToUCM($event)\"\n (addDevice)=\"addDevice.emit($event)\"\n (pageChange)=\"onPageChange($event)\">\n </tk-workspaces-table>\n </ng-container>\n\n <ng-template #placeholder>\n <div class=\"tk-workspaces__placeholder\">This section isn't available in this widget yet.</div>\n </ng-template>\n </ng-container>\n\n <ng-template #detailView>\n <tk-workspace-detail\n *ngIf=\"selectedWorkspace\"\n [workspace]=\"selectedWorkspace\"\n [connectionType]=\"selectedConnectionType\"\n (back)=\"onBackToList()\">\n </tk-workspace-detail>\n </ng-template>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.tk-workspaces{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspaces__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem}.tk-workspaces__title{margin:0;font-size:1.5rem;font-weight:600}.tk-workspaces__tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.tk-workspaces__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:none;border:none;border-radius:6.25rem;font-family:inherit;font-size:1rem;font-weight:500;color:#000000b3;cursor:pointer}.tk-workspaces__tab:hover{background:rgba(0,0,0,.0705882353)}.tk-workspaces__tab--active{background:#C1C1C1;color:#000000f2}.tk-workspaces__tab--active:hover{background:rgba(0,0,0,.3019607843)}.tk-workspaces__tab-icon{height:1.125rem;width:1.125rem;opacity:.6}.tk-workspaces__tab--active .tk-workspaces__tab-icon{opacity:1}.tk-workspaces__placeholder{padding:3rem 1rem;text-align:center;color:#0009}::ng-deep input.blue-input{border:solid .0625rem rgba(0,0,0,.5019607843)!important}::ng-deep input.blue-input:focus{display:flex;align-items:center;color:#000000b3;background-color:#ededed;border:solid .0625rem rgba(0,0,0,.5019607843);font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important}::ng-deep input.blue-input:focus:focus-visible{outline:none}::ng-deep input.blue-input:hover{background-color:#00000012!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.WorkspacesFiltersComponent, selector: "tk-workspaces-filters", inputs: ["resultCount", "typeOptions", "locationOptions"], outputs: ["searchChange", "typeChange", "locationChange", "addWorkspace"] }, { kind: "component", type: i8.WorkspacesTableComponent, selector: "tk-workspaces-table", inputs: ["workspaces", "total", "pageIndex", "pageSize", "pageSizeOptions", "pendingWorkspaceIds"], outputs: ["openWorkspace", "licenseWithHybrid", "migrateToMT", "enableWebexCalling", "migrateToUCM", "addDevice", "pageChange"] }, { kind: "component", type: i9.WorkspaceDetailComponent, selector: "tk-workspace-detail", inputs: ["workspace", "connectionType"], outputs: ["back"] }, { kind: "component", type: i10.AppLoaderComponent, selector: "app-loader" }] });
281
281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesComponent, decorators: [{
282
282
  type: Component,
283
- args: [{ selector: 'tk-workspaces', template: "<div class=\"tk-workspaces\">\r\n <ng-container *ngIf=\"view === 'list'; else detailView\">\r\n <header class=\"tk-workspaces__header\">\r\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\r\n </header>\r\n\r\n <nav class=\"tk-workspaces__tabs\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let tab of tabs\"\r\n class=\"tk-workspaces__tab\"\r\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\r\n (click)=\"selectTab(tab.id)\">\r\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\r\n {{ tab.label }}\r\n </button>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\r\n <app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n <tk-workspaces-filters\r\n [resultCount]=\"total\"\r\n [typeOptions]=\"typeOptions\"\r\n [locationOptions]=\"locationOptions\"\r\n (searchChange)=\"onSearchChange($event)\"\r\n (typeChange)=\"onTypeFilterChange($event)\"\r\n (locationChange)=\"onLocationFilterChange($event)\"\r\n (addWorkspace)=\"addWorkspace.emit()\">\r\n </tk-workspaces-filters>\r\n\r\n <tk-workspaces-table\r\n [workspaces]=\"filteredWorkspaces\"\r\n [total]=\"total\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pendingWorkspaceIds]=\"pendingWorkspaceIds\"\r\n (openWorkspace)=\"onOpenWorkspace($event)\"\r\n (licenseWithHybrid)=\"onMoveToMT($event)\"\r\n (migrateToMT)=\"onMoveToMT($event)\"\r\n (enableWebexCalling)=\"onEnableWebexCalling($event)\"\r\n (migrateToUCM)=\"onMigrateToUCM($event)\"\r\n (addDevice)=\"addDevice.emit($event)\"\r\n (pageChange)=\"onPageChange($event)\">\r\n </tk-workspaces-table>\r\n </ng-container>\r\n\r\n <ng-template #placeholder>\r\n <div class=\"tk-workspaces__placeholder\">This section isn't available in this widget yet.</div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #detailView>\r\n <tk-workspace-detail\r\n *ngIf=\"selectedWorkspace\"\r\n [workspace]=\"selectedWorkspace\"\r\n [connectionType]=\"selectedConnectionType\"\r\n (back)=\"onBackToList()\">\r\n </tk-workspace-detail>\r\n </ng-template>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.tk-workspaces{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspaces__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem}.tk-workspaces__title{margin:0;font-size:1.5rem;font-weight:600}.tk-workspaces__tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.tk-workspaces__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:none;border:none;border-radius:6.25rem;font-family:inherit;font-size:1rem;font-weight:500;color:#000000b3;cursor:pointer}.tk-workspaces__tab:hover{background:rgba(0,0,0,.0705882353)}.tk-workspaces__tab--active{background:#C1C1C1;color:#000000f2}.tk-workspaces__tab--active:hover{background:rgba(0,0,0,.3019607843)}.tk-workspaces__tab-icon{height:1.125rem;width:1.125rem;opacity:.6}.tk-workspaces__tab--active .tk-workspaces__tab-icon{opacity:1}.tk-workspaces__placeholder{padding:3rem 1rem;text-align:center;color:#0009}::ng-deep input.blue-input{border:solid .0625rem rgba(0,0,0,.5019607843)!important}::ng-deep input.blue-input:focus{display:flex;align-items:center;color:#000000b3;background-color:#ededed;border:solid .0625rem rgba(0,0,0,.5019607843);font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important}::ng-deep input.blue-input:focus:focus-visible{outline:none}::ng-deep input.blue-input:hover{background-color:#00000012!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}\n"] }]
283
+ args: [{ selector: 'tk-workspaces', template: "<div class=\"tk-workspaces\">\n <ng-container *ngIf=\"view === 'list'; else detailView\">\n <header class=\"tk-workspaces__header\">\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\n </header>\n\n <nav class=\"tk-workspaces__tabs\">\n <button\n type=\"button\"\n *ngFor=\"let tab of tabs\"\n class=\"tk-workspaces__tab\"\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\n (click)=\"selectTab(tab.id)\">\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\n {{ tab.label }}\n </button>\n </nav>\n\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\n <app-loader *ngIf=\"isLoading\"></app-loader>\n\n <tk-workspaces-filters\n [resultCount]=\"total\"\n [typeOptions]=\"typeOptions\"\n [locationOptions]=\"locationOptions\"\n (searchChange)=\"onSearchChange($event)\"\n (typeChange)=\"onTypeFilterChange($event)\"\n (locationChange)=\"onLocationFilterChange($event)\"\n (addWorkspace)=\"addWorkspace.emit()\">\n </tk-workspaces-filters>\n\n <tk-workspaces-table\n [workspaces]=\"filteredWorkspaces\"\n [total]=\"total\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pendingWorkspaceIds]=\"pendingWorkspaceIds\"\n (openWorkspace)=\"onOpenWorkspace($event)\"\n (licenseWithHybrid)=\"onMoveToMT($event)\"\n (migrateToMT)=\"onMoveToMT($event)\"\n (enableWebexCalling)=\"onEnableWebexCalling($event)\"\n (migrateToUCM)=\"onMigrateToUCM($event)\"\n (addDevice)=\"addDevice.emit($event)\"\n (pageChange)=\"onPageChange($event)\">\n </tk-workspaces-table>\n </ng-container>\n\n <ng-template #placeholder>\n <div class=\"tk-workspaces__placeholder\">This section isn't available in this widget yet.</div>\n </ng-template>\n </ng-container>\n\n <ng-template #detailView>\n <tk-workspace-detail\n *ngIf=\"selectedWorkspace\"\n [workspace]=\"selectedWorkspace\"\n [connectionType]=\"selectedConnectionType\"\n (back)=\"onBackToList()\">\n </tk-workspace-detail>\n </ng-template>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.tk-workspaces{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspaces__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem}.tk-workspaces__title{margin:0;font-size:1.5rem;font-weight:600}.tk-workspaces__tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.tk-workspaces__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:none;border:none;border-radius:6.25rem;font-family:inherit;font-size:1rem;font-weight:500;color:#000000b3;cursor:pointer}.tk-workspaces__tab:hover{background:rgba(0,0,0,.0705882353)}.tk-workspaces__tab--active{background:#C1C1C1;color:#000000f2}.tk-workspaces__tab--active:hover{background:rgba(0,0,0,.3019607843)}.tk-workspaces__tab-icon{height:1.125rem;width:1.125rem;opacity:.6}.tk-workspaces__tab--active .tk-workspaces__tab-icon{opacity:1}.tk-workspaces__placeholder{padding:3rem 1rem;text-align:center;color:#0009}::ng-deep input.blue-input{border:solid .0625rem rgba(0,0,0,.5019607843)!important}::ng-deep input.blue-input:focus{display:flex;align-items:center;color:#000000b3;background-color:#ededed;border:solid .0625rem rgba(0,0,0,.5019607843);font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important}::ng-deep input.blue-input:focus:focus-visible{outline:none}::ng-deep input.blue-input:hover{background-color:#00000012!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}\n"] }]
284
284
  }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }, { type: i3.WorkspacesService }, { type: i4.WorkspacesMigrationService }, { type: i5.MatDialog }, { type: i6.Location }]; }, propDecorators: { host: [{
285
285
  type: Input
286
286
  }], token: [{
@@ -294,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
294
294
  }], addDevice: [{
295
295
  type: Output
296
296
  }] } });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsR0FBRyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU10RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBaUIzSCxNQUFNLE9BQU8sbUJBQW1CO0lBcUM5QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxnQkFBNEMsRUFDNUMsTUFBaUIsRUFDakIsUUFBa0I7UUFMbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBQzVDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXRDbEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV4QyxTQUFJLEdBQThCO1lBQ3pDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVB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QUN6QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQW5UVSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw0TkMxQmhDLDJ5RUE2REE7NEZEbkNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxlQUFlO3VQQUtoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBtYXAsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0YWtlV2hpbGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGktd2ViZXguc2VydmljZSc7XHJcbmltcG9ydCB7IEZpcm13YXJlRGV2aWNlTWFwLCBXb3Jrc3BhY2VzTWlncmF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd29ya3NwYWNlcy1taWdyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93b3Jrc3BhY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2UsIFdvcmtzcGFjZUNvbm5lY3Rpb25UeXBlLCBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQsIFdvcmtzcGFjZU9wZW5FdmVudCB9IGZyb20gJy4vdHlwZXMvd29ya3NwYWNlJztcclxuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtY29uZmlybS1kaWFsb2cvd29ya3NwYWNlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG50eXBlIFdvcmtzcGFjZXNWaWV3ID0gJ2xpc3QnIHwgJ2RldGFpbCc7XHJcblxyXG50eXBlIFdvcmtzcGFjZXNUYWIgPSAnd29ya3NwYWNlcycgfCAnaW5zaWdodHMnIHwgJ2ludGVncmF0aW9ucycgfCAnc2V0dGluZ3MnO1xyXG5cclxuaW50ZXJmYWNlIFdvcmtzcGFjZXNUYWJEZWZpbml0aW9uIHtcclxuICBpZDogV29ya3NwYWNlc1RhYjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ay13b3Jrc3BhY2VzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya3NwYWNlcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBob3N0ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVySWQhOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSBhZGRXb3Jrc3BhY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5Xb3Jrc3BhY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYWRkRGV2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHRhYnM6IFdvcmtzcGFjZXNUYWJEZWZpbml0aW9uW10gPSBbXHJcbiAgICB7IGlkOiAnd29ya3NwYWNlcycsIGxhYmVsOiAnV29ya3NwYWNlcycsIGljb246ICdhc3NldHMvaWNvbnMvZGV2aWNlLWluLXJvb20tcmVndWxhci5zdmcnIH0sXHJcbiAgICB7IGlkOiAnaW5zaWdodHMnLCBsYWJlbDogJ0luc2lnaHRzJywgaWNvbjogJ2Fzc2V0cy9pY29ucy9hbmFseXNpcy1yZWd1bGFyLnN2ZycgfSxcclxuICAgIHsgaWQ6ICdpbnRlZ3JhdGlvbnMnLCBsYWJlbDogJ0ludGVncmF0aW9ucycsIGljb246ICdhc3NldHMvaWNvbnMvaW50ZWdyYXRpb25zLXJlZ3VsYXIuc3ZnJyB9LFxyXG4gICAgeyBpZDogJ3NldHRpbmdzJywgbGFiZWw6ICdTZXR0aW5ncycsIGljb246ICdhc3NldHMvaWNvbnMvdG9vbHMtcmVndWxhci5zdmcnIH0sXHJcbiAgXTtcclxuXHJcbiAgYWN0aXZlVGFiOiBXb3Jrc3BhY2VzVGFiID0gJ3dvcmtzcGFjZXMnO1xyXG5cclxuICB2aWV3OiBXb3Jrc3BhY2VzVmlldyA9ICdsaXN0JztcclxuICBzZWxlY3RlZFdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XHJcbiAgc2VsZWN0ZWRDb25uZWN0aW9uVHlwZTogV29ya3NwYWNlQ29ubmVjdGlvblR5cGUgPSAnZGknO1xyXG5cclxuICB3b3Jrc3BhY2VzOiBXb3Jrc3BhY2VbXSA9IFtdO1xyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwYWdlSW5kZXggPSAwO1xyXG4gIHBhZ2VTaXplID0gMTA7XHJcbiAgdG90YWwgPSAwO1xyXG5cclxuICBzZWFyY2hUZXJtID0gJyc7XHJcbiAgdHlwZUZpbHRlciA9ICcnO1xyXG4gIGxvY2F0aW9uRmlsdGVyID0gJyc7XHJcblxyXG4gIHBlbmRpbmdXb3Jrc3BhY2VJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpV2ViZXhTZXJ2aWNlOiBBcGlXZWJleFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdvcmtzcGFjZXNTZXJ2aWNlOiBXb3Jrc3BhY2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgbWlncmF0aW9uU2VydmljZTogV29ya3NwYWNlc01pZ3JhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdCArICcvZGNwJztcclxuICAgIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnRva2VuID0gdGhpcy50b2tlbjtcclxuICAgIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdCArICcvd2ViZXgnO1xyXG4gICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIGdldCB0eXBlT3B0aW9ucygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQodGhpcy53b3Jrc3BhY2VzLm1hcCh3b3Jrc3BhY2UgPT4gd29ya3NwYWNlLnR5cGVMYWJlbCkuZmlsdGVyKEJvb2xlYW4pKV07XHJcbiAgfVxyXG5cclxuICBnZXQgbG9jYXRpb25PcHRpb25zKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbLi4ubmV3IFNldCh0aGlzLndvcmtzcGFjZXMubWFwKHdvcmtzcGFjZSA9PiB3b3Jrc3BhY2UubG9jYXRpb24pLmZpbHRlcihCb29sZWFuKSldO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcmVkV29ya3NwYWNlcygpOiBXb3Jrc3BhY2VbXSB7XHJcbiAgICBjb25zdCB0ZXJtID0gdGhpcy5zZWFyY2hUZXJtLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMud29ya3NwYWNlcy5maWx0ZXIod29ya3NwYWNlID0+XHJcbiAgICAgICghdGVybSB8fCB3b3Jrc3BhY2UuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSB8fCB3b3Jrc3BhY2UubG9jYXRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSkgJiZcclxuICAgICAgKCF0aGlzLnR5cGVGaWx0ZXIgfHwgd29ya3NwYWNlLnR5cGVMYWJlbCA9PT0gdGhpcy50eXBlRmlsdGVyKSAmJlxyXG4gICAgICAoIXRoaXMubG9jYXRpb25GaWx0ZXIgfHwgd29ya3NwYWNlLmxvY2F0aW9uID09PSB0aGlzLmxvY2F0aW9uRmlsdGVyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRhYih0YWI6IFdvcmtzcGFjZXNUYWIpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiO1xyXG4gIH1cclxuXHJcbiAgb25PcGVuV29ya3NwYWNlKHsgaWQsIGNvbm5lY3Rpb25UeXBlIH06IFdvcmtzcGFjZU9wZW5FdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy53b3Jrc3BhY2VzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBpZCkgPz8gbnVsbDtcclxuICAgIHRoaXMub3BlbldvcmtzcGFjZS5lbWl0KGlkKTtcclxuXHJcbiAgICBpZiAoIXdvcmtzcGFjZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtzcGFjZSA9IHdvcmtzcGFjZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uVHlwZSA9IGNvbm5lY3Rpb25UeXBlO1xyXG4gICAgdGhpcy52aWV3ID0gJ2RldGFpbCc7XHJcbiAgfVxyXG5cclxuICBvbkJhY2tUb0xpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXcgPSAnbGlzdCc7XHJcbiAgICB0aGlzLnNlbGVjdGVkV29ya3NwYWNlID0gbnVsbDtcclxuICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKCcvd29ya3NwYWNlcycpO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDaGFuZ2UodGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xyXG4gIH1cclxuXHJcbiAgb25UeXBlRmlsdGVyQ2hhbmdlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50eXBlRmlsdGVyID0gdHlwZTtcclxuICB9XHJcblxyXG4gIG9uTG9jYXRpb25GaWx0ZXJDaGFuZ2UobG9jYXRpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2NhdGlvbkZpbHRlciA9IGxvY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHsgcGFnZUluZGV4LCBwYWdlU2l6ZSB9OiB7IHBhZ2VJbmRleDogbnVtYmVyOyBwYWdlU2l6ZTogbnVtYmVyIH0pOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4O1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xyXG4gICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcclxuICB9XHJcblxyXG4gIG9uTW92ZVRvTVQod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdGl0bGU6IGBVcGdyYWRlIHdvcmtzcGFjZSAke3dvcmtzcGFjZS5kaXNwbGF5TmFtZX0gdG8gTXVsdGkgVGVuYW50P2AsXHJcbiAgICAgICAgbWVzc2FnZTogYDxwPlVwZ3JhZGluZyB0aGlzIHdvcmtzcGFjZSB3aWxsIHByZXBhcmUgaXQgZm9yIG1pZ3JhdGlvbiB0byBNdWx0aSBUZW5hbnQuPC9wPlxyXG4gICAgICAgICAgPHA+RHVyaW5nIHRoaXMgcHJvY2VzcywgdGhlIHdvcmtzcGFjZSBjb25maWd1cmF0aW9uIHdpbGwgYmUgY29waWVkIHRvIHRoZSBNdWx0aSBUZW5hbnQgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICBUaGUgd29ya3NwYWNlIHdpbGwgcmVtYWluIGFjdGl2ZSBvbiB0aGUgY3VycmVudCBzeXN0ZW0gdW50aWwgdGhlIEFjdGl2YXRlIHN0ZXAgaXMgY29tcGxldGVkLjwvcD5cclxuICAgICAgICAgIDxwPkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPzwvcD5gLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAnWWVzLCB1cGdyYWRlJyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuYWRkKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZS5tb3ZlVG9NVCh0aGlzLmN1c3RvbWVySWQsIHdvcmtzcGFjZS5kZXZpY2UpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGZvcm1JZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybUlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9sbE1pZ3JhdGlvbkZvcm1TdGF0dXMoTnVtYmVyKGZvcm1JZCksIHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25FbmFibGVXZWJleENhbGxpbmcod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRldmljZSA9IHdvcmtzcGFjZS5kZXZpY2U7XHJcbiAgICBpZiAoIWRldmljZS53ZWJleFVVSUQgfHwgd29ya3NwYWNlLnN0YXR1cyAhPT0gJ2luYWN0aXZlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihXb3Jrc3BhY2VDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0aXRsZTogYEFjdGl2YXRlIHdvcmtzcGFjZSAke3dvcmtzcGFjZS5kaXNwbGF5TmFtZX0gb24gTXVsdGkgVGVuYW50P2AsXHJcbiAgICAgICAgbWVzc2FnZTogYDxwPkFjdGl2YXRpbmcgdGhpcyB3b3Jrc3BhY2Ugd2lsbCBwZXJmb3JtIHRoZSBjdXRvdmVyIHRvIE11bHRpIFRlbmFudCBhbmQgY29tcGxldGUgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLjwvcD5cclxuICAgICAgICAgIDxwPkFmdGVyIGFjdGl2YXRpb24sIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZWNvbWUgYWN0aXZlIG9uIE11bHRpIFRlbmFudCBhbmQgdGhlIG9yaWdpbmFsIHdvcmtzcGFjZSB3aWxsIGJlY29tZSBpbmFjdGl2ZS48L3A+XHJcbiAgICAgICAgICA8cD5EbyB5b3Ugd2FudCB0byBjb250aW51ZT88L3A+YCxcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ0FjdGl2YXRlJyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuYWRkKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZVxyXG4gICAgICAgIC5nZXRNaWdyYXRlZE1pZ3JhdGlvbkZvcm1FbnRpdGllcyh0aGlzLmN1c3RvbWVySWQsIGRldmljZS53ZWJleFVVSUQgYXMgc3RyaW5nLCAnT1JQSEFORURfREVWSUNFJylcclxuICAgICAgICAucGlwZShtYXAoKGVudGl0aWVzOiBhbnlbXSkgPT4gKEFycmF5LmlzQXJyYXkoZW50aXRpZXMpID8gZW50aXRpZXNbMF0gOiBlbnRpdGllcyB8fCBudWxsKSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybUlkID0gZW50aXR5Py5taWdyYXRpb25Gb3JtSWQgPz8gZW50aXR5Py5pZCA/PyBudWxsO1xyXG4gICAgICAgICAgICBpZiAoIWZvcm1JZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlLmlkKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGV2aWNlTWFwID0gdGhpcy5idWlsZEZpcm13YXJlRGV2aWNlTWFwKGVudGl0eSwgZGV2aWNlKTtcclxuICAgICAgICAgICAgY29uc3QgdXBncmFkZVN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZVxyXG4gICAgICAgICAgICAgIC50cmlnZ2VyRmlybXdhcmVVcGdyYWRlKHRoaXMuY3VzdG9tZXJJZCwgTnVtYmVyKGZvcm1JZCksIGRldmljZU1hcClcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9sbE1pZ3JhdGlvbkZvcm1TdGF0dXMoTnVtYmVyKGZvcm1JZCksIHdvcmtzcGFjZS5pZCwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5taWdyYXRpb25TZXJ2aWNlLnJlbW92ZVVjbUxpY2Vuc2UodGhpcy5jdXN0b21lcklkLCBOdW1iZXIoZm9ybUlkKSkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH0sIDEwMDAwKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh1cGdyYWRlU3Vic2NyaXB0aW9uKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbk1pZ3JhdGVUb1VDTSh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGV2aWNlID0gd29ya3NwYWNlLmRldmljZTtcclxuICAgIGlmICghZGV2aWNlLndlYmV4VVVJRCB8fCB3b3Jrc3BhY2Uuc3RhdHVzICE9PSAnYWN0aXZlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmFkZCh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5taWdyYXRpb25TZXJ2aWNlXHJcbiAgICAgIC5yZXZlcnRNaWdyYXRpb24odGhpcy5jdXN0b21lcklkLCBkZXZpY2Uud2ViZXhVVUlEKVxyXG4gICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGltZXIoMjAwMCkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlLmlkKTtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwb2xsTWlncmF0aW9uRm9ybVN0YXR1cyhmb3JtSWQ6IG51bWJlciwgd29ya3NwYWNlSWQ6IHN0cmluZywgb25Db21wbGV0ZWQ/OiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aW1lcigwLCAxMDAwMClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubWlncmF0aW9uU2VydmljZS5nZXRNaWdyYXRpb25Gb3JtU3RhdHVzKHRoaXMuY3VzdG9tZXJJZCwgZm9ybUlkKSksXHJcbiAgICAgICAgdGFrZVdoaWxlKChyZXNwb25zZTogYW55KSA9PiAhdGhpcy5pc1Rlcm1pbmFsTWlncmF0aW9uU3RhdHVzKHJlc3BvbnNlPy5zdGF0dXMpLCB0cnVlKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5ub3JtYWxpemVNaWdyYXRpb25TdGF0dXMocmVzcG9uc2U/LnN0YXR1cyk7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuaXNUZXJtaW5hbE1pZ3JhdGlvblN0YXR1cyhzdGF0dXMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlSWQpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcclxuICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdDT01QTEVURUQnKSB7XHJcbiAgICAgICAgICAgIG9uQ29tcGxldGVkPy4oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZUlkKTtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZpcm13YXJlRGV2aWNlTWFwKGVudGl0eTogYW55LCBkZXZpY2U6IFdvcmtzcGFjZURldmljZVJlY29yZCk6IEZpcm13YXJlRGV2aWNlTWFwIHtcclxuICAgIGNvbnN0IGRldmljZU1hcDogRmlybXdhcmVEZXZpY2VNYXAgPSB7fTtcclxuICAgIGNvbnN0IGVudGl0eURldmljZXM6IGFueVtdID0gW1xyXG4gICAgICAuLi4oQXJyYXkuaXNBcnJheShlbnRpdHk/LmRldmljZXMpID8gZW50aXR5LmRldmljZXMgOiBbXSksXHJcbiAgICAgIC4uLihBcnJheS5pc0FycmF5KGVudGl0eT8ud2ViZXhNaWdyYXRpb25EZXZpY2VzKSA/IGVudGl0eS53ZWJleE1pZ3JhdGlvbkRldmljZXMgOiBbXSksXHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc291cmNlRGV2aWNlcyA9IGVudGl0eURldmljZXMubGVuZ3RoID8gZW50aXR5RGV2aWNlcyA6IFtkZXZpY2VdO1xyXG4gICAgY29uc3QgY3VjbUlkID0gTnVtYmVyKGRldmljZS5jdWNtSWQpIHx8IDA7XHJcblxyXG4gICAgc291cmNlRGV2aWNlcy5mb3JFYWNoKChyYXdEZXZpY2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSByYXdEZXZpY2U/Lm5hbWUgfHwgZGV2aWNlLm5hbWUgfHwgJyc7XHJcbiAgICAgIGlmICghbmFtZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkZXZpY2VOYW1lID0gbmFtZS5pbmNsdWRlcygnU0VQJykgPyBuYW1lIDogYFNFUCR7bmFtZX1gO1xyXG4gICAgICBpZiAoIWRldmljZU1hcFtjdWNtSWRdKSB7XHJcbiAgICAgICAgZGV2aWNlTWFwW2N1Y21JZF0gPSB7fTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWRldmljZU1hcFtjdWNtSWRdWydPUlBIQU5FRF9ERVZJQ0UnXSkge1xyXG4gICAgICAgIGRldmljZU1hcFtjdWNtSWRdWydPUlBIQU5FRF9ERVZJQ0UnXSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGRldmljZU1hcFtjdWNtSWRdWydPUlBIQU5FRF9ERVZJQ0UnXS5wdXNoKGRldmljZU5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRldmljZU1hcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm9ybWFsaXplTWlncmF0aW9uU3RhdHVzKHN0YXR1czogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHN0YXR1cyB8fCAnJykudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNUZXJtaW5hbE1pZ3JhdGlvblN0YXR1cyhzdGF0dXM6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZU1pZ3JhdGlvblN0YXR1cyhzdGF0dXMpO1xyXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQgPT09ICdDT01QTEVURUQnIHx8IG5vcm1hbGl6ZWQgPT09ICdGQUlMRUQnIHx8IG5vcm1hbGl6ZWQgPT09ICdFUlJPUicgfHwgbm9ybWFsaXplZCA9PT0gJ0NPTVBMRVRFRF9XSVRIX0VSUk9SUyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZldGNoV29ya3NwYWNlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya3NwYWNlc1NlcnZpY2UuZmV0Y2hXb3Jrc3BhY2VzKHRoaXMuY3VzdG9tZXJJZCwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlSW5kZXgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICh7IHdvcmtzcGFjZXMsIHRvdGFsIH0pID0+IHtcclxuICAgICAgICB0aGlzLndvcmtzcGFjZXMgPSB3b3Jrc3BhY2VzO1xyXG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMud29ya3NwYWNlcyA9IFtdO1xyXG4gICAgICAgIHRoaXMudG90YWwgPSAwO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZXNcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlldyA9PT0gJ2xpc3QnOyBlbHNlIGRldGFpbFZpZXdcIj5cclxuICAgIDxoZWFkZXIgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzX19oZWFkZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwidGstd29ya3NwYWNlc19fdGl0bGVcIj5Xb3Jrc3BhY2VzPC9oMT5cclxuICAgIDwvaGVhZGVyPlxyXG5cclxuICAgIDxuYXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzX190YWJzXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIlxyXG4gICAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlc19fdGFiXCJcclxuICAgICAgICBbY2xhc3MudGstd29ya3NwYWNlc19fdGFiLS1hY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWIuaWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RUYWIodGFiLmlkKVwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzX190YWItaWNvblwiIFtzcmNdPVwidGFiLmljb25cIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgIHt7IHRhYi5sYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmF2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVUYWIgPT09ICd3b3Jrc3BhY2VzJzsgZWxzZSBwbGFjZWhvbGRlclwiPlxyXG4gICAgICA8YXBwLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuXHJcbiAgICAgIDx0ay13b3Jrc3BhY2VzLWZpbHRlcnNcclxuICAgICAgICBbcmVzdWx0Q291bnRdPVwidG90YWxcIlxyXG4gICAgICAgIFt0eXBlT3B0aW9uc109XCJ0eXBlT3B0aW9uc1wiXHJcbiAgICAgICAgW2xvY2F0aW9uT3B0aW9uc109XCJsb2NhdGlvbk9wdGlvbnNcIlxyXG4gICAgICAgIChzZWFyY2hDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHR5cGVDaGFuZ2UpPVwib25UeXBlRmlsdGVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChsb2NhdGlvbkNoYW5nZSk9XCJvbkxvY2F0aW9uRmlsdGVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChhZGRXb3Jrc3BhY2UpPVwiYWRkV29ya3NwYWNlLmVtaXQoKVwiPlxyXG4gICAgICA8L3RrLXdvcmtzcGFjZXMtZmlsdGVycz5cclxuXHJcbiAgICAgIDx0ay13b3Jrc3BhY2VzLXRhYmxlXHJcbiAgICAgICAgW3dvcmtzcGFjZXNdPVwiZmlsdGVyZWRXb3Jrc3BhY2VzXCJcclxuICAgICAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgICAgIFtwYWdlSW5kZXhdPVwicGFnZUluZGV4XCJcclxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgIFtwZW5kaW5nV29ya3NwYWNlSWRzXT1cInBlbmRpbmdXb3Jrc3BhY2VJZHNcIlxyXG4gICAgICAgIChvcGVuV29ya3NwYWNlKT1cIm9uT3BlbldvcmtzcGFjZSgkZXZlbnQpXCJcclxuICAgICAgICAobGljZW5zZVdpdGhIeWJyaWQpPVwib25Nb3ZlVG9NVCgkZXZlbnQpXCJcclxuICAgICAgICAobWlncmF0ZVRvTVQpPVwib25Nb3ZlVG9NVCgkZXZlbnQpXCJcclxuICAgICAgICAoZW5hYmxlV2ViZXhDYWxsaW5nKT1cIm9uRW5hYmxlV2ViZXhDYWxsaW5nKCRldmVudClcIlxyXG4gICAgICAgIChtaWdyYXRlVG9VQ00pPVwib25NaWdyYXRlVG9VQ00oJGV2ZW50KVwiXHJcbiAgICAgICAgKGFkZERldmljZSk9XCJhZGREZXZpY2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L3RrLXdvcmtzcGFjZXMtdGFibGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlc19fcGxhY2Vob2xkZXJcIj5UaGlzIHNlY3Rpb24gaXNuJ3QgYXZhaWxhYmxlIGluIHRoaXMgd2lkZ2V0IHlldC48L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGV0YWlsVmlldz5cclxuICAgIDx0ay13b3Jrc3BhY2UtZGV0YWlsXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRXb3Jrc3BhY2VcIlxyXG4gICAgICBbd29ya3NwYWNlXT1cInNlbGVjdGVkV29ya3NwYWNlXCJcclxuICAgICAgW2Nvbm5lY3Rpb25UeXBlXT1cInNlbGVjdGVkQ29ubmVjdGlvblR5cGVcIlxyXG4gICAgICAoYmFjayk9XCJvbkJhY2tUb0xpc3QoKVwiPlxyXG4gICAgPC90ay13b3Jrc3BhY2UtZGV0YWlsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsR0FBRyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU10RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBaUIzSCxNQUFNLE9BQU8sbUJBQW1CO0lBcUM5QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxnQkFBNEMsRUFDNUMsTUFBaUIsRUFDakIsUUFBa0I7UUFMbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBQzVDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXRDbEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV4QyxTQUFJLEdBQThCO1lBQ3pDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVB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QUN6QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQW5UVSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw0TkMxQmhDLGlyRUE2REE7NEZEbkNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxlQUFlO3VQQUtoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBtYXAsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0YWtlV2hpbGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBBcGlXZWJleFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwaS13ZWJleC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpcm13YXJlRGV2aWNlTWFwLCBXb3Jrc3BhY2VzTWlncmF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd29ya3NwYWNlcy1taWdyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd29ya3NwYWNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtzcGFjZSwgV29ya3NwYWNlQ29ubmVjdGlvblR5cGUsIFdvcmtzcGFjZURldmljZVJlY29yZCwgV29ya3NwYWNlT3BlbkV2ZW50IH0gZnJvbSAnLi90eXBlcy93b3Jrc3BhY2UnO1xuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtY29uZmlybS1kaWFsb2cvd29ya3NwYWNlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5cbnR5cGUgV29ya3NwYWNlc1ZpZXcgPSAnbGlzdCcgfCAnZGV0YWlsJztcblxudHlwZSBXb3Jrc3BhY2VzVGFiID0gJ3dvcmtzcGFjZXMnIHwgJ2luc2lnaHRzJyB8ICdpbnRlZ3JhdGlvbnMnIHwgJ3NldHRpbmdzJztcblxuaW50ZXJmYWNlIFdvcmtzcGFjZXNUYWJEZWZpbml0aW9uIHtcbiAgaWQ6IFdvcmtzcGFjZXNUYWI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGstd29ya3NwYWNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3Jrc3BhY2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya3NwYWNlcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBob3N0ITogc3RyaW5nO1xuICBASW5wdXQoKSB0b2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgY3VzdG9tZXJJZCE6IHN0cmluZztcblxuICBAT3V0cHV0KCkgYWRkV29ya3NwYWNlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb3BlbldvcmtzcGFjZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgYWRkRGV2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgdGFiczogV29ya3NwYWNlc1RhYkRlZmluaXRpb25bXSA9IFtcbiAgICB7IGlkOiAnd29ya3NwYWNlcycsIGxhYmVsOiAnV29ya3NwYWNlcycsIGljb246ICdhc3NldHMvaWNvbnMvZGV2aWNlLWluLXJvb20tcmVndWxhci5zdmcnIH0sXG4gICAgeyBpZDogJ2luc2lnaHRzJywgbGFiZWw6ICdJbnNpZ2h0cycsIGljb246ICdhc3NldHMvaWNvbnMvYW5hbHlzaXMtcmVndWxhci5zdmcnIH0sXG4gICAgeyBpZDogJ2ludGVncmF0aW9ucycsIGxhYmVsOiAnSW50ZWdyYXRpb25zJywgaWNvbjogJ2Fzc2V0cy9pY29ucy9pbnRlZ3JhdGlvbnMtcmVndWxhci5zdmcnIH0sXG4gICAgeyBpZDogJ3NldHRpbmdzJywgbGFiZWw6ICdTZXR0aW5ncycsIGljb246ICdhc3NldHMvaWNvbnMvdG9vbHMtcmVndWxhci5zdmcnIH0sXG4gIF07XG5cbiAgYWN0aXZlVGFiOiBXb3Jrc3BhY2VzVGFiID0gJ3dvcmtzcGFjZXMnO1xuXG4gIHZpZXc6IFdvcmtzcGFjZXNWaWV3ID0gJ2xpc3QnO1xuICBzZWxlY3RlZFdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XG4gIHNlbGVjdGVkQ29ubmVjdGlvblR5cGU6IFdvcmtzcGFjZUNvbm5lY3Rpb25UeXBlID0gJ2RpJztcblxuICB3b3Jrc3BhY2VzOiBXb3Jrc3BhY2VbXSA9IFtdO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBwYWdlSW5kZXggPSAwO1xuICBwYWdlU2l6ZSA9IDEwO1xuICB0b3RhbCA9IDA7XG5cbiAgc2VhcmNoVGVybSA9ICcnO1xuICB0eXBlRmlsdGVyID0gJyc7XG4gIGxvY2F0aW9uRmlsdGVyID0gJyc7XG5cbiAgcGVuZGluZ1dvcmtzcGFjZUlkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlXZWJleFNlcnZpY2U6IEFwaVdlYmV4U2VydmljZSxcbiAgICBwcml2YXRlIHdvcmtzcGFjZXNTZXJ2aWNlOiBXb3Jrc3BhY2VzU2VydmljZSxcbiAgICBwcml2YXRlIG1pZ3JhdGlvblNlcnZpY2U6IFdvcmtzcGFjZXNNaWdyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLnRva2VuID0gdGhpcy50b2tlbjtcbiAgICB0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0ICsgJy9kY3AnO1xuICAgIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnRva2VuID0gdGhpcy50b2tlbjtcbiAgICB0aGlzLmFwaVdlYmV4U2VydmljZS5hcGlVcmwgPSB0aGlzLmhvc3QgKyAnL3dlYmV4JztcbiAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGdldCB0eXBlT3B0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KHRoaXMud29ya3NwYWNlcy5tYXAod29ya3NwYWNlID0+IHdvcmtzcGFjZS50eXBlTGFiZWwpLmZpbHRlcihCb29sZWFuKSldO1xuICB9XG5cbiAgZ2V0IGxvY2F0aW9uT3B0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KHRoaXMud29ya3NwYWNlcy5tYXAod29ya3NwYWNlID0+IHdvcmtzcGFjZS5sb2NhdGlvbikuZmlsdGVyKEJvb2xlYW4pKV07XG4gIH1cblxuICBnZXQgZmlsdGVyZWRXb3Jrc3BhY2VzKCk6IFdvcmtzcGFjZVtdIHtcbiAgICBjb25zdCB0ZXJtID0gdGhpcy5zZWFyY2hUZXJtLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiB0aGlzLndvcmtzcGFjZXMuZmlsdGVyKHdvcmtzcGFjZSA9PlxuICAgICAgKCF0ZXJtIHx8IHdvcmtzcGFjZS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pIHx8IHdvcmtzcGFjZS5sb2NhdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pKSAmJlxuICAgICAgKCF0aGlzLnR5cGVGaWx0ZXIgfHwgd29ya3NwYWNlLnR5cGVMYWJlbCA9PT0gdGhpcy50eXBlRmlsdGVyKSAmJlxuICAgICAgKCF0aGlzLmxvY2F0aW9uRmlsdGVyIHx8IHdvcmtzcGFjZS5sb2NhdGlvbiA9PT0gdGhpcy5sb2NhdGlvbkZpbHRlcilcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0VGFiKHRhYjogV29ya3NwYWNlc1RhYik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiO1xuICB9XG5cbiAgb25PcGVuV29ya3NwYWNlKHsgaWQsIGNvbm5lY3Rpb25UeXBlIH06IFdvcmtzcGFjZU9wZW5FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHdvcmtzcGFjZSA9IHRoaXMud29ya3NwYWNlcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWQpID8/IG51bGw7XG4gICAgdGhpcy5vcGVuV29ya3NwYWNlLmVtaXQoaWQpO1xuXG4gICAgaWYgKCF3b3Jrc3BhY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkV29ya3NwYWNlID0gd29ya3NwYWNlO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uVHlwZSA9IGNvbm5lY3Rpb25UeXBlO1xuICAgIHRoaXMudmlldyA9ICdkZXRhaWwnO1xuICB9XG5cbiAgb25CYWNrVG9MaXN0KCk6IHZvaWQge1xuICAgIHRoaXMudmlldyA9ICdsaXN0JztcbiAgICB0aGlzLnNlbGVjdGVkV29ya3NwYWNlID0gbnVsbDtcbiAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSgnL3dvcmtzcGFjZXMnKTtcbiAgfVxuXG4gIG9uU2VhcmNoQ2hhbmdlKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XG4gIH1cblxuICBvblR5cGVGaWx0ZXJDaGFuZ2UodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50eXBlRmlsdGVyID0gdHlwZTtcbiAgfVxuXG4gIG9uTG9jYXRpb25GaWx0ZXJDaGFuZ2UobG9jYXRpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9jYXRpb25GaWx0ZXIgPSBsb2NhdGlvbjtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZSh7IHBhZ2VJbmRleCwgcGFnZVNpemUgfTogeyBwYWdlSW5kZXg6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXg7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XG4gIH1cblxuICBvbk1vdmVUb01UKHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihXb3Jrc3BhY2VDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiBgVXBncmFkZSB3b3Jrc3BhY2UgJHt3b3Jrc3BhY2UuZGlzcGxheU5hbWV9IHRvIE11bHRpIFRlbmFudD9gLFxuICAgICAgICBtZXNzYWdlOiBgPHA+VXBncmFkaW5nIHRoaXMgd29ya3NwYWNlIHdpbGwgcHJlcGFyZSBpdCBmb3IgbWlncmF0aW9uIHRvIE11bHRpIFRlbmFudC48L3A+XG4gICAgICAgICAgPHA+RHVyaW5nIHRoaXMgcHJvY2VzcywgdGhlIHdvcmtzcGFjZSBjb25maWd1cmF0aW9uIHdpbGwgYmUgY29waWVkIHRvIHRoZSBNdWx0aSBUZW5hbnQgZW52aXJvbm1lbnQuXG4gICAgICAgICAgVGhlIHdvcmtzcGFjZSB3aWxsIHJlbWFpbiBhY3RpdmUgb24gdGhlIGN1cnJlbnQgc3lzdGVtIHVudGlsIHRoZSBBY3RpdmF0ZSBzdGVwIGlzIGNvbXBsZXRlZC48L3A+XG4gICAgICAgICAgPHA+RG8geW91IHdhbnQgdG8gY29udGludWU/PC9wPmAsXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAnWWVzLCB1cGdyYWRlJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5hZGQod29ya3NwYWNlLmlkKTtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZS5tb3ZlVG9NVCh0aGlzLmN1c3RvbWVySWQsIHdvcmtzcGFjZS5kZXZpY2UpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChmb3JtSWQ6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGlmIChmb3JtSWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9sbE1pZ3JhdGlvbkZvcm1TdGF0dXMoTnVtYmVyKGZvcm1JZCksIHdvcmtzcGFjZS5pZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlLmlkKTtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlLmlkKTtcbiAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgb25FbmFibGVXZWJleENhbGxpbmcod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiB2b2lkIHtcbiAgICBjb25zdCBkZXZpY2UgPSB3b3Jrc3BhY2UuZGV2aWNlO1xuICAgIGlmICghZGV2aWNlLndlYmV4VVVJRCB8fCB3b3Jrc3BhY2Uuc3RhdHVzICE9PSAnaW5hY3RpdmUnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihXb3Jrc3BhY2VDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiBgQWN0aXZhdGUgd29ya3NwYWNlICR7d29ya3NwYWNlLmRpc3BsYXlOYW1lfSBvbiBNdWx0aSBUZW5hbnQ/YCxcbiAgICAgICAgbWVzc2FnZTogYDxwPkFjdGl2YXRpbmcgdGhpcyB3b3Jrc3BhY2Ugd2lsbCBwZXJmb3JtIHRoZSBjdXRvdmVyIHRvIE11bHRpIFRlbmFudCBhbmQgY29tcGxldGUgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLjwvcD5cbiAgICAgICAgICA8cD5BZnRlciBhY3RpdmF0aW9uLCB0aGUgd29ya3NwYWNlIHdpbGwgYmVjb21lIGFjdGl2ZSBvbiBNdWx0aSBUZW5hbnQgYW5kIHRoZSBvcmlnaW5hbCB3b3Jrc3BhY2Ugd2lsbCBiZWNvbWUgaW5hY3RpdmUuPC9wPlxuICAgICAgICAgIDxwPkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPzwvcD5gLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ0FjdGl2YXRlJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5hZGQod29ya3NwYWNlLmlkKTtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZVxuICAgICAgICAuZ2V0TWlncmF0ZWRNaWdyYXRpb25Gb3JtRW50aXRpZXModGhpcy5jdXN0b21lcklkLCBkZXZpY2Uud2ViZXhVVUlEIGFzIHN0cmluZywgJ09SUEhBTkVEX0RFVklDRScpXG4gICAgICAgIC5waXBlKG1hcCgoZW50aXRpZXM6IGFueVtdKSA9PiAoQXJyYXkuaXNBcnJheShlbnRpdGllcykgPyBlbnRpdGllc1swXSA6IGVudGl0aWVzIHx8IG51bGwpKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKGVudGl0eTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtSWQgPSBlbnRpdHk/Lm1pZ3JhdGlvbkZvcm1JZCA/PyBlbnRpdHk/LmlkID8/IG51bGw7XG4gICAgICAgICAgICBpZiAoIWZvcm1JZCkge1xuICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRldmljZU1hcCA9IHRoaXMuYnVpbGRGaXJtd2FyZURldmljZU1hcChlbnRpdHksIGRldmljZSk7XG4gICAgICAgICAgICBjb25zdCB1cGdyYWRlU3Vic2NyaXB0aW9uID0gdGhpcy5taWdyYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAgIC50cmlnZ2VyRmlybXdhcmVVcGdyYWRlKHRoaXMuY3VzdG9tZXJJZCwgTnVtYmVyKGZvcm1JZCksIGRldmljZU1hcClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvbGxNaWdyYXRpb25Gb3JtU3RhdHVzKE51bWJlcihmb3JtSWQpLCB3b3Jrc3BhY2UuaWQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pZ3JhdGlvblNlcnZpY2UucmVtb3ZlVWNtTGljZW5zZSh0aGlzLmN1c3RvbWVySWQsIE51bWJlcihmb3JtSWQpKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9LCAxMDAwMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2UuaWQpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHVwZ3JhZGVTdWJzY3JpcHRpb24pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlLmlkKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBvbk1pZ3JhdGVUb1VDTSh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IHZvaWQge1xuICAgIGNvbnN0IGRldmljZSA9IHdvcmtzcGFjZS5kZXZpY2U7XG4gICAgaWYgKCFkZXZpY2Uud2ViZXhVVUlEIHx8IHdvcmtzcGFjZS5zdGF0dXMgIT09ICdhY3RpdmUnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmFkZCh3b3Jrc3BhY2UuaWQpO1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZVxuICAgICAgLnJldmVydE1pZ3JhdGlvbih0aGlzLmN1c3RvbWVySWQsIGRldmljZS53ZWJleFVVSUQpXG4gICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGltZXIoMjAwMCkpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XG4gICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XG4gICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHBvbGxNaWdyYXRpb25Gb3JtU3RhdHVzKGZvcm1JZDogbnVtYmVyLCB3b3Jrc3BhY2VJZDogc3RyaW5nLCBvbkNvbXBsZXRlZD86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aW1lcigwLCAxMDAwMClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5taWdyYXRpb25TZXJ2aWNlLmdldE1pZ3JhdGlvbkZvcm1TdGF0dXModGhpcy5jdXN0b21lcklkLCBmb3JtSWQpKSxcbiAgICAgICAgdGFrZVdoaWxlKChyZXNwb25zZTogYW55KSA9PiAhdGhpcy5pc1Rlcm1pbmFsTWlncmF0aW9uU3RhdHVzKHJlc3BvbnNlPy5zdGF0dXMpLCB0cnVlKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMubm9ybWFsaXplTWlncmF0aW9uU3RhdHVzKHJlc3BvbnNlPy5zdGF0dXMpO1xuICAgICAgICAgIGlmICghdGhpcy5pc1Rlcm1pbmFsTWlncmF0aW9uU3RhdHVzKHN0YXR1cykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2VJZCk7XG4gICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnQ09NUExFVEVEJykge1xuICAgICAgICAgICAgb25Db21wbGV0ZWQ/LigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZUlkKTtcbiAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGaXJtd2FyZURldmljZU1hcChlbnRpdHk6IGFueSwgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQpOiBGaXJtd2FyZURldmljZU1hcCB7XG4gICAgY29uc3QgZGV2aWNlTWFwOiBGaXJtd2FyZURldmljZU1hcCA9IHt9O1xuICAgIGNvbnN0IGVudGl0eURldmljZXM6IGFueVtdID0gW1xuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZW50aXR5Py5kZXZpY2VzKSA/IGVudGl0eS5kZXZpY2VzIDogW10pLFxuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZW50aXR5Py53ZWJleE1pZ3JhdGlvbkRldmljZXMpID8gZW50aXR5LndlYmV4TWlncmF0aW9uRGV2aWNlcyA6IFtdKSxcbiAgICBdO1xuICAgIGNvbnN0IHNvdXJjZURldmljZXMgPSBlbnRpdHlEZXZpY2VzLmxlbmd0aCA/IGVudGl0eURldmljZXMgOiBbZGV2aWNlXTtcbiAgICBjb25zdCBjdWNtSWQgPSBOdW1iZXIoZGV2aWNlLmN1Y21JZCkgfHwgMDtcblxuICAgIHNvdXJjZURldmljZXMuZm9yRWFjaCgocmF3RGV2aWNlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IHJhd0RldmljZT8ubmFtZSB8fCBkZXZpY2UubmFtZSB8fCAnJztcbiAgICAgIGlmICghbmFtZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBkZXZpY2VOYW1lID0gbmFtZS5pbmNsdWRlcygnU0VQJykgPyBuYW1lIDogYFNFUCR7bmFtZX1gO1xuICAgICAgaWYgKCFkZXZpY2VNYXBbY3VjbUlkXSkge1xuICAgICAgICBkZXZpY2VNYXBbY3VjbUlkXSA9IHt9O1xuICAgICAgfVxuICAgICAgaWYgKCFkZXZpY2VNYXBbY3VjbUlkXVsnT1JQSEFORURfREVWSUNFJ10pIHtcbiAgICAgICAgZGV2aWNlTWFwW2N1Y21JZF1bJ09SUEhBTkVEX0RFVklDRSddID0gW107XG4gICAgICB9XG4gICAgICBkZXZpY2VNYXBbY3VjbUlkXVsnT1JQSEFORURfREVWSUNFJ10ucHVzaChkZXZpY2VOYW1lKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkZXZpY2VNYXA7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU1pZ3JhdGlvblN0YXR1cyhzdGF0dXM6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiAoc3RhdHVzIHx8ICcnKS50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rlcm1pbmFsTWlncmF0aW9uU3RhdHVzKHN0YXR1czogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZU1pZ3JhdGlvblN0YXR1cyhzdGF0dXMpO1xuICAgIHJldHVybiBub3JtYWxpemVkID09PSAnQ09NUExFVEVEJyB8fCBub3JtYWxpemVkID09PSAnRkFJTEVEJyB8fCBub3JtYWxpemVkID09PSAnRVJST1InIHx8IG5vcm1hbGl6ZWQgPT09ICdDT01QTEVURURfV0lUSF9FUlJPUlMnO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFdvcmtzcGFjZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMud29ya3NwYWNlc1NlcnZpY2UuZmV0Y2hXb3Jrc3BhY2VzKHRoaXMuY3VzdG9tZXJJZCwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlSW5kZXgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyB3b3Jrc3BhY2VzLCB0b3RhbCB9KSA9PiB7XG4gICAgICAgIHRoaXMud29ya3NwYWNlcyA9IHdvcmtzcGFjZXM7XG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLndvcmtzcGFjZXMgPSBbXTtcbiAgICAgICAgdGhpcy50b3RhbCA9IDA7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlldyA9PT0gJ2xpc3QnOyBlbHNlIGRldGFpbFZpZXdcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwidGstd29ya3NwYWNlc19faGVhZGVyXCI+XG4gICAgICA8aDEgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzX190aXRsZVwiPldvcmtzcGFjZXM8L2gxPlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPG5hdiBjbGFzcz1cInRrLXdvcmtzcGFjZXNfX3RhYnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiXG4gICAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlc19fdGFiXCJcbiAgICAgICAgW2NsYXNzLnRrLXdvcmtzcGFjZXNfX3RhYi0tYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gdGFiLmlkXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFRhYih0YWIuaWQpXCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzX190YWItaWNvblwiIFtzcmNdPVwidGFiLmljb25cIiBhbHQ9XCJcIiAvPlxuICAgICAgICB7eyB0YWIubGFiZWwgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmF2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ3dvcmtzcGFjZXMnOyBlbHNlIHBsYWNlaG9sZGVyXCI+XG4gICAgICA8YXBwLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvYXBwLWxvYWRlcj5cblxuICAgICAgPHRrLXdvcmtzcGFjZXMtZmlsdGVyc1xuICAgICAgICBbcmVzdWx0Q291bnRdPVwidG90YWxcIlxuICAgICAgICBbdHlwZU9wdGlvbnNdPVwidHlwZU9wdGlvbnNcIlxuICAgICAgICBbbG9jYXRpb25PcHRpb25zXT1cImxvY2F0aW9uT3B0aW9uc1wiXG4gICAgICAgIChzZWFyY2hDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICh0eXBlQ2hhbmdlKT1cIm9uVHlwZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGxvY2F0aW9uQ2hhbmdlKT1cIm9uTG9jYXRpb25GaWx0ZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChhZGRXb3Jrc3BhY2UpPVwiYWRkV29ya3NwYWNlLmVtaXQoKVwiPlxuICAgICAgPC90ay13b3Jrc3BhY2VzLWZpbHRlcnM+XG5cbiAgICAgIDx0ay13b3Jrc3BhY2VzLXRhYmxlXG4gICAgICAgIFt3b3Jrc3BhY2VzXT1cImZpbHRlcmVkV29ya3NwYWNlc1wiXG4gICAgICAgIFt0b3RhbF09XCJ0b3RhbFwiXG4gICAgICAgIFtwYWdlSW5kZXhdPVwicGFnZUluZGV4XCJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgW3BlbmRpbmdXb3Jrc3BhY2VJZHNdPVwicGVuZGluZ1dvcmtzcGFjZUlkc1wiXG4gICAgICAgIChvcGVuV29ya3NwYWNlKT1cIm9uT3BlbldvcmtzcGFjZSgkZXZlbnQpXCJcbiAgICAgICAgKGxpY2Vuc2VXaXRoSHlicmlkKT1cIm9uTW92ZVRvTVQoJGV2ZW50KVwiXG4gICAgICAgIChtaWdyYXRlVG9NVCk9XCJvbk1vdmVUb01UKCRldmVudClcIlxuICAgICAgICAoZW5hYmxlV2ViZXhDYWxsaW5nKT1cIm9uRW5hYmxlV2ViZXhDYWxsaW5nKCRldmVudClcIlxuICAgICAgICAobWlncmF0ZVRvVUNNKT1cIm9uTWlncmF0ZVRvVUNNKCRldmVudClcIlxuICAgICAgICAoYWRkRGV2aWNlKT1cImFkZERldmljZS5lbWl0KCRldmVudClcIlxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPC90ay13b3Jrc3BhY2VzLXRhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzX19wbGFjZWhvbGRlclwiPlRoaXMgc2VjdGlvbiBpc24ndCBhdmFpbGFibGUgaW4gdGhpcyB3aWRnZXQgeWV0LjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZGV0YWlsVmlldz5cbiAgICA8dGstd29ya3NwYWNlLWRldGFpbFxuICAgICAgKm5nSWY9XCJzZWxlY3RlZFdvcmtzcGFjZVwiXG4gICAgICBbd29ya3NwYWNlXT1cInNlbGVjdGVkV29ya3NwYWNlXCJcbiAgICAgIFtjb25uZWN0aW9uVHlwZV09XCJzZWxlY3RlZENvbm5lY3Rpb25UeXBlXCJcbiAgICAgIChiYWNrKT1cIm9uQmFja1RvTGlzdCgpXCI+XG4gICAgPC90ay13b3Jrc3BhY2UtZGV0YWlsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
48
48
  ],
49
49
  }]
50
50
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFxQm5FLE1BQU0sT0FBTyxnQkFBZ0I7OzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFqQnpCLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0Isa0JBQWtCLGFBR2xCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWMsYUFHZCxtQkFBbUI7K0dBR1YsZ0JBQWdCLFlBVHpCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWM7NEZBTUwsZ0JBQWdCO2tCQW5CNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZXNDb21wb25lbnQgfSBmcm9tICcuL3dvcmtzcGFjZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya3NwYWNlc0ZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya3NwYWNlcy1maWx0ZXJzL3dvcmtzcGFjZXMtZmlsdGVycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2VzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya3NwYWNlcy10YWJsZS93b3Jrc3BhY2VzLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtZGV0YWlsL3dvcmtzcGFjZS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtY29uZmlybS1kaWFsb2cvd29ya3NwYWNlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdXRpbHMvYXBwLWxvYWRlci9hcHAtbG9hZGVyJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBXb3Jrc3BhY2VzQ29tcG9uZW50LFxyXG4gICAgV29ya3NwYWNlc0ZpbHRlcnNDb21wb25lbnQsXHJcbiAgICBXb3Jrc3BhY2VzVGFibGVDb21wb25lbnQsXHJcbiAgICBXb3Jrc3BhY2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBXb3Jrc3BhY2VDb25maXJtRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXBwTG9hZGVyQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBXb3Jrc3BhY2VzQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VzTW9kdWxlIHsgfVxyXG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFxQm5FLE1BQU0sT0FBTyxnQkFBZ0I7OzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFqQnpCLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0Isa0JBQWtCLGFBR2xCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWMsYUFHZCxtQkFBbUI7K0dBR1YsZ0JBQWdCLFlBVHpCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWM7NEZBTUwsZ0JBQWdCO2tCQW5CNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgV29ya3NwYWNlc0NvbXBvbmVudCB9IGZyb20gJy4vd29ya3NwYWNlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya3NwYWNlc0ZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya3NwYWNlcy1maWx0ZXJzL3dvcmtzcGFjZXMtZmlsdGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya3NwYWNlc1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtzcGFjZXMtdGFibGUvd29ya3NwYWNlcy10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya3NwYWNlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtzcGFjZS1kZXRhaWwvd29ya3NwYWNlLWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtY29uZmlybS1kaWFsb2cvd29ya3NwYWNlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL3V0aWxzL2FwcC1sb2FkZXIvYXBwLWxvYWRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFdvcmtzcGFjZXNDb21wb25lbnQsXG4gICAgV29ya3NwYWNlc0ZpbHRlcnNDb21wb25lbnQsXG4gICAgV29ya3NwYWNlc1RhYmxlQ29tcG9uZW50LFxuICAgIFdvcmtzcGFjZURldGFpbENvbXBvbmVudCxcbiAgICBXb3Jrc3BhY2VDb25maXJtRGlhbG9nQ29tcG9uZW50LFxuICAgIEFwcExvYWRlckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgV29ya3NwYWNlc0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc01vZHVsZSB7IH1cbiJdfQ==
@@ -342,10 +342,10 @@ class LicencesRequirementComponent {
342
342
  }
343
343
  }
344
344
  LicencesRequirementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LicencesRequirementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
345
- LicencesRequirementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LicencesRequirementComponent, selector: "cc-licenses-requirement", inputs: { customerId: "customerId", host: "host", token: "token" }, usesOnChanges: true, ngImport: i0, template: "<tk-card title=\"Licenses requirement\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div\r\n class=\"widget-body\"\r\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\r\n >\r\n <div class=\"left-section\">\r\n <mat-select\r\n [(value)]=\"selectedSummaryIndex\"\r\n (selectionChange)=\"onFilterChange($event.value)\"\r\n class=\"filter-select\"\r\n >\r\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\r\n {{ option }}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <div class=\"chart-section\">\r\n <div class=\"chart-wrapper\">\r\n <apx-chart\r\n [series]=\"viewModel.chartOptions.series\"\r\n [chart]=\"viewModel.chartOptions.chart\"\r\n [labels]=\"viewModel.chartOptions.labels\"\r\n [colors]=\"viewModel.chartOptions.colors\"\r\n [legend]=\"viewModel.chartOptions.legend\"\r\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\r\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\r\n [tooltip]=\"viewModel.chartOptions.tooltip\"\r\n >\r\n </apx-chart>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\r\n <span\r\n class=\"legend-marker\"\r\n [style.backgroundColor]=\"item.color\"\r\n ></span>\r\n <span class=\"legend-label\">{{ item.label }}</span>\r\n <span class=\"legend-value\">{{ item.count | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"divider\" aria-hidden=\"true\"></div>\r\n\r\n <div class=\"table-section\">\r\n <div class=\"lic-table-header\">\r\n <span>License</span>\r\n <span>Required</span>\r\n </div>\r\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\r\n <span>{{ row.label }}</span>\r\n <span>{{ row.value | number }}</span>\r\n </div>\r\n <div class=\"table-row total-row\">\r\n <span>Total</span>\r\n <span>{{ viewModel.totalRequired | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #widgetState>\r\n <div class=\"state-message\" *ngIf=\"loading\">\r\n Loading license requirements\u2026\r\n </div>\r\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\r\n Unable to load license requirements.\r\n </div>\r\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\r\n No license data available.\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</tk-card>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: CardComponent, selector: "tk-card", inputs: ["title"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
345
+ LicencesRequirementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LicencesRequirementComponent, selector: "cc-licenses-requirement", inputs: { customerId: "customerId", host: "host", token: "token" }, usesOnChanges: true, ngImport: i0, template: "<tk-card title=\"Licenses requirement\">\n <ng-container ngProjectAs=\"card-content\">\n <div\n class=\"widget-body\"\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\n >\n <div class=\"left-section\">\n <mat-select\n [(value)]=\"selectedSummaryIndex\"\n (selectionChange)=\"onFilterChange($event.value)\"\n class=\"filter-select\"\n >\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\n {{ option }}\n </mat-option>\n </mat-select>\n\n <div class=\"chart-section\">\n <div class=\"chart-wrapper\">\n <apx-chart\n [series]=\"viewModel.chartOptions.series\"\n [chart]=\"viewModel.chartOptions.chart\"\n [labels]=\"viewModel.chartOptions.labels\"\n [colors]=\"viewModel.chartOptions.colors\"\n [legend]=\"viewModel.chartOptions.legend\"\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\n [tooltip]=\"viewModel.chartOptions.tooltip\"\n >\n </apx-chart>\n </div>\n <div class=\"legend\">\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\n <span\n class=\"legend-marker\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"legend-label\">{{ item.label }}</span>\n <span class=\"legend-value\">{{ item.count | number }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"divider\" aria-hidden=\"true\"></div>\n\n <div class=\"table-section\">\n <div class=\"lic-table-header\">\n <span>License</span>\n <span>Required</span>\n </div>\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\n <span>{{ row.label }}</span>\n <span>{{ row.value | number }}</span>\n </div>\n <div class=\"table-row total-row\">\n <span>Total</span>\n <span>{{ viewModel.totalRequired | number }}</span>\n </div>\n </div>\n </div>\n\n <ng-template #widgetState>\n <div class=\"state-message\" *ngIf=\"loading\">\n Loading license requirements\u2026\n </div>\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\n Unable to load license requirements.\n </div>\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\n No license data available.\n </div>\n </ng-template>\n </ng-container>\n</tk-card>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: CardComponent, selector: "tk-card", inputs: ["title"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
346
346
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LicencesRequirementComponent, decorators: [{
347
347
  type: Component,
348
- args: [{ selector: 'cc-licenses-requirement', template: "<tk-card title=\"Licenses requirement\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div\r\n class=\"widget-body\"\r\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\r\n >\r\n <div class=\"left-section\">\r\n <mat-select\r\n [(value)]=\"selectedSummaryIndex\"\r\n (selectionChange)=\"onFilterChange($event.value)\"\r\n class=\"filter-select\"\r\n >\r\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\r\n {{ option }}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <div class=\"chart-section\">\r\n <div class=\"chart-wrapper\">\r\n <apx-chart\r\n [series]=\"viewModel.chartOptions.series\"\r\n [chart]=\"viewModel.chartOptions.chart\"\r\n [labels]=\"viewModel.chartOptions.labels\"\r\n [colors]=\"viewModel.chartOptions.colors\"\r\n [legend]=\"viewModel.chartOptions.legend\"\r\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\r\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\r\n [tooltip]=\"viewModel.chartOptions.tooltip\"\r\n >\r\n </apx-chart>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\r\n <span\r\n class=\"legend-marker\"\r\n [style.backgroundColor]=\"item.color\"\r\n ></span>\r\n <span class=\"legend-label\">{{ item.label }}</span>\r\n <span class=\"legend-value\">{{ item.count | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"divider\" aria-hidden=\"true\"></div>\r\n\r\n <div class=\"table-section\">\r\n <div class=\"lic-table-header\">\r\n <span>License</span>\r\n <span>Required</span>\r\n </div>\r\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\r\n <span>{{ row.label }}</span>\r\n <span>{{ row.value | number }}</span>\r\n </div>\r\n <div class=\"table-row total-row\">\r\n <span>Total</span>\r\n <span>{{ viewModel.totalRequired | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #widgetState>\r\n <div class=\"state-message\" *ngIf=\"loading\">\r\n Loading license requirements\u2026\r\n </div>\r\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\r\n Unable to load license requirements.\r\n </div>\r\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\r\n No license data available.\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</tk-card>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"] }]
348
+ args: [{ selector: 'cc-licenses-requirement', template: "<tk-card title=\"Licenses requirement\">\n <ng-container ngProjectAs=\"card-content\">\n <div\n class=\"widget-body\"\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\n >\n <div class=\"left-section\">\n <mat-select\n [(value)]=\"selectedSummaryIndex\"\n (selectionChange)=\"onFilterChange($event.value)\"\n class=\"filter-select\"\n >\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\n {{ option }}\n </mat-option>\n </mat-select>\n\n <div class=\"chart-section\">\n <div class=\"chart-wrapper\">\n <apx-chart\n [series]=\"viewModel.chartOptions.series\"\n [chart]=\"viewModel.chartOptions.chart\"\n [labels]=\"viewModel.chartOptions.labels\"\n [colors]=\"viewModel.chartOptions.colors\"\n [legend]=\"viewModel.chartOptions.legend\"\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\n [tooltip]=\"viewModel.chartOptions.tooltip\"\n >\n </apx-chart>\n </div>\n <div class=\"legend\">\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\n <span\n class=\"legend-marker\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"legend-label\">{{ item.label }}</span>\n <span class=\"legend-value\">{{ item.count | number }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"divider\" aria-hidden=\"true\"></div>\n\n <div class=\"table-section\">\n <div class=\"lic-table-header\">\n <span>License</span>\n <span>Required</span>\n </div>\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\n <span>{{ row.label }}</span>\n <span>{{ row.value | number }}</span>\n </div>\n <div class=\"table-row total-row\">\n <span>Total</span>\n <span>{{ viewModel.totalRequired | number }}</span>\n </div>\n </div>\n </div>\n\n <ng-template #widgetState>\n <div class=\"state-message\" *ngIf=\"loading\">\n Loading license requirements\u2026\n </div>\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\n Unable to load license requirements.\n </div>\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\n No license data available.\n </div>\n </ng-template>\n </ng-container>\n</tk-card>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"] }]
349
349
  }], propDecorators: { customerId: [{
350
350
  type: Input
351
351
  }], host: [{