@c8y/ngx-components 1021.38.1 → 1021.49.1

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 (524) hide show
  1. package/api/services.d.ts +1 -1
  2. package/api/services.d.ts.map +1 -1
  3. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
  4. package/connectivity/abstract-connectivity-tab.factory.d.ts +1 -1
  5. package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
  6. package/context-dashboard/context-dashboard.model.d.ts +4 -2
  7. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  8. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  9. package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts +1 -0
  10. package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts.map +1 -1
  11. package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts +0 -1
  12. package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
  13. package/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
  14. package/context-dashboard/new-dashboard.guard.d.ts +1 -1
  15. package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
  16. package/core/action/action.component.d.ts +2 -1
  17. package/core/action/action.component.d.ts.map +1 -1
  18. package/core/action/action.model.d.ts +3 -2
  19. package/core/action/action.model.d.ts.map +1 -1
  20. package/core/breadcrumb/breadcrumb-item.component.d.ts +2 -1
  21. package/core/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
  22. package/core/breadcrumb/breadcrumb.model.d.ts +2 -1
  23. package/core/breadcrumb/breadcrumb.model.d.ts.map +1 -1
  24. package/core/common/ApplicationOptions.d.ts +1 -0
  25. package/core/common/ApplicationOptions.d.ts.map +1 -1
  26. package/core/common/empty-state/empty-state.component.d.ts +2 -1
  27. package/core/common/empty-state/empty-state.component.d.ts.map +1 -1
  28. package/core/common/get-group-icon.pipe.d.ts +2 -1
  29. package/core/common/get-group-icon.pipe.d.ts.map +1 -1
  30. package/core/common/group.service.d.ts +22 -7
  31. package/core/common/group.service.d.ts.map +1 -1
  32. package/core/common/icon.directive.d.ts +5 -5
  33. package/core/common/icon.directive.d.ts.map +1 -1
  34. package/core/common/service-registry.model.d.ts +2 -1
  35. package/core/common/service-registry.model.d.ts.map +1 -1
  36. package/core/data-grid/data-grid.model.d.ts +2 -1
  37. package/core/data-grid/data-grid.model.d.ts.map +1 -1
  38. package/core/docs/docs.models.d.ts +2 -1
  39. package/core/docs/docs.models.d.ts.map +1 -1
  40. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts +5 -1
  41. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts.map +1 -1
  42. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts +5 -1
  43. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts.map +1 -1
  44. package/core/docs/support-outlet/support-outlet.component.d.ts +5 -1
  45. package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
  46. package/core/forms/filter-input.component.d.ts +8 -3
  47. package/core/forms/filter-input.component.d.ts.map +1 -1
  48. package/core/list-group/list-item-action.component.d.ts +2 -1
  49. package/core/list-group/list-item-action.component.d.ts.map +1 -1
  50. package/core/list-group/list-item-icon.component.d.ts +2 -1
  51. package/core/list-group/list-item-icon.component.d.ts.map +1 -1
  52. package/core/login/login.service.d.ts.map +1 -1
  53. package/core/navigator/navigator-icon.component.d.ts +1 -1
  54. package/core/navigator/navigator-icon.component.d.ts.map +1 -1
  55. package/core/navigator/navigator-node-data.d.ts +2 -1
  56. package/core/navigator/navigator-node-data.d.ts.map +1 -1
  57. package/core/navigator/navigator-node.component.d.ts.map +1 -1
  58. package/core/navigator/navigator-node.d.ts +2 -1
  59. package/core/navigator/navigator-node.d.ts.map +1 -1
  60. package/core/plugins/plugins.model.d.ts +7 -2
  61. package/core/plugins/plugins.model.d.ts.map +1 -1
  62. package/core/plugins/plugins.service.d.ts.map +1 -1
  63. package/core/properties-list/properties-list.component.d.ts +2 -1
  64. package/core/properties-list/properties-list.component.d.ts.map +1 -1
  65. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts +2 -2
  66. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts.map +1 -1
  67. package/core/router/context-route.service.d.ts.map +1 -1
  68. package/core/router/router.model.d.ts +1 -1
  69. package/core/router/router.model.d.ts.map +1 -1
  70. package/core/router/scoped-context-route.service.d.ts.map +1 -1
  71. package/core/search/search.model.d.ts +2 -1
  72. package/core/search/search.model.d.ts.map +1 -1
  73. package/core/select/select-keyboard.service.d.ts +4 -0
  74. package/core/select/select-keyboard.service.d.ts.map +1 -1
  75. package/core/select/select.component.d.ts +14 -3
  76. package/core/select/select.component.d.ts.map +1 -1
  77. package/core/select-modal/select-modal.component.d.ts +2 -1
  78. package/core/select-modal/select-modal.component.d.ts.map +1 -1
  79. package/core/shared/core.model.d.ts +5 -1
  80. package/core/shared/core.model.d.ts.map +1 -1
  81. package/core/tabs/conditional-tabs-outlet.component.d.ts.map +1 -1
  82. package/core/tabs/tab.component.d.ts +3 -2
  83. package/core/tabs/tab.component.d.ts.map +1 -1
  84. package/core/tabs/tab.model.d.ts +10 -5
  85. package/core/tabs/tab.model.d.ts.map +1 -1
  86. package/core/tabs/tabs-outlet.component.d.ts +7 -4
  87. package/core/tabs/tabs-outlet.component.d.ts.map +1 -1
  88. package/core/user/user-menu-item.component.d.ts +2 -1
  89. package/core/user/user-menu-item.component.d.ts.map +1 -1
  90. package/core/user/user.model.d.ts +2 -1
  91. package/core/user/user.model.d.ts.map +1 -1
  92. package/core/wizard/wizard.model.d.ts +4 -3
  93. package/core/wizard/wizard.model.d.ts.map +1 -1
  94. package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
  95. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +15 -46
  96. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  97. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts +3 -0
  98. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts.map +1 -1
  99. package/datapoint-selector/datapoint-selection.model.d.ts +6 -7
  100. package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
  101. package/datapoints-export-selector/datapoints-export-selector.model.d.ts +2 -1
  102. package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
  103. package/device-grid/columns/icon.cell-renderer.component.d.ts +14 -0
  104. package/device-grid/columns/icon.cell-renderer.component.d.ts.map +1 -0
  105. package/device-grid/columns/index.d.ts +1 -0
  106. package/device-grid/columns/index.d.ts.map +1 -1
  107. package/device-grid/device-grid.component.d.ts.map +1 -1
  108. package/device-grid/device-grid.service.d.ts +0 -2
  109. package/device-grid/device-grid.service.d.ts.map +1 -1
  110. package/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.d.ts.map +1 -0
  111. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts +11 -0
  112. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts.map +1 -0
  113. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +13 -0
  114. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -0
  115. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts +13 -0
  116. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts.map +1 -0
  117. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +57 -0
  118. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -0
  119. package/device-provisioned-certificates/index.d.ts +2 -0
  120. package/device-provisioned-certificates/index.d.ts.map +1 -0
  121. package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
  122. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  123. package/ecosystem/application-plugins/application-plugins.module.d.ts +2 -2
  124. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  125. package/ecosystem/application-plugins/index.d.ts +1 -0
  126. package/ecosystem/application-plugins/index.d.ts.map +1 -1
  127. package/ecosystem/application-plugins/install-plugin.component.d.ts +9 -11
  128. package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
  129. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +12 -0
  130. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -0
  131. package/ecosystem/application-plugins/plugin-list-item.component.d.ts +8 -3
  132. package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
  133. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  134. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  135. package/ecosystem/applications/application-list/application-list.component.d.ts +2 -2
  136. package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
  137. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
  138. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +11 -0
  139. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -0
  140. package/ecosystem/archived-confirm/archived-confirm.module.d.ts +10 -0
  141. package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -0
  142. package/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.d.ts.map +1 -0
  143. package/ecosystem/archived-confirm/index.d.ts +3 -0
  144. package/ecosystem/archived-confirm/index.d.ts.map +1 -0
  145. package/ecosystem/ecosystem.module.d.ts +2 -1
  146. package/ecosystem/ecosystem.module.d.ts.map +1 -1
  147. package/ecosystem/features/feature-list.component.d.ts +2 -2
  148. package/ecosystem/features/feature-list.component.d.ts.map +1 -1
  149. package/ecosystem/microservices/microservice-list.component.d.ts +2 -2
  150. package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
  151. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  152. package/ecosystem/packages/package-details/package-details.component.d.ts +7 -2
  153. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  154. package/ecosystem/packages/package-list/packages-list.component.d.ts +2 -2
  155. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  156. package/ecosystem/shared/add-application.component.d.ts +2 -1
  157. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  158. package/ecosystem/shared/application-card.component.d.ts +4 -0
  159. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  160. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +12 -0
  161. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -0
  162. package/ecosystem/shared/ecosystem.constants.d.ts +4 -0
  163. package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
  164. package/ecosystem/shared/ecosystem.model.d.ts +5 -1
  165. package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
  166. package/ecosystem/shared/ecosystem.service.d.ts +7 -0
  167. package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
  168. package/ecosystem/shared/index.d.ts +1 -0
  169. package/ecosystem/shared/index.d.ts.map +1 -1
  170. package/ecosystem/shared/list-filters/list-filters.component.d.ts +14 -4
  171. package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
  172. package/ecosystem/shared/list-filters/list-filters.model.d.ts +8 -2
  173. package/ecosystem/shared/list-filters/list-filters.model.d.ts.map +1 -1
  174. package/ecosystem/shared/shared-ecosystem.module.d.ts +9 -8
  175. package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
  176. package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
  177. package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
  178. package/esm2022/alarms/alarm-info.component.mjs +1 -1
  179. package/esm2022/api/services.mjs +2 -2
  180. package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
  181. package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
  182. package/esm2022/context-dashboard/add-dashboard.component.mjs +4 -2
  183. package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
  184. package/esm2022/context-dashboard/context-dashboard.service.mjs +2 -2
  185. package/esm2022/context-dashboard/dashboard-detail.component.mjs +5 -3
  186. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.model.mjs +1 -1
  187. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.service.mjs +5 -15
  188. package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +2 -2
  189. package/esm2022/context-dashboard/new-dashboard.guard.mjs +1 -1
  190. package/esm2022/core/action/action.component.mjs +1 -1
  191. package/esm2022/core/action/action.model.mjs +1 -1
  192. package/esm2022/core/bootstrap/bootstrap.component.mjs +1 -1
  193. package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +1 -1
  194. package/esm2022/core/breadcrumb/breadcrumb.model.mjs +1 -1
  195. package/esm2022/core/common/ApplicationOptions.mjs +1 -1
  196. package/esm2022/core/common/empty-state/empty-state.component.mjs +1 -1
  197. package/esm2022/core/common/get-group-icon.pipe.mjs +1 -1
  198. package/esm2022/core/common/group.service.mjs +2 -2
  199. package/esm2022/core/common/icon.directive.mjs +1 -1
  200. package/esm2022/core/common/service-registry.model.mjs +1 -1
  201. package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
  202. package/esm2022/core/docs/docs.models.mjs +1 -1
  203. package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
  204. package/esm2022/core/forms/filter-input.component.mjs +22 -7
  205. package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
  206. package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
  207. package/esm2022/core/login/credentials.component.mjs +2 -2
  208. package/esm2022/core/login/login.service.mjs +18 -7
  209. package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
  210. package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
  211. package/esm2022/core/navigator/navigator-node.mjs +1 -1
  212. package/esm2022/core/plugins/plugins.model.mjs +5 -1
  213. package/esm2022/core/plugins/plugins.service.mjs +6 -2
  214. package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
  215. package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
  216. package/esm2022/core/router/context-route.service.mjs +4 -2
  217. package/esm2022/core/router/router.model.mjs +1 -1
  218. package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
  219. package/esm2022/core/search/search.model.mjs +1 -1
  220. package/esm2022/core/select/select-keyboard.service.mjs +7 -3
  221. package/esm2022/core/select/select.component.mjs +36 -8
  222. package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
  223. package/esm2022/core/shared/core.model.mjs +6 -2
  224. package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
  225. package/esm2022/core/tabs/tab.component.mjs +1 -1
  226. package/esm2022/core/tabs/tab.model.mjs +1 -1
  227. package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
  228. package/esm2022/core/user/user-menu-item.component.mjs +1 -1
  229. package/esm2022/core/user/user.model.mjs +1 -1
  230. package/esm2022/core/wizard/wizard.model.mjs +1 -1
  231. package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
  232. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
  233. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
  234. package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
  235. package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
  236. package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
  237. package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
  238. package/esm2022/device-grid/columns/index.mjs +2 -1
  239. package/esm2022/device-grid/device-grid.component.mjs +3 -3
  240. package/esm2022/device-grid/device-grid.service.mjs +7 -25
  241. package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
  242. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
  243. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
  244. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
  245. package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
  246. package/esm2022/device-provisioned-certificates/index.mjs +2 -0
  247. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
  248. package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
  249. package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
  250. package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
  251. package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
  252. package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
  253. package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
  254. package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
  255. package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
  256. package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
  257. package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
  258. package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
  259. package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
  260. package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
  261. package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
  262. package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
  263. package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
  264. package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
  265. package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
  266. package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
  267. package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
  268. package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
  269. package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
  270. package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
  271. package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
  272. package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
  273. package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
  274. package/esm2022/ecosystem/shared/index.mjs +2 -1
  275. package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
  276. package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
  277. package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
  278. package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
  279. package/esm2022/files-repository/files-repository.component.mjs +2 -2
  280. package/esm2022/files-repository/files-repository.service.mjs +5 -16
  281. package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
  282. package/esm2022/icon-selector/icons/index.mjs +1 -1
  283. package/esm2022/operations/shared/status-option.model.mjs +1 -1
  284. package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
  285. package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
  286. package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
  287. package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
  288. package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
  289. package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
  290. package/esm2022/remote-access/configurations/index.mjs +16 -0
  291. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
  292. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
  293. package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
  294. package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
  295. package/esm2022/remote-access/data/index.mjs +3 -0
  296. package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
  297. package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
  298. package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
  299. package/esm2022/remote-access/passthrough/index.mjs +36 -0
  300. package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
  301. package/esm2022/remote-access/shared/index.mjs +3 -0
  302. package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
  303. package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
  304. package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
  305. package/esm2022/remote-access/ssh/index.mjs +73 -0
  306. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
  307. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
  308. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
  309. package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
  310. package/esm2022/remote-access/telnet/index.mjs +43 -0
  311. package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
  312. package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
  313. package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
  314. package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
  315. package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
  316. package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
  317. package/esm2022/remote-access/vnc/index.mjs +73 -0
  318. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
  319. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
  320. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
  321. package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
  322. package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
  323. package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
  324. package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
  325. package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
  326. package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
  327. package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
  328. package/esm2022/repository/shared/repository.model.mjs +1 -1
  329. package/esm2022/repository/shared/repository.service.mjs +3 -3
  330. package/esm2022/services/status-options/status-options.model.mjs +1 -1
  331. package/esm2022/sub-assets/group-info.component.mjs +1 -1
  332. package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
  333. package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
  334. package/esm2022/upgrade/bridge.service.mjs +16 -2
  335. package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
  336. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
  337. package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
  338. package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
  339. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  340. package/fesm2022/c8y-ngx-components-api.mjs +3 -2
  341. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  342. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
  343. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  344. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
  345. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  346. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  347. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  348. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
  349. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  350. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  351. package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
  352. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  353. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
  354. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
  355. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
  356. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  357. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
  358. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
  359. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
  360. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  361. package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
  362. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  363. package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
  364. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  365. package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
  366. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  367. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
  368. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  369. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
  370. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  371. package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
  372. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  373. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
  374. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
  375. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
  376. package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
  377. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
  378. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
  379. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
  380. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
  381. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
  382. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
  383. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
  384. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
  385. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
  386. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
  387. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
  388. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
  389. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
  390. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
  391. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
  392. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
  393. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
  394. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
  395. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  396. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
  397. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  398. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  399. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  400. package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
  401. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  402. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  403. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  404. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
  405. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  406. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
  407. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  408. package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
  409. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  410. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  411. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
  412. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  413. package/fesm2022/c8y-ngx-components.mjs +151 -38
  414. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  415. package/files-repository/files-repository.component.d.ts.map +1 -1
  416. package/files-repository/files-repository.service.d.ts +0 -2
  417. package/files-repository/files-repository.service.d.ts.map +1 -1
  418. package/icon-selector/icon-selector.component.d.ts +3 -2
  419. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  420. package/icon-selector/icons/index.d.ts +1 -0
  421. package/icon-selector/icons/index.d.ts.map +1 -1
  422. package/locales/de.po +157 -5
  423. package/locales/es.po +157 -5
  424. package/locales/fr.po +157 -5
  425. package/locales/ja_JP.po +156 -5
  426. package/locales/ko.po +156 -5
  427. package/locales/locales.pot +156 -4
  428. package/locales/nl.po +157 -5
  429. package/locales/pl.po +157 -5
  430. package/locales/pt_BR.po +157 -5
  431. package/locales/zh_CN.po +156 -5
  432. package/locales/zh_TW.po +156 -5
  433. package/operations/shared/status-option.model.d.ts +2 -1
  434. package/operations/shared/status-option.model.d.ts.map +1 -1
  435. package/package.json +1 -1
  436. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
  437. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  438. package/register-device/general/general-device-registration-button.component.d.ts +1 -1
  439. package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
  440. package/register-device/general/general-device-registration.component.d.ts +21 -7
  441. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  442. package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
  443. package/remote-access/configurations/index.d.ts +3 -0
  444. package/remote-access/configurations/index.d.ts.map +1 -0
  445. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
  446. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
  447. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
  448. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
  449. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
  450. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
  451. package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
  452. package/remote-access/data/index.d.ts +3 -0
  453. package/remote-access/data/index.d.ts.map +1 -0
  454. package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
  455. package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
  456. package/remote-access/data/remote-access.service.d.ts +94 -0
  457. package/remote-access/data/remote-access.service.d.ts.map +1 -0
  458. package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
  459. package/remote-access/passthrough/index.d.ts +17 -0
  460. package/remote-access/passthrough/index.d.ts.map +1 -0
  461. package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
  462. package/remote-access/shared/index.d.ts +3 -0
  463. package/remote-access/shared/index.d.ts.map +1 -0
  464. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
  465. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
  466. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
  467. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
  468. package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
  469. package/remote-access/ssh/index.d.ts +22 -0
  470. package/remote-access/ssh/index.d.ts.map +1 -0
  471. package/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -0
  472. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
  473. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
  474. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
  475. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
  476. package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
  477. package/remote-access/telnet/index.d.ts +17 -0
  478. package/remote-access/telnet/index.d.ts.map +1 -0
  479. package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
  480. package/remote-access/terminal-viewer/index.d.ts +2 -0
  481. package/remote-access/terminal-viewer/index.d.ts.map +1 -0
  482. package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
  483. package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
  484. package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
  485. package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
  486. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
  487. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
  488. package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
  489. package/remote-access/vnc/index.d.ts +22 -0
  490. package/remote-access/vnc/index.d.ts.map +1 -0
  491. package/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -0
  492. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
  493. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
  494. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
  495. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
  496. package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
  497. package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
  498. package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
  499. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
  500. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
  501. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
  502. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
  503. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
  504. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
  505. package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
  506. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  507. package/repository/shared/repository.model.d.ts +2 -1
  508. package/repository/shared/repository.model.d.ts.map +1 -1
  509. package/services/status-options/status-options.model.d.ts +2 -1
  510. package/services/status-options/status-options.model.d.ts.map +1 -1
  511. package/sub-assets/group-info.component.d.ts +2 -1
  512. package/sub-assets/group-info.component.d.ts.map +1 -1
  513. package/translation-editor/data/translation-store.service.d.ts.map +1 -1
  514. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
  515. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  516. package/upgrade/bridge.service.d.ts +5 -0
  517. package/upgrade/bridge.service.d.ts.map +1 -1
  518. package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
  519. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
  520. package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
  521. package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
  522. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
  523. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
  524. package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
@@ -134,7 +134,8 @@ export class DeviceGridService extends DataGridService {
134
134
  const filters = {
135
135
  ...this.getDevicesFilters(columns, pagination, query, false, text),
136
136
  withGroups: true,
137
- withChildren
137
+ withChildren,
138
+ withTotalElements: true
138
139
  };
139
140
  return this.inventoryService.list(filters);
140
141
  }
@@ -147,38 +148,19 @@ export class DeviceGridService extends DataGridService {
147
148
  };
148
149
  return this.inventoryService.childDevicesList(id, filters);
149
150
  }
150
- async getCount(columns, pagination, query = {}, text = null) {
151
- const filters = {
152
- ...this.getDevicesFilters(columns, pagination, query, false, text),
153
- pageSize: 1,
154
- currentPage: 1
155
- };
156
- return (await this.inventoryService.list(filters)).paging.totalPages;
157
- }
158
- async getCountChildDevices(columns, pagination, query = {}, id) {
159
- const childDeviceFilters = true;
160
- const filters = {
161
- ...this.getDevicesFilters(columns, pagination, query, childDeviceFilters),
162
- pageSize: 1,
163
- currentPage: 1
164
- };
165
- return (await this.inventoryService.childDevicesList(id, filters)).paging.totalPages;
166
- }
167
151
  async getTotalChildDevices(query = {}, id) {
168
152
  const filters = {
169
153
  q: this.queriesUtil.buildQuery(query),
170
- pageSize: 1,
171
- withTotalPages: true
154
+ withTotalElements: true
172
155
  };
173
- return (await this.inventoryService.childDevicesList(id, filters)).paging.totalPages;
156
+ return (await this.inventoryService.childDevicesList(id, filters)).paging.totalElements;
174
157
  }
175
158
  async getTotal(query = {}) {
176
159
  const filters = {
177
160
  q: this.queriesUtil.buildQuery(query),
178
- pageSize: 1,
179
- withTotalPages: true
161
+ withTotalElements: true
180
162
  };
181
- return (await this.inventoryService.list(filters)).paging.totalPages;
163
+ return (await this.inventoryService.list(filters)).paging.totalElements;
182
164
  }
183
165
  getDeviceQueryString(columns, query) {
184
166
  let fullQuery = this.getQueryObj(columns);
@@ -215,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
215
197
  providedIn: 'root'
216
198
  }]
217
199
  }], ctorParameters: () => [{ type: i1.InventoryService }, { type: i1.UserService }, { type: i2.TranslateService }, { type: i3.AlertService }, { type: i3.ModalService }, { type: i4.ColumnUtilService }, { type: i3.UserPreferencesService }] });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWdyaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmljZS1ncmlkL2RldmljZS1ncmlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLGdCQUFnQixFQUFTLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRixPQUFPLEVBQ0wsWUFBWSxFQUdaLGVBQWUsRUFDZixPQUFPLEVBR1AsWUFBWSxFQUVaLE1BQU0sRUFDTixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7O0FBS2xGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBR3BELFlBQ1ksZ0JBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hC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UCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElVc2VyLCBVc2VyU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0U2VydmljZSxcbiAgQnVsa0FjdGlvbkNvbnRyb2wsXG4gIENvbHVtbixcbiAgRGF0YUdyaWRTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBHcmlkQ29uZmlnLFxuICBIZWFkZXJBY3Rpb25Db250cm9sLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFN0YXR1cyxcbiAgVXNlclByZWZlcmVuY2VzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFsYXJtc0RldmljZUdyaWRDb2x1bW4gfSBmcm9tICcuL2NvbHVtbnMvYWxhcm1zLmRldmljZS1ncmlkLWNvbHVtbic7XG5pbXBvcnQgeyBDb2x1bW5VdGlsU2VydmljZSB9IGZyb20gJy4vY29sdW1ucy9jb2x1bW4tdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb3VwRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9ncm91cC5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgSW1laURldmljZUdyaWRDb2x1bW4gfSBmcm9tICcuL2NvbHVtbnMvaW1laS5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgTW9kZWxEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL21vZGVsLmRldmljZS1ncmlkLWNvbHVtbic7XG5pbXBvcnQgeyBOYW1lRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9uYW1lLmRldmljZS1ncmlkLWNvbHVtbic7XG5pbXBvcnQgeyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9yZWdpc3RyYXRpb24tZGF0ZS5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgU2VyaWFsTnVtYmVyRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9zZXJpYWwtbnVtYmVyLmRldmljZS1ncmlkLWNvbHVtbic7XG5pbXBvcnQgeyBTdGF0dXNEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL3N0YXR1cy5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgU3lzdGVtSWREZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL3N5c3RlbS1pZC5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VHcmlkU2VydmljZSBleHRlbmRzIERhdGFHcmlkU2VydmljZSB7XG4gIHByb3RlY3RlZCBHUklEX0NPTkZJR19ERUZBVUxUX1NUT1JBR0VfS0VZID0gJ2RldmljZS1ncmlkLWNvbmZpZyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1vZGFsOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbHVtblV0aWxTZXJ2aWNlOiBDb2x1bW5VdGlsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlclByZWZlcmVuY2VzU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZVxuICApIHtcbiAgICBzdXBlcih1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlKTtcbiAgfVxuXG4gIGdldERlZmF1bHRDb2x1bW5zKCk6IENvbHVtbltdIHtcbiAgICBjb25zdCBkZWZhdWx0Q29sdW1ucyA9IFtcbiAgICAgIG5ldyBTdGF0dXNEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgTmFtZURldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBNb2RlbERldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBTZXJpYWxOdW1iZXJEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgR3JvdXBEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBTeXN0ZW1JZERldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBJbWVpRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IEFsYXJtc0RldmljZUdyaWRDb2x1bW4oKVxuICAgIF07XG5cbiAgICByZXR1cm4gZGVmYXVsdENvbHVtbnM7XG4gIH1cblxuICBnZXRDaGlsZERldmljZUdyaWRDb2x1bW5zKCk6IENvbHVtbltdIHtcbiAgICBjb25zdCBjaGlsZERldmljZUdyaWRDb2x1bW4gPSBbXG4gICAgICBuZXcgU3RhdHVzRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IE5hbWVEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgTW9kZWxEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgU2VyaWFsTnVtYmVyRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IFJlZ2lzdHJhdGlvbkRhdGVEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgU3lzdGVtSWREZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgSW1laURldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBBbGFybXNEZXZpY2VHcmlkQ29sdW1uKClcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNoaWxkRGV2aWNlR3JpZENvbHVtbjtcbiAgfVxuXG4gIGdldERlZmF1bHRQYWdpbmF0aW9uKCk6IFBhZ2luYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlU2l6ZTogMjUsXG4gICAgICBjdXJyZW50UGFnZTogMVxuICAgIH07XG4gIH1cblxuICBnZXRJbmZpbml0ZVNjcm9sbFBhZ2luYXRpb24oKTogUGFnaW5hdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VTaXplOiA1MCxcbiAgICAgIGN1cnJlbnRQYWdlOiAxXG4gICAgfTtcbiAgfVxuXG4gIGdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTogQnVsa0FjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0RGVmYXVsdEhlYWRlckFjdGlvbkNvbnRyb2xzKCk6IEhlYWRlckFjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0UHJvcGVyTmFtZShkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5VdGlsU2VydmljZS5nZXRQcm9wZXJOYW1lKGRldmljZSk7XG4gIH1cblxuICBnZXRNb2RlbChkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5VdGlsU2VydmljZS5nZXRNb2RlbChkZXZpY2UpO1xuICB9XG5cbiAgZ2V0U2VyaWFsTnVtYmVyKGRldmljZTogSU1hbmFnZWRPYmplY3QpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbHVtblV0aWxTZXJ2aWNlLmdldFNlcmlhbE51bWJlcihkZXZpY2UpO1xuICB9XG5cbiAgZ2V0UGFyZW50c05hbWVzKGRldmljZTogSU1hbmFnZWRPYmplY3QsIGZlYXR1cmVkUGFyZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbHVtblV0aWxTZXJ2aWNlLmdldFBhcmVudHNOYW1lcyhkZXZpY2UsIGZlYXR1cmVkUGFyZW50SWQpO1xuICB9XG5cbiAgZ2V0SHJlZihncm91cE9yRGV2aWNlOiBJTWFuYWdlZE9iamVjdCwgcHJlZml4ID0gJyMvJyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVXRpbFNlcnZpY2UuZ2V0SHJlZihncm91cE9yRGV2aWNlLCBwcmVmaXgpO1xuICB9XG5cbiAgZ2V0QWxhcm1zSHJlZihkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5VdGlsU2VydmljZS5nZXRBbGFybXNIcmVmKGRldmljZSk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZXZpY2VXaXRoQ2hpbGRyZW4gPSBhd2FpdCAoXG4gICAgICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5kZXRhaWwoZGV2aWNlLCB7IHdpdGhDaGlsZHJlbjogdHJ1ZSB9KVxuICAgICAgKS5kYXRhO1xuICAgICAgY29uc3QgaGFzQ2hpbGREZXZpY2VzID0gZGV2aWNlV2l0aENoaWxkcmVuLmNoaWxkRGV2aWNlcz8ucmVmZXJlbmNlcz8ubGVuZ3RoID4gMDtcbiAgICAgIGNvbnN0IGhhc0NoaWxkQWRkaXRpb25zID0gZGV2aWNlV2l0aENoaWxkcmVuLmNoaWxkQWRkaXRpb25zPy5yZWZlcmVuY2VzPy5sZW5ndGggPiAwO1xuICAgICAgY29uc3QgaGFzQ2hpbGRBc3NldHMgPSBkZXZpY2VXaXRoQ2hpbGRyZW4uY2hpbGRBc3NldHM/LnJlZmVyZW5jZXM/Lmxlbmd0aCA+IDA7XG4gICAgICBjb25zdCBzaG93RGVsZXRlQ2hpbGRyZW4gPSAoKSA9PiBoYXNDaGlsZEFkZGl0aW9ucyB8fCBoYXNDaGlsZERldmljZXMgfHwgaGFzQ2hpbGRBc3NldHM7XG4gICAgICBjb25zdCBtb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMubW9kYWwuY29uZmlybShcbiAgICAgICAgZ2V0dGV4dCgnRGVsZXRlIGRldmljZScpLFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICBnZXR0ZXh0KGBZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSBkZXZpY2UgXCJ7eyBuYW1lIH19XCIuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/YCksXG4gICAgICAgICAgZGV2aWNlXG4gICAgICAgICksXG4gICAgICAgIFN0YXR1cy5EQU5HRVIsXG4gICAgICAgIHsgb2s6IGdldHRleHQoJ0RlbGV0ZScpLCBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjYXNjYWRlOiB7XG4gICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdBbHNvIGRlbGV0ZSBjaGlsZCBoaWVyYXJjaHkgb2YgdGhpcyBkZXZpY2UuJyksXG4gICAgICAgICAgICBjaGVja2VkOiBzaG93RGVsZXRlQ2hpbGRyZW4oKSxcbiAgICAgICAgICAgIHNob3dJZjogc2hvd0RlbGV0ZUNoaWxkcmVuLFxuICAgICAgICAgICAgZGlzYWJsZWRCeUtleTogJ3dpdGhEZXZpY2VVc2VyJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgd2l0aERldmljZVVzZXI6IHtcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICBnZXR0ZXh0KCdBbHNvIGRlbGV0ZSBhc3NvY2lhdGVkIGRldmljZSBvd25lciBcInt7IG93bmVyIH19XCIuJyksXG4gICAgICAgICAgICAgIGRldmljZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0lmOiAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGlzUm9vdERldmljZSA9IGRldmljZS5jOHlfSXNEZXZpY2U7XG4gICAgICAgICAgICAgIGNvbnN0IGhhc0RldmljZVVzZXJBc093bmVyID1cbiAgICAgICAgICAgICAgICBkZXZpY2Uub3duZXIgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzRGV2aWNlVXNlcih7IGlkOiBkZXZpY2Uub3duZXIgfSBhcyB1bmtub3duIGFzIElVc2VyKTtcblxuICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbihpc1Jvb3REZXZpY2UgJiYgaGFzRGV2aWNlVXNlckFzT3duZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FibGVkQnlLZXk6ICdjYXNjYWRlJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5kZWxldGUoXG4gICAgICAgIGRldmljZSxcbiAgICAgICAgKG1vZGFsUmVzdWx0IGFzIHsgY29uZmlybU9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfSkuY29uZmlybU9wdGlvbnNcbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0RldmljZSBkZWxldGVkLicpKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gb25seSBpZiBub3QgY2FuY2VsIGZyb20gbW9kYWxcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldERhdGEoXG4gICAgY29sdW1uczogQ29sdW1uW10sXG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbixcbiAgICBxdWVyeTogYW55ID0ge30sXG4gICAgd2l0aENoaWxkcmVuID0gZmFsc2UsXG4gICAgdGV4dCA9IG51bGxcbiAgKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0RGV2aWNlc0ZpbHRlcnMoY29sdW1ucywgcGFnaW5hdGlvbiwgcXVlcnksIGZhbHNlLCB0ZXh0KSxcbiAgICAgIHdpdGhHcm91cHM6IHRydWUsXG4gICAgICB3aXRoQ2hpbGRyZW5cbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdChmaWx0ZXJzKTtcbiAgfVxuXG4gIGFzeW5jIGdldENoaWxkRGV2aWNlRGF0YShcbiAgICBjb2x1bW5zOiBDb2x1bW5bXSxcbiAgICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uLFxuICAgIHF1ZXJ5OiBhbnkgPSB7fSxcbiAgICB3aXRoQ2hpbGRyZW4gPSBmYWxzZSxcbiAgICBpZDogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IGNoaWxkRGV2aWNlRmlsdGVycyA9IHRydWU7XG4gICAgY29uc3QgZmlsdGVycyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0RGV2aWNlc0ZpbHRlcnMoY29sdW1ucywgcGFnaW5hdGlvbiwgcXVlcnksIGNoaWxkRGV2aWNlRmlsdGVycyksXG4gICAgICB3aXRoR3JvdXBzOiB0cnVlLFxuICAgICAgd2l0aENoaWxkcmVuXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmNoaWxkRGV2aWNlc0xpc3QoaWQsIGZpbHRlcnMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q291bnQoY29sdW1uczogQ29sdW1uW10sIHBhZ2luYXRpb246IFBhZ2luYXRpb24sIHF1ZXJ5OiBhbnkgPSB7fSwgdGV4dDogc3RyaW5nID0gbnVsbCkge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB7XG4gICAgICAuLi50aGlzLmdldERldmljZXNGaWx0ZXJzKGNvbHVtbnMsIHBhZ2luYXRpb24sIHF1ZXJ5LCBmYWxzZSwgdGV4dCksXG4gICAgICBwYWdlU2l6ZTogMSxcbiAgICAgIGN1cnJlbnRQYWdlOiAxXG4gICAgfTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5saXN0KGZpbHRlcnMpKS5wYWdpbmcudG90YWxQYWdlcztcbiAgfVxuXG4gIGFzeW5jIGdldENvdW50Q2hpbGREZXZpY2VzKFxuICAgIGNvbHVtbnM6IENvbHVtbltdLFxuICAgIHBhZ2luYXRpb246IFBhZ2luYXRpb24sXG4gICAgcXVlcnk6IGFueSA9IHt9LFxuICAgIGlkOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgY2hpbGREZXZpY2VGaWx0ZXJzID0gdHJ1ZTtcbiAgICBjb25zdCBmaWx0ZXJzID0ge1xuICAgICAgLi4udGhpcy5nZXREZXZpY2VzRmlsdGVycyhjb2x1bW5zLCBwYWdpbmF0aW9uLCBxdWVyeSwgY2hpbGREZXZpY2VGaWx0ZXJzKSxcbiAgICAgIHBhZ2VTaXplOiAxLFxuICAgICAgY3VycmVudFBhZ2U6IDFcbiAgICB9O1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmNoaWxkRGV2aWNlc0xpc3QoaWQsIGZpbHRlcnMpKS5wYWdpbmcudG90YWxQYWdlcztcbiAgfVxuXG4gIGFzeW5jIGdldFRvdGFsQ2hpbGREZXZpY2VzKHF1ZXJ5OiBhbnkgPSB7fSwgaWQ6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgZmlsdGVycyA9IHtcbiAgICAgIHE6IHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShxdWVyeSksXG4gICAgICBwYWdlU2l6ZTogMSxcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlXG4gICAgfTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5jaGlsZERldmljZXNMaXN0KGlkLCBmaWx0ZXJzKSkucGFnaW5nLnRvdGFsUGFnZXM7XG4gIH1cblxuICBhc3luYyBnZXRUb3RhbChxdWVyeTogYW55ID0ge30pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB7XG4gICAgICBxOiB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkocXVlcnkpLFxuICAgICAgcGFnZVNpemU6IDEsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgIH07XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdChmaWx0ZXJzKSkucGFnaW5nLnRvdGFsUGFnZXM7XG4gIH1cblxuICBnZXREZXZpY2VRdWVyeVN0cmluZyhjb2x1bW5zOiBDb2x1bW5bXSwgcXVlcnk6IGFueSk6IHN0cmluZyB7XG4gICAgbGV0IGZ1bGxRdWVyeSA9IHRoaXMuZ2V0UXVlcnlPYmooY29sdW1ucyk7XG4gICAgZnVsbFF1ZXJ5ID0gdGhpcy5xdWVyaWVzVXRpbC5hZGRBbmRGaWx0ZXIoZnVsbFF1ZXJ5LCBxdWVyeSk7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShmdWxsUXVlcnkpO1xuICB9XG5cbiAgY2xlYXJDb25maWcoa2V5OiBzdHJpbmcgPSB0aGlzLkdSSURfQ09ORklHX0RFRkFVTFRfU1RPUkFHRV9LRVkpIHtcbiAgICBzdXBlci5jbGVhckNvbmZpZyhrZXkpO1xuICB9XG5cbiAgZ2V0Q29uZmlnJChrZXk6IHN0cmluZyA9IHRoaXMuR1JJRF9DT05GSUdfREVGQVVMVF9TVE9SQUdFX0tFWSk6IE9ic2VydmFibGU8R3JpZENvbmZpZz4ge1xuICAgIHJldHVybiBzdXBlci5nZXRDb25maWckKGtleSk7XG4gIH1cblxuICBzYXZlQ29uZmlnJChcbiAgICBjb25maWc6IEdyaWRDb25maWcsXG4gICAga2V5OiBzdHJpbmcgPSB0aGlzLkdSSURfQ09ORklHX0RFRkFVTFRfU1RPUkFHRV9LRVlcbiAgKTogT2JzZXJ2YWJsZTxHcmlkQ29uZmlnPiB7XG4gICAgcmV0dXJuIHN1cGVyLnNhdmVDb25maWckKGNvbmZpZywga2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGV2aWNlc0ZpbHRlcnMoXG4gICAgY29sdW1uczogQ29sdW1uW10sXG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbixcbiAgICBxdWVyeTogYW55LFxuICAgIGNoaWxkRGV2aWNlRmlsdGVycz86IGJvb2xlYW4sXG4gICAgdGV4dD86IHN0cmluZ1xuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKGNoaWxkRGV2aWNlRmlsdGVyc1xuICAgICAgICA/IHsgcXVlcnk6IHRoaXMuZ2V0RGV2aWNlUXVlcnlTdHJpbmcoY29sdW1ucywgcXVlcnkpIH1cbiAgICAgICAgOiB7IHE6IHRoaXMuZ2V0RGV2aWNlUXVlcnlTdHJpbmcoY29sdW1ucywgcXVlcnkpIH0pLFxuICAgICAgLi4uKHRleHQgJiYgeyB0ZXh0IH0pLFxuICAgICAgcGFnZVNpemU6IHBhZ2luYXRpb24ucGFnZVNpemUsXG4gICAgICBjdXJyZW50UGFnZTogcGFnaW5hdGlvbi5jdXJyZW50UGFnZSxcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2UsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWdyaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmljZS1ncmlkL2RldmljZS1ncmlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLGdCQUFnQixFQUFTLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRixPQUFPLEVBQ0wsWUFBWSxFQUdaLGVBQWUsRUFDZixPQUFPLEVBR1AsWUFBWSxFQUVaLE1BQU0sRUFDTixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7O0FBS2xGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBR3BELFlBQ1ksZ0JBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hC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QUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVztZQUNuQyxZQUFZLEVBQUUsS0FBSztZQUNuQixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDO0lBQ0osQ0FBQzs4R0EzT1UsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJVXNlciwgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEJ1bGtBY3Rpb25Db250cm9sLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkU2VydmljZSxcbiAgZ2V0dGV4dCxcbiAgR3JpZENvbmZpZyxcbiAgSGVhZGVyQWN0aW9uQ29udHJvbCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBQYWdpbmF0aW9uLFxuICBTdGF0dXMsXG4gIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGFybXNEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL2FsYXJtcy5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgQ29sdW1uVXRpbFNlcnZpY2UgfSBmcm9tICcuL2NvbHVtbnMvY29sdW1uLXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBHcm91cERldmljZUdyaWRDb2x1bW4gfSBmcm9tICcuL2NvbHVtbnMvZ3JvdXAuZGV2aWNlLWdyaWQtY29sdW1uJztcbmltcG9ydCB7IEltZWlEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL2ltZWkuZGV2aWNlLWdyaWQtY29sdW1uJztcbmltcG9ydCB7IE1vZGVsRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9tb2RlbC5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgTmFtZURldmljZUdyaWRDb2x1bW4gfSBmcm9tICcuL2NvbHVtbnMvbmFtZS5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4gfSBmcm9tICcuL2NvbHVtbnMvcmVnaXN0cmF0aW9uLWRhdGUuZGV2aWNlLWdyaWQtY29sdW1uJztcbmltcG9ydCB7IFNlcmlhbE51bWJlckRldmljZUdyaWRDb2x1bW4gfSBmcm9tICcuL2NvbHVtbnMvc2VyaWFsLW51bWJlci5kZXZpY2UtZ3JpZC1jb2x1bW4nO1xuaW1wb3J0IHsgU3RhdHVzRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9zdGF0dXMuZGV2aWNlLWdyaWQtY29sdW1uJztcbmltcG9ydCB7IFN5c3RlbUlkRGV2aWNlR3JpZENvbHVtbiB9IGZyb20gJy4vY29sdW1ucy9zeXN0ZW0taWQuZGV2aWNlLWdyaWQtY29sdW1uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlR3JpZFNlcnZpY2UgZXh0ZW5kcyBEYXRhR3JpZFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgR1JJRF9DT05GSUdfREVGQVVMVF9TVE9SQUdFX0tFWSA9ICdkZXZpY2UtZ3JpZC1jb25maWcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtb2RhbDogTW9kYWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb2x1bW5VdGlsU2VydmljZTogQ29sdW1uVXRpbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIodXNlclByZWZlcmVuY2VzU2VydmljZSk7XG4gIH1cblxuICBnZXREZWZhdWx0Q29sdW1ucygpOiBDb2x1bW5bXSB7XG4gICAgY29uc3QgZGVmYXVsdENvbHVtbnMgPSBbXG4gICAgICBuZXcgU3RhdHVzRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IE5hbWVEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgTW9kZWxEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgU2VyaWFsTnVtYmVyRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IEdyb3VwRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IFJlZ2lzdHJhdGlvbkRhdGVEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgU3lzdGVtSWREZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgSW1laURldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBBbGFybXNEZXZpY2VHcmlkQ29sdW1uKClcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0Q2hpbGREZXZpY2VHcmlkQ29sdW1ucygpOiBDb2x1bW5bXSB7XG4gICAgY29uc3QgY2hpbGREZXZpY2VHcmlkQ29sdW1uID0gW1xuICAgICAgbmV3IFN0YXR1c0RldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBOYW1lRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IE1vZGVsRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IFNlcmlhbE51bWJlckRldmljZUdyaWRDb2x1bW4oKSxcbiAgICAgIG5ldyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IFN5c3RlbUlkRGV2aWNlR3JpZENvbHVtbigpLFxuICAgICAgbmV3IEltZWlEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICBuZXcgQWxhcm1zRGV2aWNlR3JpZENvbHVtbigpXG4gICAgXTtcblxuICAgIHJldHVybiBjaGlsZERldmljZUdyaWRDb2x1bW47XG4gIH1cblxuICBnZXREZWZhdWx0UGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZVNpemU6IDI1LFxuICAgICAgY3VycmVudFBhZ2U6IDFcbiAgICB9O1xuICB9XG5cbiAgZ2V0SW5maW5pdGVTY3JvbGxQYWdpbmF0aW9uKCk6IFBhZ2luYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlU2l6ZTogNTAsXG4gICAgICBjdXJyZW50UGFnZTogMVxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0QnVsa0FjdGlvbkNvbnRyb2xzKCk6IEJ1bGtBY3Rpb25Db250cm9sW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldERlZmF1bHRIZWFkZXJBY3Rpb25Db250cm9scygpOiBIZWFkZXJBY3Rpb25Db250cm9sW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldFByb3Blck5hbWUoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVXRpbFNlcnZpY2UuZ2V0UHJvcGVyTmFtZShkZXZpY2UpO1xuICB9XG5cbiAgZ2V0TW9kZWwoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVXRpbFNlcnZpY2UuZ2V0TW9kZWwoZGV2aWNlKTtcbiAgfVxuXG4gIGdldFNlcmlhbE51bWJlcihkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5VdGlsU2VydmljZS5nZXRTZXJpYWxOdW1iZXIoZGV2aWNlKTtcbiAgfVxuXG4gIGdldFBhcmVudHNOYW1lcyhkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LCBmZWF0dXJlZFBhcmVudElkPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5VdGlsU2VydmljZS5nZXRQYXJlbnRzTmFtZXMoZGV2aWNlLCBmZWF0dXJlZFBhcmVudElkKTtcbiAgfVxuXG4gIGdldEhyZWYoZ3JvdXBPckRldmljZTogSU1hbmFnZWRPYmplY3QsIHByZWZpeCA9ICcjLycpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbHVtblV0aWxTZXJ2aWNlLmdldEhyZWYoZ3JvdXBPckRldmljZSwgcHJlZml4KTtcbiAgfVxuXG4gIGdldEFsYXJtc0hyZWYoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVXRpbFNlcnZpY2UuZ2V0QWxhcm1zSHJlZihkZXZpY2UpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKGRldmljZTogSU1hbmFnZWRPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGV2aWNlV2l0aENoaWxkcmVuID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKGRldmljZSwgeyB3aXRoQ2hpbGRyZW46IHRydWUgfSlcbiAgICAgICkuZGF0YTtcbiAgICAgIGNvbnN0IGhhc0NoaWxkRGV2aWNlcyA9IGRldmljZVdpdGhDaGlsZHJlbi5jaGlsZERldmljZXM/LnJlZmVyZW5jZXM/Lmxlbmd0aCA+IDA7XG4gICAgICBjb25zdCBoYXNDaGlsZEFkZGl0aW9ucyA9IGRldmljZVdpdGhDaGlsZHJlbi5jaGlsZEFkZGl0aW9ucz8ucmVmZXJlbmNlcz8ubGVuZ3RoID4gMDtcbiAgICAgIGNvbnN0IGhhc0NoaWxkQXNzZXRzID0gZGV2aWNlV2l0aENoaWxkcmVuLmNoaWxkQXNzZXRzPy5yZWZlcmVuY2VzPy5sZW5ndGggPiAwO1xuICAgICAgY29uc3Qgc2hvd0RlbGV0ZUNoaWxkcmVuID0gKCkgPT4gaGFzQ2hpbGRBZGRpdGlvbnMgfHwgaGFzQ2hpbGREZXZpY2VzIHx8IGhhc0NoaWxkQXNzZXRzO1xuICAgICAgY29uc3QgbW9kYWxSZXN1bHQgPSBhd2FpdCB0aGlzLm1vZGFsLmNvbmZpcm0oXG4gICAgICAgIGdldHRleHQoJ0RlbGV0ZSBkZXZpY2UnKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgZ2V0dGV4dChgWW91IGFyZSBhYm91dCB0byBkZWxldGUgZGV2aWNlIFwie3sgbmFtZSB9fVwiLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkP2ApLFxuICAgICAgICAgIGRldmljZVxuICAgICAgICApLFxuICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICB7IG9rOiBnZXR0ZXh0KCdEZWxldGUnKSwgY2FuY2VsOiBnZXR0ZXh0KCdDYW5jZWwnKSB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2FzY2FkZToge1xuICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnQWxzbyBkZWxldGUgY2hpbGQgaGllcmFyY2h5IG9mIHRoaXMgZGV2aWNlLicpLFxuICAgICAgICAgICAgY2hlY2tlZDogc2hvd0RlbGV0ZUNoaWxkcmVuKCksXG4gICAgICAgICAgICBzaG93SWY6IHNob3dEZWxldGVDaGlsZHJlbixcbiAgICAgICAgICAgIGRpc2FibGVkQnlLZXk6ICd3aXRoRGV2aWNlVXNlcidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdpdGhEZXZpY2VVc2VyOiB7XG4gICAgICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgZ2V0dGV4dCgnQWxzbyBkZWxldGUgYXNzb2NpYXRlZCBkZXZpY2Ugb3duZXIgXCJ7eyBvd25lciB9fVwiLicpLFxuICAgICAgICAgICAgICBkZXZpY2VcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dJZjogKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1Jvb3REZXZpY2UgPSBkZXZpY2UuYzh5X0lzRGV2aWNlO1xuICAgICAgICAgICAgICBjb25zdCBoYXNEZXZpY2VVc2VyQXNPd25lciA9XG4gICAgICAgICAgICAgICAgZGV2aWNlLm93bmVyICYmXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5pc0RldmljZVVzZXIoeyBpZDogZGV2aWNlLm93bmVyIH0gYXMgdW5rbm93biBhcyBJVXNlcik7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4oaXNSb290RGV2aWNlICYmIGhhc0RldmljZVVzZXJBc093bmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhYmxlZEJ5S2V5OiAnY2FzY2FkZSdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGVsZXRlKFxuICAgICAgICBkZXZpY2UsXG4gICAgICAgIChtb2RhbFJlc3VsdCBhcyB7IGNvbmZpcm1PcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0pLmNvbmZpcm1PcHRpb25zXG4gICAgICApO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdEZXZpY2UgZGVsZXRlZC4nKSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIG9ubHkgaWYgbm90IGNhbmNlbCBmcm9tIG1vZGFsXG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXREYXRhKFxuICAgIGNvbHVtbnM6IENvbHVtbltdLFxuICAgIHBhZ2luYXRpb246IFBhZ2luYXRpb24sXG4gICAgcXVlcnk6IGFueSA9IHt9LFxuICAgIHdpdGhDaGlsZHJlbiA9IGZhbHNlLFxuICAgIHRleHQgPSBudWxsXG4gICkge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB7XG4gICAgICAuLi50aGlzLmdldERldmljZXNGaWx0ZXJzKGNvbHVtbnMsIHBhZ2luYXRpb24sIHF1ZXJ5LCBmYWxzZSwgdGV4dCksXG4gICAgICB3aXRoR3JvdXBzOiB0cnVlLFxuICAgICAgd2l0aENoaWxkcmVuLFxuICAgICAgd2l0aFRvdGFsRWxlbWVudHM6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdChmaWx0ZXJzKTtcbiAgfVxuXG4gIGFzeW5jIGdldENoaWxkRGV2aWNlRGF0YShcbiAgICBjb2x1bW5zOiBDb2x1bW5bXSxcbiAgICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uLFxuICAgIHF1ZXJ5OiBhbnkgPSB7fSxcbiAgICB3aXRoQ2hpbGRyZW4gPSBmYWxzZSxcbiAgICBpZDogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IGNoaWxkRGV2aWNlRmlsdGVycyA9IHRydWU7XG4gICAgY29uc3QgZmlsdGVycyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0RGV2aWNlc0ZpbHRlcnMoY29sdW1ucywgcGFnaW5hdGlvbiwgcXVlcnksIGNoaWxkRGV2aWNlRmlsdGVycyksXG4gICAgICB3aXRoR3JvdXBzOiB0cnVlLFxuICAgICAgd2l0aENoaWxkcmVuXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmNoaWxkRGV2aWNlc0xpc3QoaWQsIGZpbHRlcnMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG90YWxDaGlsZERldmljZXMocXVlcnk6IGFueSA9IHt9LCBpZDogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0ge1xuICAgICAgcTogdGhpcy5xdWVyaWVzVXRpbC5idWlsZFF1ZXJ5KHF1ZXJ5KSxcbiAgICAgIHdpdGhUb3RhbEVsZW1lbnRzOiB0cnVlXG4gICAgfTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5jaGlsZERldmljZXNMaXN0KGlkLCBmaWx0ZXJzKSkucGFnaW5nLnRvdGFsRWxlbWVudHM7XG4gIH1cblxuICBhc3luYyBnZXRUb3RhbChxdWVyeTogYW55ID0ge30pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB7XG4gICAgICBxOiB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkocXVlcnkpLFxuICAgICAgd2l0aFRvdGFsRWxlbWVudHM6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmxpc3QoZmlsdGVycykpLnBhZ2luZy50b3RhbEVsZW1lbnRzO1xuICB9XG5cbiAgZ2V0RGV2aWNlUXVlcnlTdHJpbmcoY29sdW1uczogQ29sdW1uW10sIHF1ZXJ5OiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBmdWxsUXVlcnkgPSB0aGlzLmdldFF1ZXJ5T2JqKGNvbHVtbnMpO1xuICAgIGZ1bGxRdWVyeSA9IHRoaXMucXVlcmllc1V0aWwuYWRkQW5kRmlsdGVyKGZ1bGxRdWVyeSwgcXVlcnkpO1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoZnVsbFF1ZXJ5KTtcbiAgfVxuXG4gIGNsZWFyQ29uZmlnKGtleTogc3RyaW5nID0gdGhpcy5HUklEX0NPTkZJR19ERUZBVUxUX1NUT1JBR0VfS0VZKSB7XG4gICAgc3VwZXIuY2xlYXJDb25maWcoa2V5KTtcbiAgfVxuXG4gIGdldENvbmZpZyQoa2V5OiBzdHJpbmcgPSB0aGlzLkdSSURfQ09ORklHX0RFRkFVTFRfU1RPUkFHRV9LRVkpOiBPYnNlcnZhYmxlPEdyaWRDb25maWc+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0Q29uZmlnJChrZXkpO1xuICB9XG5cbiAgc2F2ZUNvbmZpZyQoXG4gICAgY29uZmlnOiBHcmlkQ29uZmlnLFxuICAgIGtleTogc3RyaW5nID0gdGhpcy5HUklEX0NPTkZJR19ERUZBVUxUX1NUT1JBR0VfS0VZXG4gICk6IE9ic2VydmFibGU8R3JpZENvbmZpZz4ge1xuICAgIHJldHVybiBzdXBlci5zYXZlQ29uZmlnJChjb25maWcsIGtleSk7XG4gIH1cblxuICBwcml2YXRlIGdldERldmljZXNGaWx0ZXJzKFxuICAgIGNvbHVtbnM6IENvbHVtbltdLFxuICAgIHBhZ2luYXRpb246IFBhZ2luYXRpb24sXG4gICAgcXVlcnk6IGFueSxcbiAgICBjaGlsZERldmljZUZpbHRlcnM/OiBib29sZWFuLFxuICAgIHRleHQ/OiBzdHJpbmdcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihjaGlsZERldmljZUZpbHRlcnNcbiAgICAgICAgPyB7IHF1ZXJ5OiB0aGlzLmdldERldmljZVF1ZXJ5U3RyaW5nKGNvbHVtbnMsIHF1ZXJ5KSB9XG4gICAgICAgIDogeyBxOiB0aGlzLmdldERldmljZVF1ZXJ5U3RyaW5nKGNvbHVtbnMsIHF1ZXJ5KSB9KSxcbiAgICAgIC4uLih0ZXh0ICYmIHsgdGV4dCB9KSxcbiAgICAgIHBhZ2VTaXplOiBwYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudFBhZ2UsXG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWVcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLWRldmljZS1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzL2M4eS1uZ3gtY29tcG9uZW50cy1kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DeviceProvisionedCertificatesService } from './device-provisioned-certificates.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./device-provisioned-certificates.service";
5
+ export class DeviceProvisionedCertificatesGuard {
6
+ constructor(deviceProvisionedCertificatesService) {
7
+ this.deviceProvisionedCertificatesService = deviceProvisionedCertificatesService;
8
+ }
9
+ async canActivate(route) {
10
+ const contextData = route.data.contextData || route.parent.data.contextData;
11
+ if (!contextData) {
12
+ return false;
13
+ }
14
+ try {
15
+ const provisionedCertificates = await this.deviceProvisionedCertificatesService.getDeviceProvisionedCertificates(contextData);
16
+ return !!provisionedCertificates;
17
+ }
18
+ catch (error) {
19
+ return false;
20
+ }
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesGuard, deps: [{ token: i1.DeviceProvisionedCertificatesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesGuard }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesGuard, decorators: [{
26
+ type: Injectable
27
+ }], ctorParameters: () => [{ type: i1.DeviceProvisionedCertificatesService }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmljZS1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMvZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFJakcsTUFBTSxPQUFPLGtDQUFrQztJQUM3QyxZQUFvQixvQ0FBMEU7UUFBMUUseUNBQW9DLEdBQXBDLG9DQUFvQyxDQUFzQztJQUFHLENBQUM7SUFFbEcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUE2QjtRQUM3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sdUJBQXVCLEdBQzNCLE1BQU0sSUFBSSxDQUFDLG9DQUFvQyxDQUFDLGdDQUFnQyxDQUM5RSxXQUFXLENBQ1osQ0FBQztZQUNKLE9BQU8sQ0FBQyxDQUFDLHVCQUF1QixDQUFDO1FBQ25DLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs4R0FqQlUsa0NBQWtDO2tIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXZpY2VQcm92aXNpb25lZENlcnRpZmljYXRlc1NlcnZpY2UgfSBmcm9tICcuL2RldmljZS1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzR3VhcmQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzU2VydmljZTogRGV2aWNlUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXNTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgY29uc3QgY29udGV4dERhdGEgPSByb3V0ZS5kYXRhLmNvbnRleHREYXRhIHx8IHJvdXRlLnBhcmVudC5kYXRhLmNvbnRleHREYXRhO1xuICAgIGlmICghY29udGV4dERhdGEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzID1cbiAgICAgICAgYXdhaXQgdGhpcy5kZXZpY2VQcm92aXNpb25lZENlcnRpZmljYXRlc1NlcnZpY2UuZ2V0RGV2aWNlUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXMoXG4gICAgICAgICAgY29udGV4dERhdGFcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiAhIXByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CoreModule, hookRoute, gettext, ViewContext } from '@c8y/ngx-components';
3
+ import { PopoverModule } from 'ngx-bootstrap/popover';
4
+ import { TooltipModule } from 'ngx-bootstrap/tooltip';
5
+ import { ButtonsModule } from 'ngx-bootstrap/buttons';
6
+ import { ReactiveFormsModule } from '@angular/forms';
7
+ import { DeviceProvisionedCertificatesGuard } from './device-provisioned-certificates.guard';
8
+ import { DeviceTabProvisionedCertificatesComponent } from './device-tab-provisioned-certificates.component';
9
+ import { DeviceProvisionedCertificatesService } from './device-provisioned-certificates.service';
10
+ import * as i0 from "@angular/core";
11
+ export class DeviceProvisionedCertificatesModule {
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesModule, declarations: [DeviceTabProvisionedCertificatesComponent], imports: [CoreModule, TooltipModule, ReactiveFormsModule, ButtonsModule, PopoverModule] }); }
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesModule, providers: [
15
+ hookRoute([
16
+ {
17
+ context: ViewContext.Device,
18
+ path: 'device-provisioned-certificates',
19
+ component: DeviceTabProvisionedCertificatesComponent,
20
+ label: gettext('x509'),
21
+ icon: 'c8y-device-profile',
22
+ canActivate: [DeviceProvisionedCertificatesGuard]
23
+ }
24
+ ]),
25
+ DeviceProvisionedCertificatesService,
26
+ DeviceProvisionedCertificatesGuard
27
+ ], imports: [CoreModule, TooltipModule, ReactiveFormsModule, ButtonsModule, PopoverModule] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ declarations: [DeviceTabProvisionedCertificatesComponent],
33
+ exports: [],
34
+ imports: [CoreModule, TooltipModule, ReactiveFormsModule, ButtonsModule, PopoverModule],
35
+ providers: [
36
+ hookRoute([
37
+ {
38
+ context: ViewContext.Device,
39
+ path: 'device-provisioned-certificates',
40
+ component: DeviceTabProvisionedCertificatesComponent,
41
+ label: gettext('x509'),
42
+ icon: 'c8y-device-profile',
43
+ canActivate: [DeviceProvisionedCertificatesGuard]
44
+ }
45
+ ]),
46
+ DeviceProvisionedCertificatesService,
47
+ DeviceProvisionedCertificatesGuard
48
+ ]
49
+ }]
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzL2RldmljZS1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQXFCakcsTUFBTSxPQUFPLG1DQUFtQzs4R0FBbkMsbUNBQW1DOytHQUFuQyxtQ0FBbUMsaUJBbEIvQix5Q0FBeUMsYUFFOUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYTsrR0FnQjNFLG1DQUFtQyxhQWZuQztZQUNULFNBQVMsQ0FBQztnQkFDUjtvQkFDRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE1BQU07b0JBQzNCLElBQUksRUFBRSxpQ0FBaUM7b0JBQ3ZDLFNBQVMsRUFBRSx5Q0FBeUM7b0JBQ3BELEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN0QixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixXQUFXLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDbEQ7YUFDRixDQUFDO1lBQ0Ysb0NBQW9DO1lBQ3BDLGtDQUFrQztTQUNuQyxZQWRTLFVBQVUsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGFBQWE7OzJGQWdCM0UsbUNBQW1DO2tCQW5CL0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztvQkFDekQsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO29CQUN2RixTQUFTLEVBQUU7d0JBQ1QsU0FBUyxDQUFDOzRCQUNSO2dDQUNFLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTTtnQ0FDM0IsSUFBSSxFQUFFLGlDQUFpQztnQ0FDdkMsU0FBUyxFQUFFLHlDQUF5QztnQ0FDcEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ3RCLElBQUksRUFBRSxvQkFBb0I7Z0NBQzFCLFdBQVcsRUFBRSxDQUFDLGtDQUFrQyxDQUFDOzZCQUNsRDt5QkFDRixDQUFDO3dCQUNGLG9DQUFvQzt3QkFDcEMsa0NBQWtDO3FCQUNuQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBob29rUm91dGUsIGdldHRleHQsIFZpZXdDb250ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQnV0dG9uc01vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvYnV0dG9ucyc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGV2aWNlUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXNHdWFyZCB9IGZyb20gJy4vZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5ndWFyZCc7XG5pbXBvcnQgeyBEZXZpY2VUYWJQcm92aXNpb25lZENlcnRpZmljYXRlc0NvbXBvbmVudCB9IGZyb20gJy4vZGV2aWNlLXRhYi1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzU2VydmljZSB9IGZyb20gJy4vZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRGV2aWNlVGFiUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbXSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEJ1dHRvbnNNb2R1bGUsIFBvcG92ZXJNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBob29rUm91dGUoW1xuICAgICAge1xuICAgICAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5EZXZpY2UsXG4gICAgICAgIHBhdGg6ICdkZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzJyxcbiAgICAgICAgY29tcG9uZW50OiBEZXZpY2VUYWJQcm92aXNpb25lZENlcnRpZmljYXRlc0NvbXBvbmVudCxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ3g1MDknKSxcbiAgICAgICAgaWNvbjogJ2M4eS1kZXZpY2UtcHJvZmlsZScsXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbRGV2aWNlUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXNHdWFyZF1cbiAgICAgIH1cbiAgICBdKSxcbiAgICBEZXZpY2VQcm92aXNpb25lZENlcnRpZmljYXRlc1NlcnZpY2UsXG4gICAgRGV2aWNlUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXNHdWFyZFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { FetchClient, UserService } from '@c8y/client';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@c8y/client";
5
+ export class DeviceProvisionedCertificatesService {
6
+ constructor(userService, client) {
7
+ this.userService = userService;
8
+ this.client = client;
9
+ }
10
+ async getDeviceProvisionedCertificates(device) {
11
+ const deviceId = await this.getDeviceUserName(device);
12
+ const { data } = await this.userService.detail(deviceId, { withCertificates: true });
13
+ return data.provisionedCertificates;
14
+ }
15
+ async getDeviceUserName(device) {
16
+ const method = 'GET';
17
+ const url = `/inventory/managedObjects/${device.id}/user`;
18
+ const res = await this.client.fetch(url, { method });
19
+ const data = await res.json();
20
+ if (res.status > 400) {
21
+ throw new Error(data.message);
22
+ }
23
+ return data.userName;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesService, deps: [{ token: i1.UserService }, { token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesService }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProvisionedCertificatesService, decorators: [{
29
+ type: Injectable
30
+ }], ctorParameters: () => [{ type: i1.UserService }, { type: i1.FetchClient }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy9kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBa0IsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUkzQyxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQ1UsV0FBd0IsRUFDeEIsTUFBbUI7UUFEbkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUMxQixDQUFDO0lBRUosS0FBSyxDQUFDLGdDQUFnQyxDQUNwQyxNQUFzQjtRQUV0QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTTtRQUNwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQUcsNkJBQTZCLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs4R0F2QlUsb0NBQW9DO2tIQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBRGhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZXRjaENsaWVudCwgSU1hbmFnZWRPYmplY3QsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZSB9IGZyb20gJy4vZGV2aWNlLXRhYi1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2xpZW50OiBGZXRjaENsaWVudFxuICApIHt9XG5cbiAgYXN5bmMgZ2V0RGV2aWNlUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXMoXG4gICAgZGV2aWNlOiBJTWFuYWdlZE9iamVjdFxuICApOiBQcm9taXNlPFByb3Zpc2lvbmVkQ2VydGlmaWNhdGVbXT4ge1xuICAgIGNvbnN0IGRldmljZUlkID0gYXdhaXQgdGhpcy5nZXREZXZpY2VVc2VyTmFtZShkZXZpY2UpO1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5kZXRhaWwoZGV2aWNlSWQsIHsgd2l0aENlcnRpZmljYXRlczogdHJ1ZSB9KTtcbiAgICByZXR1cm4gZGF0YS5wcm92aXNpb25lZENlcnRpZmljYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGV2aWNlVXNlck5hbWUoZGV2aWNlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBtZXRob2QgPSAnR0VUJztcbiAgICBjb25zdCB1cmwgPSBgL2ludmVudG9yeS9tYW5hZ2VkT2JqZWN0cy8ke2RldmljZS5pZH0vdXNlcmA7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jbGllbnQuZmV0Y2godXJsLCB7IG1ldGhvZCB9KTtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICBpZiAocmVzLnN0YXR1cyA+IDQwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGRhdGEubWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhLnVzZXJOYW1lO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { Component } from '@angular/core';
2
+ import { AlertService, gettext, ModalService, PX_ACTIONS, Status } from '@c8y/ngx-components';
3
+ import { DeviceProvisionedCertificatesService } from './device-provisioned-certificates.service';
4
+ import { ActivatedRoute } from '@angular/router';
5
+ import { CrlService } from '@c8y/client';
6
+ import { BehaviorSubject } from 'rxjs';
7
+ import { switchMap, map, tap, finalize } from 'rxjs/operators';
8
+ import { TranslateService } from '@ngx-translate/core';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@c8y/ngx-components";
11
+ import * as i2 from "./device-provisioned-certificates.service";
12
+ import * as i3 from "@c8y/client";
13
+ import * as i4 from "@angular/router";
14
+ import * as i5 from "@ngx-translate/core";
15
+ import * as i6 from "@angular/common";
16
+ export class DeviceTabProvisionedCertificatesComponent {
17
+ constructor(alertService, modalService, deviceSerialsService, crlService, route, translateService) {
18
+ this.alertService = alertService;
19
+ this.modalService = modalService;
20
+ this.deviceSerialsService = deviceSerialsService;
21
+ this.crlService = crlService;
22
+ this.route = route;
23
+ this.translateService = translateService;
24
+ this.reloading = false;
25
+ this.reload = new BehaviorSubject(null);
26
+ this.provisionedCertificates = this.reload.pipe(tap(() => {
27
+ this.reloading = true;
28
+ }), map(() => this.route.snapshot.parent.data.contextData), switchMap(device => this.deviceSerialsService.getDeviceProvisionedCertificates(device)), finalize(() => {
29
+ this.reloading = false;
30
+ }));
31
+ this.PX_ACTIONS = PX_ACTIONS;
32
+ }
33
+ ngOnInit() {
34
+ this.reload.next();
35
+ }
36
+ highlightDependingOnExpirationStatus(item) {
37
+ const warningOffset = 24 * 60 * 60 * 1000 * 90; // 90 days
38
+ const todayTimestamp = new Date().getTime();
39
+ const warningTimestamp = new Date().getTime() + warningOffset;
40
+ const notAfterTimestamp = new Date(item.validTill).getTime();
41
+ const expired = notAfterTimestamp < todayTimestamp;
42
+ const expiresInLessThan90Days = notAfterTimestamp < warningTimestamp;
43
+ if (expired) {
44
+ return 'text-danger';
45
+ }
46
+ if (expiresInLessThan90Days) {
47
+ return 'text-warning';
48
+ }
49
+ return '';
50
+ }
51
+ async revokeProvisionedCertificate(provisionedCertificate) {
52
+ if (provisionedCertificate) {
53
+ try {
54
+ const serialNumberInHex = provisionedCertificate.serialNumber;
55
+ await this.confirmRevocation(serialNumberInHex);
56
+ await this.crlService.uploadCrls([{ serialNumberInHex }]);
57
+ }
58
+ catch (error) {
59
+ this.alertService.addServerFailure(error);
60
+ }
61
+ finally {
62
+ this.reload.next();
63
+ }
64
+ }
65
+ }
66
+ async confirmRevocation(serialNumber) {
67
+ return await this.modalService.confirm(gettext('Revoke provisioned certificate'), this.translateService.instant(gettext(`You are about to revoke provisioned certificate {{ serialNumber }}. Do you want to proceed?`), { serialNumber }), Status.DANGER, { ok: gettext('Revoke'), cancel: gettext('Cancel') });
68
+ }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceTabProvisionedCertificatesComponent, deps: [{ token: i1.AlertService }, { token: i1.ModalService }, { token: i2.DeviceProvisionedCertificatesService }, { token: i3.CrlService }, { token: i4.ActivatedRoute }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DeviceTabProvisionedCertificatesComponent, selector: "device-tab-serials-component", ngImport: i0, template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"reload.next()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<!-- TODO: Add link to the mentioned documentation when it's available -->\n<c8y-ui-empty-state\n [icon]=\"'certificate'\"\n [title]=\"'No provisioned certificates to display.' | translate\"\n [subtitle]=\"\n 'This device can no longer connect to the platform because the last certificate has been revoked. Reissuing the certificate is not possible. To restore access, the device must be re-enrolled. Please follow the re-enrollment process as outlined in the documentation.'\n | translate\n \"\n *ngIf=\"(provisionedCertificates | async)?.length === 0\"\n></c8y-ui-empty-state>\n\n<div\n [ngStyle]=\"{ width: '50%' }\"\n *ngIf=\"(provisionedCertificates | async)?.length > 0\"\n>\n <div class=\"bg-level-0\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Provisioned certificates\n </div>\n </div>\n <div class=\"p-16\">\n <c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header hidden-xs c8y-list__item\"\n style=\"display: block !important\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__body\">\n <div class=\"content-flex-60\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Serial No.' | translate }} \"\n >\n {{ 'Serial No.' | translate }}\n </span>\n </div>\n <div class=\"col-6\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Expiration date' | translate }}\"\n >\n {{ 'Expiration date' | translate }}\n </span>\n </div>\n <div class=\"col-1\"></div>\n </div>\n </div>\n </div>\n </div>\n\n <c8y-li\n *ngFor=\"let provisionedCertificate of provisionedCertificates | async; let i = index\"\n >\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-5\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Serial No.' | translate }}: {{ provisionedCertificate.serialNumber }}\"\n >\n <span\n class=\"text-label-small m-t-8 m-r-8 visible-xs-inline\"\n translate\n >\n Serial No.\n </span>\n {{ provisionedCertificate.serialNumber }}\n </div>\n </div>\n\n <div class=\"col-6\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Expiration date' | translate }}: {{\n provisionedCertificate.validTill | c8yDate\n }}\"\n >\n <span\n class=\"text-label-small m-t-8 m-r-8 visible-xs-inline\"\n translate\n >\n Expiration date\n </span>\n <small\n *ngIf=\"provisionedCertificate.validTill\"\n [ngClass]=\"highlightDependingOnExpirationStatus(provisionedCertificate)\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"calendar\"\n *ngIf=\"!highlightDependingOnExpirationStatus(provisionedCertificate)\"\n ></i>\n <i\n class=\"m-r-4\"\n c8yIcon=\"warning\"\n *ngIf=\"highlightDependingOnExpirationStatus(provisionedCertificate)\"\n ></i>\n <span>{{ provisionedCertificate.validTill | c8yDate }}</span>\n </small>\n </div>\n </div>\n <div class=\"col-1\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n title=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n (click)=\"revokeProvisionedCertificate(provisionedCertificate)\"\n >\n <i c8yIcon=\"delete\"></i>\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }] }); }
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceTabProvisionedCertificatesComponent, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'device-tab-serials-component', template: "<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"reload.next()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<!-- TODO: Add link to the mentioned documentation when it's available -->\n<c8y-ui-empty-state\n [icon]=\"'certificate'\"\n [title]=\"'No provisioned certificates to display.' | translate\"\n [subtitle]=\"\n 'This device can no longer connect to the platform because the last certificate has been revoked. Reissuing the certificate is not possible. To restore access, the device must be re-enrolled. Please follow the re-enrollment process as outlined in the documentation.'\n | translate\n \"\n *ngIf=\"(provisionedCertificates | async)?.length === 0\"\n></c8y-ui-empty-state>\n\n<div\n [ngStyle]=\"{ width: '50%' }\"\n *ngIf=\"(provisionedCertificates | async)?.length > 0\"\n>\n <div class=\"bg-level-0\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Provisioned certificates\n </div>\n </div>\n <div class=\"p-16\">\n <c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header hidden-xs c8y-list__item\"\n style=\"display: block !important\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__body\">\n <div class=\"content-flex-60\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Serial No.' | translate }} \"\n >\n {{ 'Serial No.' | translate }}\n </span>\n </div>\n <div class=\"col-6\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Expiration date' | translate }}\"\n >\n {{ 'Expiration date' | translate }}\n </span>\n </div>\n <div class=\"col-1\"></div>\n </div>\n </div>\n </div>\n </div>\n\n <c8y-li\n *ngFor=\"let provisionedCertificate of provisionedCertificates | async; let i = index\"\n >\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-5\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Serial No.' | translate }}: {{ provisionedCertificate.serialNumber }}\"\n >\n <span\n class=\"text-label-small m-t-8 m-r-8 visible-xs-inline\"\n translate\n >\n Serial No.\n </span>\n {{ provisionedCertificate.serialNumber }}\n </div>\n </div>\n\n <div class=\"col-6\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Expiration date' | translate }}: {{\n provisionedCertificate.validTill | c8yDate\n }}\"\n >\n <span\n class=\"text-label-small m-t-8 m-r-8 visible-xs-inline\"\n translate\n >\n Expiration date\n </span>\n <small\n *ngIf=\"provisionedCertificate.validTill\"\n [ngClass]=\"highlightDependingOnExpirationStatus(provisionedCertificate)\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"calendar\"\n *ngIf=\"!highlightDependingOnExpirationStatus(provisionedCertificate)\"\n ></i>\n <i\n class=\"m-r-4\"\n c8yIcon=\"warning\"\n *ngIf=\"highlightDependingOnExpirationStatus(provisionedCertificate)\"\n ></i>\n <span>{{ provisionedCertificate.validTill | c8yDate }}</span>\n </small>\n </div>\n </div>\n <div class=\"col-1\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n title=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n (click)=\"revokeProvisionedCertificate(provisionedCertificate)\"\n >\n <i c8yIcon=\"delete\"></i>\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </div>\n </div>\n</div>\n" }]
75
+ }], ctorParameters: () => [{ type: i1.AlertService }, { type: i1.ModalService }, { type: i2.DeviceProvisionedCertificatesService }, { type: i3.CrlService }, { type: i4.ActivatedRoute }, { type: i5.TranslateService }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXRhYi1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy9kZXZpY2UtdGFiLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzL2RldmljZS10YWItcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBUXZELE1BQU0sT0FBTyx5Q0FBeUM7SUFnQnBELFlBQ1UsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsb0JBQTBELEVBQzFELFVBQXNCLEVBQ3RCLEtBQXFCLEVBQ3JCLGdCQUFrQztRQUxsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNDO1FBQzFELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXJCNUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQTBCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELDRCQUF1QixHQUF5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDOUUsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQTZCLENBQUMsRUFDeEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3ZGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRWlCLGVBQVUsR0FBRyxVQUFVLENBQUM7SUFTeEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxvQ0FBb0MsQ0FBQyxJQUE0QjtRQUMvRCxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVTtRQUMxRCxNQUFNLGNBQWMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUM7UUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO1FBQ25ELE1BQU0sdUJBQXVCLEdBQUcsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDckUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLHVCQUF1QixFQUFFLENBQUM7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBOEM7UUFDL0UsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQztnQkFDSCxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLFlBQVksQ0FBQztnQkFDOUQsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsWUFBb0I7UUFDbEQsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUNwQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsRUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FDM0IsT0FBTyxDQUNMLDZGQUE2RixDQUM5RixFQUNELEVBQUUsWUFBWSxFQUFFLENBQ2pCLEVBQ0QsTUFBTSxDQUFDLE1BQU0sRUFDYixFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNyRCxDQUFDO0lBQ0osQ0FBQzs4R0F2RVUseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsb0VDZnRELDZwSkF3SUE7OzJGRHpIYSx5Q0FBeUM7a0JBSnJELFNBQVM7K0JBQ0UsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCwgTW9kYWxTZXJ2aWNlLCBQWF9BQ1RJT05TLCBTdGF0dXMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzU2VydmljZSB9IGZyb20gJy4vZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENybFNlcnZpY2UsIElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIG1hcCwgdGFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuZXhwb3J0IHR5cGUgUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZSA9IHsgc2VyaWFsTnVtYmVyOiBzdHJpbmc7IHZhbGlkVGlsbDogc3RyaW5nIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RldmljZS10YWItc2VyaWFscy1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGV2aWNlLXRhYi1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVRhYlByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmVsb2FkaW5nID0gZmFsc2U7XG4gIHJlbG9hZDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXM6IE9ic2VydmFibGU8UHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZVtdPiA9IHRoaXMucmVsb2FkLnBpcGUoXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVsb2FkaW5nID0gdHJ1ZTtcbiAgICB9KSxcbiAgICBtYXAoKCkgPT4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YSBhcyBJTWFuYWdlZE9iamVjdCksXG4gICAgc3dpdGNoTWFwKGRldmljZSA9PiB0aGlzLmRldmljZVNlcmlhbHNTZXJ2aWNlLmdldERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzKGRldmljZSkpLFxuICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgIHRoaXMucmVsb2FkaW5nID0gZmFsc2U7XG4gICAgfSlcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgUFhfQUNUSU9OUyA9IFBYX0FDVElPTlM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGV2aWNlU2VyaWFsc1NlcnZpY2U6IERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzU2VydmljZSxcbiAgICBwcml2YXRlIGNybFNlcnZpY2U6IENybFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbG9hZC5uZXh0KCk7XG4gIH1cblxuICBoaWdobGlnaHREZXBlbmRpbmdPbkV4cGlyYXRpb25TdGF0dXMoaXRlbTogUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZSkge1xuICAgIGNvbnN0IHdhcm5pbmdPZmZzZXQgPSAyNCAqIDYwICogNjAgKiAxMDAwICogOTA7IC8vIDkwIGRheXNcbiAgICBjb25zdCB0b2RheVRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHdhcm5pbmdUaW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIHdhcm5pbmdPZmZzZXQ7XG4gICAgY29uc3Qgbm90QWZ0ZXJUaW1lc3RhbXAgPSBuZXcgRGF0ZShpdGVtLnZhbGlkVGlsbCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGV4cGlyZWQgPSBub3RBZnRlclRpbWVzdGFtcCA8IHRvZGF5VGltZXN0YW1wO1xuICAgIGNvbnN0IGV4cGlyZXNJbkxlc3NUaGFuOTBEYXlzID0gbm90QWZ0ZXJUaW1lc3RhbXAgPCB3YXJuaW5nVGltZXN0YW1wO1xuICAgIGlmIChleHBpcmVkKSB7XG4gICAgICByZXR1cm4gJ3RleHQtZGFuZ2VyJztcbiAgICB9XG4gICAgaWYgKGV4cGlyZXNJbkxlc3NUaGFuOTBEYXlzKSB7XG4gICAgICByZXR1cm4gJ3RleHQtd2FybmluZyc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGFzeW5jIHJldm9rZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGUocHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZTogUHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZSkge1xuICAgIGlmIChwcm92aXNpb25lZENlcnRpZmljYXRlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzZXJpYWxOdW1iZXJJbkhleCA9IHByb3Zpc2lvbmVkQ2VydGlmaWNhdGUuc2VyaWFsTnVtYmVyO1xuICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1SZXZvY2F0aW9uKHNlcmlhbE51bWJlckluSGV4KTtcbiAgICAgICAgYXdhaXQgdGhpcy5jcmxTZXJ2aWNlLnVwbG9hZENybHMoW3sgc2VyaWFsTnVtYmVySW5IZXggfV0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLnJlbG9hZC5uZXh0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb25maXJtUmV2b2NhdGlvbihzZXJpYWxOdW1iZXI6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKFxuICAgICAgZ2V0dGV4dCgnUmV2b2tlIHByb3Zpc2lvbmVkIGNlcnRpZmljYXRlJyksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICBgWW91IGFyZSBhYm91dCB0byByZXZva2UgcHJvdmlzaW9uZWQgY2VydGlmaWNhdGUge3sgc2VyaWFsTnVtYmVyIH19LiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkP2BcbiAgICAgICAgKSxcbiAgICAgICAgeyBzZXJpYWxOdW1iZXIgfVxuICAgICAgKSxcbiAgICAgIFN0YXR1cy5EQU5HRVIsXG4gICAgICB7IG9rOiBnZXR0ZXh0KCdSZXZva2UnKSwgY2FuY2VsOiBnZXR0ZXh0KCdDYW5jZWwnKSB9XG4gICAgKTtcbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInJlbG9hZC5uZXh0KClcIlxuICA+XG4gICAgPGlcbiAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IHJlbG9hZGluZyB9XCJcbiAgICA+PC9pPlxuICAgIHt7ICdSZWxvYWQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48IS0tIFRPRE86IEFkZCBsaW5rIHRvIHRoZSBtZW50aW9uZWQgZG9jdW1lbnRhdGlvbiB3aGVuIGl0J3MgYXZhaWxhYmxlIC0tPlxuPGM4eS11aS1lbXB0eS1zdGF0ZVxuICBbaWNvbl09XCInY2VydGlmaWNhdGUnXCJcbiAgW3RpdGxlXT1cIidObyBwcm92aXNpb25lZCBjZXJ0aWZpY2F0ZXMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgW3N1YnRpdGxlXT1cIlxuICAgICdUaGlzIGRldmljZSBjYW4gbm8gbG9uZ2VyIGNvbm5lY3QgdG8gdGhlIHBsYXRmb3JtIGJlY2F1c2UgdGhlIGxhc3QgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmV2b2tlZC4gUmVpc3N1aW5nIHRoZSBjZXJ0aWZpY2F0ZSBpcyBub3QgcG9zc2libGUuIFRvIHJlc3RvcmUgYWNjZXNzLCB0aGUgZGV2aWNlIG11c3QgYmUgcmUtZW5yb2xsZWQuIFBsZWFzZSBmb2xsb3cgdGhlIHJlLWVucm9sbG1lbnQgcHJvY2VzcyBhcyBvdXRsaW5lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4nXG4gICAgICB8IHRyYW5zbGF0ZVxuICBcIlxuICAqbmdJZj1cIihwcm92aXNpb25lZENlcnRpZmljYXRlcyB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCJcbj48L2M4eS11aS1lbXB0eS1zdGF0ZT5cblxuPGRpdlxuICBbbmdTdHlsZV09XCJ7IHdpZHRoOiAnNTAlJyB9XCJcbiAgKm5nSWY9XCIocHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXMgfCBhc3luYyk/Lmxlbmd0aCA+IDBcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYmctbGV2ZWwtMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3JcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjYXJkLXRpdGxlXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIFByb3Zpc2lvbmVkIGNlcnRpZmljYXRlc1xuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInAtMTZcIj5cbiAgICAgIDxjOHktbGlzdC1ncm91cCBjbGFzcz1cIm0tYi0yNFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJwYWdlLXN0aWNreS1oZWFkZXIgaGlkZGVuLXhzIGM4eS1saXN0X19pdGVtXCJcbiAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19ibG9ja1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19ib2R5XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWZsZXgtNjBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiIHt7ICdTZXJpYWwgTm8uJyB8IHRyYW5zbGF0ZSB9fSBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnU2VyaWFsIE5vLicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0V4cGlyYXRpb24gZGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnRXhwaXJhdGlvbiBkYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMVwiPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb3Zpc2lvbmVkQ2VydGlmaWNhdGUgb2YgcHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZXMgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Yzh5LWxpLWJvZHkgY2xhc3M9XCJjb250ZW50LWZsZXgtNjBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdTZXJpYWwgTm8uJyB8IHRyYW5zbGF0ZSB9fToge3sgcHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZS5zZXJpYWxOdW1iZXIgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1sYWJlbC1zbWFsbCBtLXQtOCBtLXItOCB2aXNpYmxlLXhzLWlubGluZVwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBTZXJpYWwgTm8uXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7IHByb3Zpc2lvbmVkQ2VydGlmaWNhdGUuc2VyaWFsTnVtYmVyIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdFeHBpcmF0aW9uIGRhdGUnIHwgdHJhbnNsYXRlIH19OiB7e1xuICAgICAgICAgICAgICAgICAgcHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZS52YWxpZFRpbGwgfCBjOHlEYXRlXG4gICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1sYWJlbC1zbWFsbCBtLXQtOCBtLXItOCB2aXNpYmxlLXhzLWlubGluZVwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBFeHBpcmF0aW9uIGRhdGVcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInByb3Zpc2lvbmVkQ2VydGlmaWNhdGUudmFsaWRUaWxsXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImhpZ2hsaWdodERlcGVuZGluZ09uRXhwaXJhdGlvblN0YXR1cyhwcm92aXNpb25lZENlcnRpZmljYXRlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICAgICAgICAgIGM4eUljb249XCJjYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWhpZ2hsaWdodERlcGVuZGluZ09uRXhwaXJhdGlvblN0YXR1cyhwcm92aXNpb25lZENlcnRpZmljYXRlKVwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICAgICAgICAgIGM4eUljb249XCJ3YXJuaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoaWdobGlnaHREZXBlbmRpbmdPbkV4cGlyYXRpb25TdGF0dXMocHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZSlcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHByb3Zpc2lvbmVkQ2VydGlmaWNhdGUudmFsaWRUaWxsIHwgYzh5RGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmV2b2tlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJldm9rZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGUocHJvdmlzaW9uZWRDZXJ0aWZpY2F0ZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRlbGV0ZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2M4eS1saS1ib2R5PlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgIDwvYzh5LWxpc3QtZ3JvdXA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './device-provisioned-certificates.module';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RldmljZS1wcm92aXNpb25lZC1jZXJ0aWZpY2F0ZXMubW9kdWxlJztcbiJdfQ==