@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
@@ -1,7 +1,7 @@
1
1
  import { Component, Input, HostBinding, Renderer2, ElementRef, ViewChild } from '@angular/core';
2
- import { debounceTime, map, takeUntil } from 'rxjs/operators';
2
+ import { debounceTime, map, take, takeUntil } from 'rxjs/operators';
3
3
  import { fromEventPattern, fromEvent, merge, BehaviorSubject, Subject } from 'rxjs';
4
- import { Router } from '@angular/router';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
5
  import { HeaderService } from '../header/header.service';
6
6
  import { TabsService } from './tabs.service';
7
7
  import * as i0 from "@angular/core";
@@ -30,30 +30,47 @@ export class TabsOutletComponent {
30
30
  get isVertical() {
31
31
  return this.orientation !== 'horizontal';
32
32
  }
33
- constructor(router, renderer, header, tabsService) {
33
+ constructor(router, renderer, header, tabsService, activatedRoute) {
34
34
  this.router = router;
35
35
  this.renderer = renderer;
36
36
  this.header = header;
37
37
  this.tabsService = tabsService;
38
+ this.activatedRoute = activatedRoute;
38
39
  this.tabs = [];
39
40
  this.orientation = 'vertical';
40
41
  this.navigatorOpen = false;
42
+ this.openFirstTab = true;
41
43
  /**
42
44
  * Identifies if the current view has a header element.
43
45
  */
44
46
  this.hasHeader = false;
45
47
  this.showLeft = false;
46
48
  this.showRight = false;
49
+ this.extras = {
50
+ queryParamsHandling: 'preserve',
51
+ relativeTo: this.activatedRoute
52
+ };
47
53
  this.destroy$ = new Subject();
48
54
  this.tabsChanges$ = new BehaviorSubject([]);
49
55
  }
50
56
  ngOnInit() {
51
57
  if (this.outletName && this.tabs.length === 0) {
52
- this.tabsService.items$
53
- .pipe(map(tabs => tabs.filter(tab => tab.tabsOutlet === this.outletName)), takeUntil(this.destroy$))
54
- .subscribe(tabs => {
58
+ const tabsSubscription$ = this.tabsService.items$.pipe(map(tabs => tabs.filter(tab => tab.tabsOutlet === this.outletName)), takeUntil(this.destroy$));
59
+ tabsSubscription$.subscribe(tabs => {
55
60
  this.tabs = tabs;
56
61
  });
62
+ tabsSubscription$.pipe(take(1)).subscribe(tabs => {
63
+ if (this.openFirstTab && tabs.length) {
64
+ this.navigateTo(tabs[0].path);
65
+ }
66
+ });
67
+ }
68
+ else if (this.openFirstTab && this.tabs.length) {
69
+ const matchingTab = this.tabs.find(tab => this.isActive(tab));
70
+ // only navigate to first tab if no tab is active
71
+ if (!matchingTab) {
72
+ this.navigateTo(this.tabs[0].path);
73
+ }
57
74
  }
58
75
  }
59
76
  ngOnChanges(changes) {
@@ -76,7 +93,13 @@ export class TabsOutletComponent {
76
93
  }
77
94
  isActive(tab) {
78
95
  if (tab && tab.path) {
79
- return this.router.isActive(tab.path, false);
96
+ const tree = this.router.createUrlTree(typeof tab.path === 'string' ? [tab.path] : tab.path);
97
+ return this.router.isActive(tree, {
98
+ paths: 'subset',
99
+ queryParams: 'subset',
100
+ fragment: 'ignored',
101
+ matrixParams: 'ignored'
102
+ });
80
103
  }
81
104
  else {
82
105
  return false;
@@ -84,7 +107,11 @@ export class TabsOutletComponent {
84
107
  }
85
108
  navigateTo(path) {
86
109
  this.header.toggle();
87
- this.router.navigate([path]);
110
+ if (typeof path === 'string') {
111
+ this.router.navigate([path], this.extras);
112
+ return;
113
+ }
114
+ this.router.navigate(path, this.extras);
88
115
  }
89
116
  scroll(direction = 'right') {
90
117
  const { widthScroll, width, scrollLeft } = this.getDimensions();
@@ -119,13 +146,13 @@ export class TabsOutletComponent {
119
146
  const scrollLeft = el.scrollLeft;
120
147
  return { widthScroll, width, scrollLeft };
121
148
  }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TabsOutletComponent, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i2.HeaderService }, { token: i3.TabsService }], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: { tabs: "tabs", orientation: "orientation", navigatorOpen: "navigatorOpen", outletName: "outletName", context: "context", hasHeader: "hasHeader" }, host: { properties: { "class.has-header": "this.hasHeader", "class.navigator-open": "this.isNavigatorOpen", "class.page-tabs": "this.hasTabs", "class.page-tabs-horizontal": "this.isHorizontal", "class.page-tabs-vertical": "this.isVertical" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "tabsContainer", first: true, predicate: ["tabsContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"tabContainer\"\n [ngClass]=\"{ 'hidden-xs': !outletName }\"\n #container\n>\n <button\n class=\"tabs-slider tabs-slider-left\"\n title=\"{{ 'Scroll to the left' | translate }}\"\n type=\"button\"\n #left\n *ngIf=\"showLeft || showRight\"\n [disabled]=\"!showLeft\"\n (click)=\"scroll('left')\"\n >\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button\n class=\"tabs-slider tabs-slider-right\"\n title=\"{{ 'Scroll to the right' | translate }}\"\n type=\"button\"\n #right\n *ngIf=\"showRight || showLeft\"\n [disabled]=\"!showRight\"\n (click)=\"scroll('right')\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <ng-container *ngIf=\"!outletName\">\n <div\n class=\"nav nav-tabs nav-tabsc8y\"\n role=\"list\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <div\n role=\"listitem\"\n [ngClass]=\"{ active: rla?.isActive }\"\n *ngIf=\"!tab.component && !tab.hide\"\n >\n <a\n [routerLink]=\"tab.path\"\n routerLinkActive\n [queryParamsHandling]=\"'preserve'\"\n #rla=\"routerLinkActive\"\n [ngClass]=\"{ 'p-r-24': !tab.template && tab?.badge }\"\n (click)=\"tab.onSelect?.emit()\"\n >\n <i\n [c8yIcon]=\"tab?.icon\"\n *ngIf=\"!tab.template && tab?.icon\"\n ></i>\n <span\n title=\"{{ tab?.label | translate }}\"\n *ngIf=\"!tab.template && !tab.component\"\n >\n {{ tab?.label | translate }}\n </span>\n <span\n class=\"dashboard-template-marker\"\n tooltip=\"{{ tab?.tooltipText | translate }}\"\n placement=\"bottom\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n [delay]=\"300\"\n *ngIf=\"!tab.template && tab?.badge\"\n ></span>\n </a>\n <ng-container *ngTemplateOutlet=\"tab.template; injector: tab.injector\"></ng-container>\n </div>\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <div\n class=\"component-tabs nav nav-tabs nav-tabsc8y\"\n *ngIf=\"outletName\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs; trackBy: trackByPath\">\n <div\n [ngClass]=\"{ active: tab.isActive }\"\n [routerLink]=\"tab.path\"\n [routerLinkActive]=\"tab.path ? 'active' : ''\"\n [queryParamsHandling]=\"'preserve'\"\n >\n <a\n class=\"pointer\"\n title=\"{{ tab?.label | translate }}\"\n (click)=\"tab.onSelect?.emit()\"\n >\n <i [c8yIcon]=\"tab?.icon\"></i>\n <span>\n {{ tab?.label | translate }}\n </span>\n </a>\n </div>\n </ng-container>\n </div>\n</div>\n\n<div\n class=\"visible-xs mobile-tabs\"\n *ngIf=\"!outletName\"\n>\n <ul class=\"list-unstyled d-flex m-b-0\">\n <li class=\"c8y-select-wrapper flex-grow\">\n <select\n (change)=\"navigateTo($event.target.value)\"\n #select\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <option\n *ngIf=\"!tab.component\"\n [value]=\"tab.path\"\n [selected]=\"isActive(tab)\"\n >\n {{ tab?.label | translate }}\n </option>\n </ng-container>\n </select>\n </li>\n <ng-container *ngFor=\"let tab of tabs\">\n <ng-container *ngIf=\"tab.component\">\n <ng-container\n *c8yComponentOutlet=\"tab.component; environmentInjector: tab.injector\"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i4.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.C8yComponentOutlet, selector: "[c8yComponentOutlet]", inputs: ["c8yComponentOutlet", "c8yComponentOutletInjector", "c8yComponentOutletEnvironmentInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i8.C8yTranslatePipe, name: "translate" }] }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TabsOutletComponent, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i2.HeaderService }, { token: i3.TabsService }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: { tabs: "tabs", orientation: "orientation", navigatorOpen: "navigatorOpen", outletName: "outletName", context: "context", openFirstTab: "openFirstTab", hasHeader: "hasHeader" }, host: { properties: { "class.has-header": "this.hasHeader", "class.navigator-open": "this.isNavigatorOpen", "class.page-tabs": "this.hasTabs", "class.page-tabs-horizontal": "this.isHorizontal", "class.page-tabs-vertical": "this.isVertical" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "tabsContainer", first: true, predicate: ["tabsContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"tabContainer\"\n [ngClass]=\"{ 'hidden-xs': !outletName }\"\n #container\n>\n <button\n class=\"tabs-slider tabs-slider-left\"\n title=\"{{ 'Scroll to the left' | translate }}\"\n type=\"button\"\n #left\n *ngIf=\"showLeft || showRight\"\n [disabled]=\"!showLeft\"\n (click)=\"scroll('left')\"\n >\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button\n class=\"tabs-slider tabs-slider-right\"\n title=\"{{ 'Scroll to the right' | translate }}\"\n type=\"button\"\n #right\n *ngIf=\"showRight || showLeft\"\n [disabled]=\"!showRight\"\n (click)=\"scroll('right')\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <ng-container *ngIf=\"!outletName\">\n <div\n class=\"nav nav-tabs nav-tabsc8y\"\n role=\"list\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <div\n role=\"listitem\"\n [ngClass]=\"{ active: rla?.isActive }\"\n *ngIf=\"!tab.component && !tab.hide\"\n >\n <a\n [routerLink]=\"tab.path\"\n routerLinkActive\n [queryParamsHandling]=\"'preserve'\"\n #rla=\"routerLinkActive\"\n [ngClass]=\"{ 'p-r-24': !tab.template && tab?.badge }\"\n (click)=\"tab.onSelect?.emit()\"\n >\n <i\n [c8yIcon]=\"tab?.icon\"\n *ngIf=\"!tab.template && tab?.icon\"\n ></i>\n <span\n title=\"{{ tab?.label | translate }}\"\n *ngIf=\"!tab.template && !tab.component\"\n >\n {{ tab?.label | translate }}\n </span>\n <span\n class=\"dashboard-template-marker\"\n tooltip=\"{{ tab?.tooltipText | translate }}\"\n placement=\"bottom\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n [delay]=\"300\"\n *ngIf=\"!tab.template && tab?.badge\"\n ></span>\n </a>\n <ng-container *ngTemplateOutlet=\"tab.template; injector: tab.injector\"></ng-container>\n </div>\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <div\n class=\"component-tabs nav nav-tabs nav-tabsc8y\"\n *ngIf=\"outletName\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs; trackBy: trackByPath\">\n <div\n [ngClass]=\"{ active: tab.isActive }\"\n [routerLink]=\"tab.path\"\n [routerLinkActive]=\"tab.path ? 'active' : ''\"\n [queryParamsHandling]=\"'preserve'\"\n >\n <a\n class=\"pointer\"\n title=\"{{ tab?.label | translate }}\"\n (click)=\"tab.onSelect?.emit()\"\n >\n <i [c8yIcon]=\"tab?.icon\"></i>\n <span>\n {{ tab?.label | translate }}\n </span>\n </a>\n </div>\n </ng-container>\n </div>\n</div>\n\n<div\n class=\"visible-xs mobile-tabs\"\n *ngIf=\"!outletName\"\n>\n <ul class=\"list-unstyled d-flex m-b-0\">\n <li class=\"c8y-select-wrapper flex-grow\">\n <select\n (change)=\"navigateTo($event.target.value)\"\n #select\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <option\n *ngIf=\"!tab.component\"\n [value]=\"tab.path\"\n [selected]=\"isActive(tab)\"\n >\n {{ tab?.label | translate }}\n </option>\n </ng-container>\n </select>\n </li>\n <ng-container *ngFor=\"let tab of tabs\">\n <ng-container *ngIf=\"tab.component\">\n <ng-container\n *c8yComponentOutlet=\"tab.component; environmentInjector: tab.injector\"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i4.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.C8yComponentOutlet, selector: "[c8yComponentOutlet]", inputs: ["c8yComponentOutlet", "c8yComponentOutletInjector", "c8yComponentOutletEnvironmentInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i8.C8yTranslatePipe, name: "translate" }] }); }
124
151
  }
125
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TabsOutletComponent, decorators: [{
126
153
  type: Component,
127
154
  args: [{ selector: 'c8y-tabs-outlet,c8y-ui-tabs', template: "<div\n class=\"tabContainer\"\n [ngClass]=\"{ 'hidden-xs': !outletName }\"\n #container\n>\n <button\n class=\"tabs-slider tabs-slider-left\"\n title=\"{{ 'Scroll to the left' | translate }}\"\n type=\"button\"\n #left\n *ngIf=\"showLeft || showRight\"\n [disabled]=\"!showLeft\"\n (click)=\"scroll('left')\"\n >\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button\n class=\"tabs-slider tabs-slider-right\"\n title=\"{{ 'Scroll to the right' | translate }}\"\n type=\"button\"\n #right\n *ngIf=\"showRight || showLeft\"\n [disabled]=\"!showRight\"\n (click)=\"scroll('right')\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <ng-container *ngIf=\"!outletName\">\n <div\n class=\"nav nav-tabs nav-tabsc8y\"\n role=\"list\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <div\n role=\"listitem\"\n [ngClass]=\"{ active: rla?.isActive }\"\n *ngIf=\"!tab.component && !tab.hide\"\n >\n <a\n [routerLink]=\"tab.path\"\n routerLinkActive\n [queryParamsHandling]=\"'preserve'\"\n #rla=\"routerLinkActive\"\n [ngClass]=\"{ 'p-r-24': !tab.template && tab?.badge }\"\n (click)=\"tab.onSelect?.emit()\"\n >\n <i\n [c8yIcon]=\"tab?.icon\"\n *ngIf=\"!tab.template && tab?.icon\"\n ></i>\n <span\n title=\"{{ tab?.label | translate }}\"\n *ngIf=\"!tab.template && !tab.component\"\n >\n {{ tab?.label | translate }}\n </span>\n <span\n class=\"dashboard-template-marker\"\n tooltip=\"{{ tab?.tooltipText | translate }}\"\n placement=\"bottom\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n [delay]=\"300\"\n *ngIf=\"!tab.template && tab?.badge\"\n ></span>\n </a>\n <ng-container *ngTemplateOutlet=\"tab.template; injector: tab.injector\"></ng-container>\n </div>\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <div\n class=\"component-tabs nav nav-tabs nav-tabsc8y\"\n *ngIf=\"outletName\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs; trackBy: trackByPath\">\n <div\n [ngClass]=\"{ active: tab.isActive }\"\n [routerLink]=\"tab.path\"\n [routerLinkActive]=\"tab.path ? 'active' : ''\"\n [queryParamsHandling]=\"'preserve'\"\n >\n <a\n class=\"pointer\"\n title=\"{{ tab?.label | translate }}\"\n (click)=\"tab.onSelect?.emit()\"\n >\n <i [c8yIcon]=\"tab?.icon\"></i>\n <span>\n {{ tab?.label | translate }}\n </span>\n </a>\n </div>\n </ng-container>\n </div>\n</div>\n\n<div\n class=\"visible-xs mobile-tabs\"\n *ngIf=\"!outletName\"\n>\n <ul class=\"list-unstyled d-flex m-b-0\">\n <li class=\"c8y-select-wrapper flex-grow\">\n <select\n (change)=\"navigateTo($event.target.value)\"\n #select\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <option\n *ngIf=\"!tab.component\"\n [value]=\"tab.path\"\n [selected]=\"isActive(tab)\"\n >\n {{ tab?.label | translate }}\n </option>\n </ng-container>\n </select>\n </li>\n <ng-container *ngFor=\"let tab of tabs\">\n <ng-container *ngIf=\"tab.component\">\n <ng-container\n *c8yComponentOutlet=\"tab.component; environmentInjector: tab.injector\"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n" }]
128
- }], ctorParameters: () => [{ type: i1.Router }, { type: i0.Renderer2 }, { type: i2.HeaderService }, { type: i3.TabsService }], propDecorators: { tabs: [{
155
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i0.Renderer2 }, { type: i2.HeaderService }, { type: i3.TabsService }, { type: i1.ActivatedRoute }], propDecorators: { tabs: [{
129
156
  type: Input
130
157
  }], orientation: [{
131
158
  type: Input
@@ -135,6 +162,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
135
162
  type: Input
136
163
  }], context: [{
137
164
  type: Input
165
+ }], openFirstTab: [{
166
+ type: Input
138
167
  }], hasHeader: [{
139
168
  type: Input
140
169
  }, {
@@ -159,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
159
188
  type: ViewChild,
160
189
  args: ['tabsContainer', { read: ElementRef, static: false }]
161
190
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS90YWJzL3RhYnMtb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvdGFicy90YWJzLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBS1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU03QyxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLElBQXlDLGVBQWU7UUFDdEQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFvQyxPQUFPO1FBQ3pDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLElB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V0FBVzt1QkFBQyxrQkFBa0I7Z0JBSUMsZUFBZTtzQkFBdkQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBR0MsT0FBTztzQkFBMUMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBT2lCLFlBQVk7c0JBQTFELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUdJLFVBQVU7c0JBQXRELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUc2QixTQUFTO3NCQUE1RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFbEQsYUFBYTtzQkFEcEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBIb3N0QmluZGluZyxcbiAgUmVuZGVyZXIyLFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE9uRGVzdHJveSxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGZyb21FdmVudFBhdHRlcm4sIGZyb21FdmVudCwgbWVyZ2UsIEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRhYiB9IGZyb20gJy4vdGFiLm1vZGVsJztcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFic1NlcnZpY2UgfSBmcm9tICcuL3RhYnMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS10YWJzLW91dGxldCxjOHktdWktdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzLW91dGxldC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGFic091dGxldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdGFiczogVGFiW10gPSBbXTtcbiAgQElucHV0KCkgb3JpZW50YXRpb246ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAndmVydGljYWwnO1xuICBASW5wdXQoKSBuYXZpZ2F0b3JPcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG91dGxldE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY29udGV4dDogYW55O1xuICAvKipcbiAgICogSWRlbnRpZmllcyBpZiB0aGUgY3VycmVudCB2aWV3IGhhcyBhIGhlYWRlciBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtaGVhZGVyJykgaGFzSGVhZGVyID0gZmFsc2U7XG5cbiAgc2hvd0xlZnQgPSBmYWxzZTtcbiAgc2hvd1JpZ2h0ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MubmF2aWdhdG9yLW9wZW4nKSBnZXQgaXNOYXZpZ2F0b3JPcGVuKCkge1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRvck9wZW47XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wYWdlLXRhYnMnKSBnZXQgaGFzVGFicygpIHtcbiAgICBsZXQgdmlzaWJsZVRhYnMgPSBbXTtcbiAgICBpZiAodGhpcy50YWJzKSB7XG4gICAgICB2aXNpYmxlVGFicyA9IHRoaXMudGFicy5maWx0ZXIodGFiID0+IHRhYi5oaWRlICE9PSB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZpc2libGVUYWJzLmxlbmd0aCA+IDEgfHwgdmlzaWJsZVRhYnMuZmluZCh0YWIgPT4gdGFiLnNob3dBbHdheXMpO1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFnZS10YWJzLWhvcml6b250YWwnKSBnZXQgaXNIb3Jpem9udGFsKCkge1xuICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCc7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wYWdlLXRhYnMtdmVydGljYWwnKSBnZXQgaXNWZXJ0aWNhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiAhPT0gJ2hvcml6b250YWwnO1xuICB9XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd0YWJzQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHByaXZhdGUgdGFic0NvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgdGFic0NoYW5nZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgaGVhZGVyOiBIZWFkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFic1NlcnZpY2U6IFRhYnNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdXRsZXROYW1lICYmIHRoaXMudGFicy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudGFic1NlcnZpY2UuaXRlbXMkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCh0YWJzID0+IHRhYnMuZmlsdGVyKHRhYiA9PiB0YWIudGFic091dGxldCA9PT0gdGhpcy5vdXRsZXROYW1lKSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh0YWJzID0+IHtcbiAgICAgICAgICB0aGlzLnRhYnMgPSB0YWJzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMudGFicykge1xuICAgICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcih0YWIgPT4gdGFiLnRhYnNPdXRsZXQgPT09IHRoaXMub3V0bGV0TmFtZSk7XG4gICAgICB0aGlzLnRhYnNDaGFuZ2VzJC5uZXh0KHRoaXMudGFicyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICh0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeVBhdGgoaW5kZXgsIHRhYjogVGFiKSB7XG4gICAgcmV0dXJuIHRhYi5wYXRoID8gdGFiLnBhdGggOiBpbmRleDtcbiAgfVxuXG4gIGlzQWN0aXZlKHRhYjogVGFiKSB7XG4gICAgaWYgKHRhYiAmJiB0YWIucGF0aCkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmlzQWN0aXZlKHRhYi5wYXRoLCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZVRvKHBhdGgpIHtcbiAgICB0aGlzLmhlYWRlci50b2dnbGUoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aF0pO1xuICB9XG5cbiAgc2Nyb2xsKGRpcmVjdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCcpIHtcbiAgICBjb25zdCB7IHdpZHRoU2Nyb2xsLCB3aWR0aCwgc2Nyb2xsTGVmdCB9ID0gdGhpcy5nZXREaW1lbnNpb25zKCk7XG4gICAgY29uc3QgbXVsdGlwbGllciA9IGRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gLTEgOiAxO1xuXG4gICAgbGV0IHRhcmdldFNjcm9sbCA9IHNjcm9sbExlZnQgKyB3aWR0aCAqIG11bHRpcGxpZXI7XG4gICAgaWYgKHRhcmdldFNjcm9sbCA8IDApIHtcbiAgICAgIHRhcmdldFNjcm9sbCA9IDA7XG4gICAgfVxuICAgIGlmICh0YXJnZXRTY3JvbGwgPiB3aWR0aFNjcm9sbCAtIHdpZHRoKSB7XG4gICAgICB0YXJnZXRTY3JvbGwgPSB3aWR0aFNjcm9sbCAtIHdpZHRoO1xuICAgIH1cbiAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0YXJnZXRTY3JvbGw7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFN1YnNjcmliZSgpIHtcbiAgICBsZXQgdW5saXN0ZW47XG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLnRhYnNDaGFuZ2VzJCxcbiAgICAgIGZyb21FdmVudCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJyksXG4gICAgICBmcm9tRXZlbnRQYXR0ZXJuKFxuICAgICAgICAoaGFuZGxlcjogYW55KSA9PiB7XG4gICAgICAgICAgdW5saXN0ZW4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsIGhhbmRsZXIpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB1bmxpc3RlbigpXG4gICAgICApXG4gICAgKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDI1MCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTY3JvbGwoKSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNjcm9sbCgpIHtcbiAgICBjb25zdCB7IHdpZHRoU2Nyb2xsLCB3aWR0aCwgc2Nyb2xsTGVmdCB9ID0gdGhpcy5nZXREaW1lbnNpb25zKCk7XG4gICAgdGhpcy5zaG93TGVmdCA9ICEhc2Nyb2xsTGVmdDtcbiAgICB0aGlzLnNob3dSaWdodCA9IHdpZHRoU2Nyb2xsID4gd2lkdGggKyBzY3JvbGxMZWZ0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaW1lbnNpb25zKCkge1xuICAgIGNvbnN0IGVsVGFicyA9IHRoaXMudGFic0NvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB3aWR0aFNjcm9sbCA9IGVsVGFicy5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCB3aWR0aCA9IGVsLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHNjcm9sbExlZnQgPSBlbC5zY3JvbGxMZWZ0O1xuICAgIHJldHVybiB7IHdpZHRoU2Nyb2xsLCB3aWR0aCwgc2Nyb2xsTGVmdCB9O1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidGFiQ29udGFpbmVyXCJcbiAgW25nQ2xhc3NdPVwieyAnaGlkZGVuLXhzJzogIW91dGxldE5hbWUgfVwiXG4gICNjb250YWluZXJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwidGFicy1zbGlkZXIgdGFicy1zbGlkZXItbGVmdFwiXG4gICAgdGl0bGU9XCJ7eyAnU2Nyb2xsIHRvIHRoZSBsZWZ0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgI2xlZnRcbiAgICAqbmdJZj1cInNob3dMZWZ0IHx8IHNob3dSaWdodFwiXG4gICAgW2Rpc2FibGVkXT1cIiFzaG93TGVmdFwiXG4gICAgKGNsaWNrKT1cInNjcm9sbCgnbGVmdCcpXCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cIidjaGV2cm9uLWxlZnQnXCI+PC9pPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwidGFicy1zbGlkZXIgdGFicy1zbGlkZXItcmlnaHRcIlxuICAgIHRpdGxlPVwie3sgJ1Njcm9sbCB0byB0aGUgcmlnaHQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAjcmlnaHRcbiAgICAqbmdJZj1cInNob3dSaWdodCB8fCBzaG93TGVmdFwiXG4gICAgW2Rpc2FibGVkXT1cIiFzaG93UmlnaHRcIlxuICAgIChjbGljayk9XCJzY3JvbGwoJ3JpZ2h0JylcIlxuICA+XG4gICAgPGkgW2M4eUljb25dPVwiJ2NoZXZyb24tcmlnaHQnXCI+PC9pPlxuICA8L2J1dHRvbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvdXRsZXROYW1lXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbmF2LXRhYnNjOHlcIlxuICAgICAgcm9sZT1cImxpc3RcIlxuICAgICAgI3RhYnNDb250YWluZXJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogcmxhPy5pc0FjdGl2ZSB9XCJcbiAgICAgICAgICAqbmdJZj1cIiF0YWIuY29tcG9uZW50ICYmICF0YWIuaGlkZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwidGFiLnBhdGhcIlxuICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZVxuICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiJ3ByZXNlcnZlJ1wiXG4gICAgICAgICAgICAjcmxhPVwicm91dGVyTGlua0FjdGl2ZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLXItMjQnOiAhdGFiLnRlbXBsYXRlICYmIHRhYj8uYmFkZ2UgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidGFiLm9uU2VsZWN0Py5lbWl0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cInRhYj8uaWNvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXRhYi50ZW1wbGF0ZSAmJiB0YWI/Lmljb25cIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgdGFiPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXRhYi50ZW1wbGF0ZSAmJiAhdGFiLmNvbXBvbmVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHRhYj8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGFzaGJvYXJkLXRlbXBsYXRlLW1hcmtlclwiXG4gICAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyB0YWI/LnRvb2x0aXBUZXh0IHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2RlbGF5XT1cIjMwMFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXRhYi50ZW1wbGF0ZSAmJiB0YWI/LmJhZGdlXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIudGVtcGxhdGU7IGluamVjdG9yOiB0YWIuaW5qZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwidGFiLmNvbXBvbmVudDsgaW5qZWN0b3I6IHRhYi5pbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbXBvbmVudC10YWJzIG5hdiBuYXYtdGFicyBuYXYtdGFic2M4eVwiXG4gICAgKm5nSWY9XCJvdXRsZXROYW1lXCJcbiAgICAjdGFic0NvbnRhaW5lclxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IHRyYWNrQnk6IHRyYWNrQnlQYXRoXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiB0YWIuaXNBY3RpdmUgfVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cInRhYi5wYXRoXCJcbiAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwidGFiLnBhdGggPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiJ3ByZXNlcnZlJ1wiXG4gICAgICA+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJwb2ludGVyXCJcbiAgICAgICAgICB0aXRsZT1cInt7IHRhYj8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIChjbGljayk9XCJ0YWIub25TZWxlY3Q/LmVtaXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbYzh5SWNvbl09XCJ0YWI/Lmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyB0YWI/LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cInZpc2libGUteHMgbW9iaWxlLXRhYnNcIlxuICAqbmdJZj1cIiFvdXRsZXROYW1lXCJcbj5cbiAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBkLWZsZXggbS1iLTBcIj5cbiAgICA8bGkgY2xhc3M9XCJjOHktc2VsZWN0LXdyYXBwZXIgZmxleC1ncm93XCI+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIChjaGFuZ2UpPVwibmF2aWdhdGVUbygkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgICNzZWxlY3RcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdJZj1cIiF0YWIuY29tcG9uZW50XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0YWIucGF0aFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXNBY3RpdmUodGFiKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdGFiPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvbGk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuY29tcG9uZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqYzh5Q29tcG9uZW50T3V0bGV0PVwidGFiLmNvbXBvbmVudDsgZW52aXJvbm1lbnRJbmplY3RvcjogdGFiLmluamVjdG9yXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS90YWJzL3RhYnMtb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvdGFicy90YWJzLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBS1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBb0IsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU03QyxNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QixJQUF5QyxlQUFlO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBb0MsT0FBTztRQUN6QyxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQStDLFlBQVk7UUFDekQsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBNkMsVUFBVTtRQUNyRCxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDO0lBQzNDLENBQUM7SUFPRCxZQUNVLE1BQWMsRUFDZCxRQUFtQixFQUNuQixNQUFxQixFQUNyQixXQUF3QixFQUN4QixjQUE4QjtRQUo5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQTVDL0IsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUE4QixVQUFVLENBQUM7UUFDcEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDN0I7O1dBRUc7UUFDdUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUU1RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsV0FBTSxHQUFxQjtZQUN6QixtQkFBbUIsRUFBRSxVQUFVO1lBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNoQyxDQUFDO1FBb0JNLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVEsRUFBRSxDQUFDLENBQUM7SUFRbkQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3BELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUNuRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QixDQUFDO1lBRUYsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztZQUVILGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9DLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUQsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQVE7UUFDekIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hDLEtBQUssRUFBRSxRQUFRO2dCQUNmLFdBQVcsRUFBRSxRQUFRO2dCQUNyQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsWUFBWSxFQUFFLFNBQVM7YUFDeEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW9CO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUE4QixPQUFPO1FBQzFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpELElBQUksWUFBWSxHQUFHLFVBQVUsR0FBRyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ25ELElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksWUFBWSxHQUFHLFdBQVcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUN2QyxZQUFZLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztJQUN6RCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLFFBQVEsQ0FBQztRQUNiLEtBQUssQ0FDSCxJQUFJLENBQUMsWUFBWSxFQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQ2pELGdCQUFnQixDQUNkLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDZixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxDQUFDLEVBQ0QsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQ2pCLENBQ0Y7YUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLEdBQUcsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUNwRCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzhHQWpLVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxa0JBa0NFLFVBQVUsdUhBQ04sVUFBVSxrREMxRGhELHMwSEFtSUE7OzJGRDVHYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsNkJBQTZCO3NMQUk5QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSW9DLFNBQVM7c0JBQWxELEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsa0JBQWtCO2dCQVFDLGVBQWU7c0JBQXZELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUdDLE9BQU87c0JBQTFDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQU9pQixZQUFZO3NCQUExRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFHSSxVQUFVO3NCQUF0RCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFHNkIsU0FBUztzQkFBNUUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRWxELGFBQWE7c0JBRHBCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgSG9zdEJpbmRpbmcsXG4gIFJlbmRlcmVyMixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmcm9tRXZlbnRQYXR0ZXJuLCBmcm9tRXZlbnQsIG1lcmdlLCBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVGFiIH0gZnJvbSAnLi90YWIubW9kZWwnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4vdGFicy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRhYnMtb3V0bGV0LGM4eS11aS10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnMtb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWJzT3V0bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0YWJzOiBUYWJbXSA9IFtdO1xuICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICd2ZXJ0aWNhbCc7XG4gIEBJbnB1dCgpIG5hdmlnYXRvck9wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgb3V0bGV0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XG4gIEBJbnB1dCgpIG9wZW5GaXJzdFRhYiA9IHRydWU7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGlmIHRoZSBjdXJyZW50IHZpZXcgaGFzIGEgaGVhZGVyIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1oZWFkZXInKSBoYXNIZWFkZXIgPSBmYWxzZTtcblxuICBzaG93TGVmdCA9IGZhbHNlO1xuICBzaG93UmlnaHQgPSBmYWxzZTtcbiAgZXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdwcmVzZXJ2ZScsXG4gICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZVxuICB9O1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5hdmlnYXRvci1vcGVuJykgZ2V0IGlzTmF2aWdhdG9yT3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0b3JPcGVuO1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFnZS10YWJzJykgZ2V0IGhhc1RhYnMoKSB7XG4gICAgbGV0IHZpc2libGVUYWJzID0gW107XG4gICAgaWYgKHRoaXMudGFicykge1xuICAgICAgdmlzaWJsZVRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKHRhYiA9PiB0YWIuaGlkZSAhPT0gdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2aXNpYmxlVGFicy5sZW5ndGggPiAxIHx8IHZpc2libGVUYWJzLmZpbmQodGFiID0+IHRhYi5zaG93QWx3YXlzKTtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhZ2UtdGFicy1ob3Jpem9udGFsJykgZ2V0IGlzSG9yaXpvbnRhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnO1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFnZS10YWJzLXZlcnRpY2FsJykgZ2V0IGlzVmVydGljYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gIT09ICdob3Jpem9udGFsJztcbiAgfVxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGFic0NvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIHRhYnNDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHRhYnNDaGFuZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFiW10+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGhlYWRlcjogSGVhZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHRhYnNTZXJ2aWNlOiBUYWJzU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3V0bGV0TmFtZSAmJiB0aGlzLnRhYnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCB0YWJzU3Vic2NyaXB0aW9uJCA9IHRoaXMudGFic1NlcnZpY2UuaXRlbXMkLnBpcGUoXG4gICAgICAgIG1hcCh0YWJzID0+IHRhYnMuZmlsdGVyKHRhYiA9PiB0YWIudGFic091dGxldCA9PT0gdGhpcy5vdXRsZXROYW1lKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKTtcblxuICAgICAgdGFic1N1YnNjcmlwdGlvbiQuc3Vic2NyaWJlKHRhYnMgPT4ge1xuICAgICAgICB0aGlzLnRhYnMgPSB0YWJzO1xuICAgICAgfSk7XG5cbiAgICAgIHRhYnNTdWJzY3JpcHRpb24kLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHRhYnMgPT4ge1xuICAgICAgICBpZiAodGhpcy5vcGVuRmlyc3RUYWIgJiYgdGFicy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRlVG8odGFic1swXS5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wZW5GaXJzdFRhYiAmJiB0aGlzLnRhYnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBtYXRjaGluZ1RhYiA9IHRoaXMudGFicy5maW5kKHRhYiA9PiB0aGlzLmlzQWN0aXZlKHRhYikpO1xuICAgICAgLy8gb25seSBuYXZpZ2F0ZSB0byBmaXJzdCB0YWIgaWYgbm8gdGFiIGlzIGFjdGl2ZVxuICAgICAgaWYgKCFtYXRjaGluZ1RhYikge1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG8odGhpcy50YWJzWzBdLnBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy50YWJzKSB7XG4gICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKHRhYiA9PiB0YWIudGFic091dGxldCA9PT0gdGhpcy5vdXRsZXROYW1lKTtcbiAgICAgIHRoaXMudGFic0NoYW5nZXMkLm5leHQodGhpcy50YWJzKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5UGF0aChpbmRleCwgdGFiOiBUYWIpIHtcbiAgICByZXR1cm4gdGFiLnBhdGggPyB0YWIucGF0aCA6IGluZGV4O1xuICB9XG5cbiAgaXNBY3RpdmUodGFiOiBUYWIpIHtcbiAgICBpZiAodGFiICYmIHRhYi5wYXRoKSB7XG4gICAgICBjb25zdCB0cmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZSh0eXBlb2YgdGFiLnBhdGggPT09ICdzdHJpbmcnID8gW3RhYi5wYXRoXSA6IHRhYi5wYXRoKTtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5pc0FjdGl2ZSh0cmVlLCB7XG4gICAgICAgIHBhdGhzOiAnc3Vic2V0JyxcbiAgICAgICAgcXVlcnlQYXJhbXM6ICdzdWJzZXQnLFxuICAgICAgICBmcmFnbWVudDogJ2lnbm9yZWQnLFxuICAgICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZVRvKHBhdGg6IHN0cmluZyB8IGFueVtdKSB7XG4gICAgdGhpcy5oZWFkZXIudG9nZ2xlKCk7XG4gICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdLCB0aGlzLmV4dHJhcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHBhdGgsIHRoaXMuZXh0cmFzKTtcbiAgfVxuXG4gIHNjcm9sbChkaXJlY3Rpb246ICdyaWdodCcgfCAnbGVmdCcgPSAncmlnaHQnKSB7XG4gICAgY29uc3QgeyB3aWR0aFNjcm9sbCwgd2lkdGgsIHNjcm9sbExlZnQgfSA9IHRoaXMuZ2V0RGltZW5zaW9ucygpO1xuICAgIGNvbnN0IG11bHRpcGxpZXIgPSBkaXJlY3Rpb24gPT09ICdsZWZ0JyA/IC0xIDogMTtcblxuICAgIGxldCB0YXJnZXRTY3JvbGwgPSBzY3JvbGxMZWZ0ICsgd2lkdGggKiBtdWx0aXBsaWVyO1xuICAgIGlmICh0YXJnZXRTY3JvbGwgPCAwKSB7XG4gICAgICB0YXJnZXRTY3JvbGwgPSAwO1xuICAgIH1cbiAgICBpZiAodGFyZ2V0U2Nyb2xsID4gd2lkdGhTY3JvbGwgLSB3aWR0aCkge1xuICAgICAgdGFyZ2V0U2Nyb2xsID0gd2lkdGhTY3JvbGwgLSB3aWR0aDtcbiAgICB9XG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGFyZ2V0U2Nyb2xsO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpYmUoKSB7XG4gICAgbGV0IHVubGlzdGVuO1xuICAgIG1lcmdlKFxuICAgICAgdGhpcy50YWJzQ2hhbmdlcyQsXG4gICAgICBmcm9tRXZlbnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpLFxuICAgICAgZnJvbUV2ZW50UGF0dGVybihcbiAgICAgICAgKGhhbmRsZXI6IGFueSkgPT4ge1xuICAgICAgICAgIHVubGlzdGVuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCBoYW5kbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4gdW5saXN0ZW4oKVxuICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyNTApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlU2Nyb2xsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTY3JvbGwoKSB7XG4gICAgY29uc3QgeyB3aWR0aFNjcm9sbCwgd2lkdGgsIHNjcm9sbExlZnQgfSA9IHRoaXMuZ2V0RGltZW5zaW9ucygpO1xuICAgIHRoaXMuc2hvd0xlZnQgPSAhIXNjcm9sbExlZnQ7XG4gICAgdGhpcy5zaG93UmlnaHQgPSB3aWR0aFNjcm9sbCA+IHdpZHRoICsgc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGltZW5zaW9ucygpIHtcbiAgICBjb25zdCBlbFRhYnMgPSB0aGlzLnRhYnNDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgd2lkdGhTY3JvbGwgPSBlbFRhYnMuc2Nyb2xsV2lkdGg7XG4gICAgY29uc3Qgd2lkdGggPSBlbC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gZWwuc2Nyb2xsTGVmdDtcbiAgICByZXR1cm4geyB3aWR0aFNjcm9sbCwgd2lkdGgsIHNjcm9sbExlZnQgfTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInRhYkNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgJ2hpZGRlbi14cyc6ICFvdXRsZXROYW1lIH1cIlxuICAjY29udGFpbmVyXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cInRhYnMtc2xpZGVyIHRhYnMtc2xpZGVyLWxlZnRcIlxuICAgIHRpdGxlPVwie3sgJ1Njcm9sbCB0byB0aGUgbGVmdCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgICNsZWZ0XG4gICAgKm5nSWY9XCJzaG93TGVmdCB8fCBzaG93UmlnaHRcIlxuICAgIFtkaXNhYmxlZF09XCIhc2hvd0xlZnRcIlxuICAgIChjbGljayk9XCJzY3JvbGwoJ2xlZnQnKVwiXG4gID5cbiAgICA8aSBbYzh5SWNvbl09XCInY2hldnJvbi1sZWZ0J1wiPjwvaT5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cInRhYnMtc2xpZGVyIHRhYnMtc2xpZGVyLXJpZ2h0XCJcbiAgICB0aXRsZT1cInt7ICdTY3JvbGwgdG8gdGhlIHJpZ2h0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgI3JpZ2h0XG4gICAgKm5nSWY9XCJzaG93UmlnaHQgfHwgc2hvd0xlZnRcIlxuICAgIFtkaXNhYmxlZF09XCIhc2hvd1JpZ2h0XCJcbiAgICAoY2xpY2spPVwic2Nyb2xsKCdyaWdodCcpXCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cIidjaGV2cm9uLXJpZ2h0J1wiPjwvaT5cbiAgPC9idXR0b24+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3V0bGV0TmFtZVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibmF2IG5hdi10YWJzIG5hdi10YWJzYzh5XCJcbiAgICAgIHJvbGU9XCJsaXN0XCJcbiAgICAgICN0YWJzQ29udGFpbmVyXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHJsYT8uaXNBY3RpdmUgfVwiXG4gICAgICAgICAgKm5nSWY9XCIhdGFiLmNvbXBvbmVudCAmJiAhdGFiLmhpZGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInRhYi5wYXRoXCJcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmVcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cIidwcmVzZXJ2ZSdcIlxuICAgICAgICAgICAgI3JsYT1cInJvdXRlckxpbmtBY3RpdmVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1yLTI0JzogIXRhYi50ZW1wbGF0ZSAmJiB0YWI/LmJhZGdlIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRhYi5vblNlbGVjdD8uZW1pdCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBbYzh5SWNvbl09XCJ0YWI/Lmljb25cIlxuICAgICAgICAgICAgICAqbmdJZj1cIiF0YWIudGVtcGxhdGUgJiYgdGFiPy5pY29uXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICB0aXRsZT1cInt7IHRhYj8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAqbmdJZj1cIiF0YWIudGVtcGxhdGUgJiYgIXRhYi5jb21wb25lbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB0YWI/LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImRhc2hib2FyZC10ZW1wbGF0ZS1tYXJrZXJcIlxuICAgICAgICAgICAgICB0b29sdGlwPVwie3sgdGFiPy50b29sdGlwVGV4dCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCIzMDBcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiF0YWIudGVtcGxhdGUgJiYgdGFiPy5iYWRnZVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLnRlbXBsYXRlOyBpbmplY3RvcjogdGFiLmluamVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInRhYi5jb21wb25lbnQ7IGluamVjdG9yOiB0YWIuaW5qZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb21wb25lbnQtdGFicyBuYXYgbmF2LXRhYnMgbmF2LXRhYnNjOHlcIlxuICAgICpuZ0lmPVwib3V0bGV0TmFtZVwiXG4gICAgI3RhYnNDb250YWluZXJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyB0cmFja0J5OiB0cmFja0J5UGF0aFwiPlxuICAgICAgPGRpdlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdGFiLmlzQWN0aXZlIH1cIlxuICAgICAgICBbcm91dGVyTGlua109XCJ0YWIucGF0aFwiXG4gICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cInRhYi5wYXRoID8gJ2FjdGl2ZScgOiAnJ1wiXG4gICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cIidwcmVzZXJ2ZSdcIlxuICAgICAgPlxuICAgICAgICA8YVxuICAgICAgICAgIGNsYXNzPVwicG9pbnRlclwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyB0YWI/LmxhYmVsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAoY2xpY2spPVwidGFiLm9uU2VsZWN0Py5lbWl0KClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgW2M4eUljb25dPVwidGFiPy5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgdGFiPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJ2aXNpYmxlLXhzIG1vYmlsZS10YWJzXCJcbiAgKm5nSWY9XCIhb3V0bGV0TmFtZVwiXG4+XG4gIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgZC1mbGV4IG0tYi0wXCI+XG4gICAgPGxpIGNsYXNzPVwiYzh5LXNlbGVjdC13cmFwcGVyIGZsZXgtZ3Jvd1wiPlxuICAgICAgPHNlbGVjdFxuICAgICAgICAoY2hhbmdlKT1cIm5hdmlnYXRlVG8oJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAjc2VsZWN0XG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCI+XG4gICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgKm5nSWY9XCIhdGFiLmNvbXBvbmVudFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidGFiLnBhdGhcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cImlzQWN0aXZlKHRhYilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHRhYj8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2xpPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLmNvbXBvbmVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKmM4eUNvbXBvbmVudE91dGxldD1cInRhYi5jb21wb25lbnQ7IGVudmlyb25tZW50SW5qZWN0b3I6IHRhYi5pbmplY3RvclwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
48
48
  }], click: [{
49
49
  type: Output
50
50
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS91c2VyL3VzZXItbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFPekQsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFBb0IsV0FBNEIsRUFBVSxhQUE0QjtRQUFsRSxnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVZ0RixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBT2IsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBSXZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxXQUFXO1FBQ1QsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFvQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQW5DVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrU0NWbEMsb3JCQTJCQTs7MkZEakJhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxvQkFBb0I7Z0hBSzlCLElBQUk7c0JBREgsS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdvQyxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR3hDLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJNZW51SXRlbSB9IGZyb20gJy4vdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyTWVudVNlcnZpY2UgfSBmcm9tICcuL3VzZXItbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdXNlci1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNZW51SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIFVzZXJNZW51SXRlbSB7XG4gIEBJbnB1dCgpXG4gIGljb246IHN0cmluZztcbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KClcbiAgbGluazogc3RyaW5nO1xuICBASW5wdXQoKVxuICB0YXJnZXQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgcHJpb3JpdHkgPSAwO1xuICBASW5wdXQoKVxuICBkYXRhQ3k6IHN0cmluZztcbiAgb3BlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRlbXBsYXRlOiBhbnk7XG5cbiAgQE91dHB1dCgpXG4gIGNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxVc2VyTWVudUl0ZW0+KCk7XG4gIHByaXZhdGUgdmlld0luaXRUaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJNZW51U2VydmljZSwgcHJpdmF0ZSBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5vcGVuJCA9IHRoaXMuaGVhZGVyU2VydmljZS5yaWdodERyYXdlck9wZW4kO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudmlld0luaXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnVzZXJTZXJ2aWNlLmFkZCh0aGlzIGFzIFVzZXJNZW51SXRlbSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudmlld0luaXRUaW1lb3V0KTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlbW92ZSh0aGlzIGFzIFVzZXJNZW51SXRlbSk7XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xpY2suZW1pdCh0aGlzKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGxpPlxuICAgIDxhXG4gICAgICBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2xpbmtcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwiKG9wZW4kIHwgYXN5bmMpID8gJzAnIDogJy0xJ1wiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICAgIFthdHRyLmRhdGEtY3ldPVwiZGF0YUN5XCJcbiAgICAgICpuZ0lmPVwibGlua1wiXG4gICAgICBbYXR0ci5ocmVmXT1cImxpbmtcIlxuICAgICAgW2F0dHIudGFyZ2V0XT1cInRhcmdldFwiXG4gICAgPlxuICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2E+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19saW5rXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cIihvcGVuJCB8IGFzeW5jKSA/ICcwJyA6ICctMSdcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdJZj1cIiFsaW5rXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgW2F0dHIuZGF0YS1jeV09XCJkYXRhQ3lcIlxuICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS91c2VyL3VzZXItbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFRekQsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFDVSxXQUE0QixFQUM1QixhQUE0QjtRQUQ1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFadEMsYUFBUSxHQUFHLENBQUMsQ0FBQztRQU9iLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQU92QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFvQixDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsV0FBVztRQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBb0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs4R0F0Q1UscUJBQXFCO2tHQUFyQixxQkFBcUIsK1NDWGxDLG9yQkEyQkE7OzJGRGhCYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usb0JBQW9CO2dIQUs5QixJQUFJO3NCQURILEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHb0MsUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUd4QyxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyTWVudUl0ZW0gfSBmcm9tICcuL3VzZXIubW9kZWwnO1xuaW1wb3J0IHsgVXNlck1lbnVTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBIZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2ljb24tc2VsZWN0b3IvaWNvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdXNlci1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNZW51SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIFVzZXJNZW51SXRlbSB7XG4gIEBJbnB1dCgpXG4gIGljb246IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnM7XG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGxpbms6IHN0cmluZztcbiAgQElucHV0KClcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHByaW9yaXR5ID0gMDtcbiAgQElucHV0KClcbiAgZGF0YUN5OiBzdHJpbmc7XG4gIG9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSB0ZW1wbGF0ZTogYW55O1xuXG4gIEBPdXRwdXQoKVxuICBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VXNlck1lbnVJdGVtPigpO1xuICBwcml2YXRlIHZpZXdJbml0VGltZW91dDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyTWVudVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMub3BlbiQgPSB0aGlzLmhlYWRlclNlcnZpY2UucmlnaHREcmF3ZXJPcGVuJDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnZpZXdJbml0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy51c2VyU2VydmljZS5hZGQodGhpcyBhcyBVc2VyTWVudUl0ZW0pKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnZpZXdJbml0VGltZW91dCk7XG4gICAgdGhpcy51c2VyU2VydmljZS5yZW1vdmUodGhpcyBhcyBVc2VyTWVudUl0ZW0pO1xuICB9XG5cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLmNsaWNrLmVtaXQodGhpcyk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxsaT5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19saW5rXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cIihvcGVuJCB8IGFzeW5jKSA/ICcwJyA6ICctMSdcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICBbYXR0ci5kYXRhLWN5XT1cImRhdGFDeVwiXG4gICAgICAqbmdJZj1cImxpbmtcIlxuICAgICAgW2F0dHIuaHJlZl09XCJsaW5rXCJcbiAgICAgIFthdHRyLnRhcmdldF09XCJ0YXJnZXRcIlxuICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9hPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9fbGlua1wiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCIob3BlbiQgfCBhc3luYykgPyAnMCcgOiAnLTEnXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCIhbGlua1wiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICAgIFthdHRyLmRhdGEtY3ldPVwiZGF0YUN5XCJcbiAgICA+XG4gICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvYnV0dG9uPlxuICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJNZW51SXRlbSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB0ZW1wbGF0ZT86IGFueTtcbiAgaWNvbj86IHN0cmluZztcbiAgcHJpb3JpdHk6IG51bWJlcjtcbiAgbGluaz86IHN0cmluZztcbiAgdGFyZ2V0Pzogc3RyaW5nO1xuICBjbGljazogYW55O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyTWVudUl0ZW0ge1xuICBsYWJlbD86IHN0cmluZztcbiAgdGVtcGxhdGU/OiBhbnk7XG4gIGljb24/OiBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zO1xuICBwcmlvcml0eTogbnVtYmVyO1xuICBsaW5rPzogc3RyaW5nO1xuICB0YXJnZXQ/OiBzdHJpbmc7XG4gIGNsaWNrOiBhbnk7XG59XG4iXX0=
@@ -31,4 +31,4 @@ export const HOOK_WIZARD = new InjectionToken('HOOK_WIZARD');
31
31
  export function hookWizard(wizard, options) {
32
32
  return hookGeneric(wizard, HOOK_WIZARD, options);
33
33
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS93aXphcmQvd2l6YXJkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsY0FBYyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBR0wsV0FBVyxFQUVaLE1BQU0sMkJBQTJCLENBQUM7QUFFbkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFvQixhQUFhLENBQUMsQ0FBQztBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQ3hCLE1BQW9DLEVBQ3BDLE9BQXFDO0lBRXJDLE9BQU8sV0FBVyxDQUFjLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFeHRlbnNpb25GYWN0b3J5LFxuICBHZW5lcmljSG9va1R5cGUsXG4gIGhvb2tHZW5lcmljLFxuICBHZW5lcmljSG9va09wdGlvbnNcbn0gZnJvbSAnLi4vY29tbW9uL2V4dGVuc2lvbi1ob29rcyc7XG5cbi8qKlxuICogQSBob29rIHRvIGFkZCB3aXphcmQgZW50cmllcy5cbiAqIEBkZXByZWNhdGVkIENvbnNpZGVyIHVzaW5nIHRoZSBgaG9va1dpemFyZGAgZnVuY3Rpb24gaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IEhPT0tfV0laQVJEID0gbmV3IEluamVjdGlvblRva2VuPFdpemFyZEV4dGVuc2lvbltdPignSE9PS19XSVpBUkQnKTtcblxuLyoqXG4gKiBBIGhvb2sgdG8gYWRkIHdpemFyZCBlbnRyaWVzLlxuICpcbiAqIFlvdSBjYW4gZWl0aGVyIHByb3ZpZGUgYSBzaW5nbGUgYFdpemFyZEVudHJ5YCBhcyBwYXJhbWV0ZXI6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgaG9va1dpemFyZCguLi4pXG4gKiBgYGBcbiAqXG4gKiBPciBhbiBhcnJheSB0byBkaXJlY3RseSByZWdpc3RlciBtdWx0aXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBob29rV2l6YXJkKFsuLi5dKVxuICogYGBgXG4gKlxuICogT3IgeW91IHByb3ZpZGUgYW4gU2VydmljZSB0aGF0IGltcGxlbWVudHMgYEV4dGVuc2lvbkZhY3Rvcnk8V2l6YXJkRW50cnk+YFxuICogYGBgdHlwZXNjcmlwdFxuICogIGV4cG9ydCBjbGFzcyBNeVdpemFyZEZhY3RvcnkgaW1wbGVtZW50cyBFeHRlbnNpb25GYWN0b3J5PFdpemFyZEVudHJ5PiB7Li4ufVxuICogIC4uLlxuICogIGhvb2tXaXphcmQoTXlXaXphcmRGYWN0b3J5KVxuICogYGBgXG4gKiBBIHR5cGVkIGFsdGVybmF0aXZlIHRvIGBIT09LX1dJWkFSRGAuXG4gKiBAcGFyYW0gd2l6YXJkIFRoZSBgV2l6YXJkRW50cnlgJ3Mgb3IgYEV4dGVuc2lvbkZhY3RvcnlgIHRvIGJlIHByb3ZpZGVkLlxuICogQHJldHVybnMgQW4gYFByb3ZpZGVyYCB0byBiZSBwcm92aWRlZCBpbiB5b3VyIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvb2tXaXphcmQoXG4gIHdpemFyZDogR2VuZXJpY0hvb2tUeXBlPFdpemFyZEVudHJ5PixcbiAgb3B0aW9ucz86IFBhcnRpYWw8R2VuZXJpY0hvb2tPcHRpb25zPlxuKSB7XG4gIHJldHVybiBob29rR2VuZXJpYzxXaXphcmRFbnRyeT4od2l6YXJkLCBIT09LX1dJWkFSRCwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l6YXJkPFQgPSBhbnk+IHtcbiAgLyoqXG4gICAqIFRoZSBpZCBwYXJhbWV0ZXIgaWRlbnRpZmllcyB0aGUgcGFydGljdWxhciB3aXphcmQgYW5kIGNhbiBiZSB1c2VkIHRvIHJlZmVyIHRvIGl0IHdoZW4gaG9va2luZyB3aXphcmQgZW50cmllcy5cbiAgICogRXhhbXBsZTogXCJ3aXphcmRJZFwiLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFdpemFyZCBjb25maWd1cmF0aW9uIG9iamVjdC4gKi9cbiAgd2l6YXJkQ29uZmlnPzogV2l6YXJkQ29uZmlnO1xuICAvKiogQSBzdGF0ZSB0aGF0IHdpbGwgYmUgYXNzaWduZWQgdG8gdGhlIGFjdHVhbCBjb21wb25lbnQgY29udGFpbmVkIGJ5IHRoZSB3aXphcmQuICovXG4gIGNvbXBvbmVudEluaXRpYWxTdGF0ZT86IFBhcnRpYWw8VD47XG4gIC8qKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHdpemFyZCBlbnRyeSBpcyBzZWxlY3RlZC4gKi9cbiAgb25TZWxlY3Q/OiBFdmVudEVtaXR0ZXI8V2l6YXJkRW50cnk+O1xuICAvKiogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSB3aXphcmQgaXMgY2xvc2VkLiAqL1xuICBvbkNsb3NlPzogRXZlbnRFbWl0dGVyPGFueT47XG4gIC8qKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHdpemFyZCBpcyByZXNldC4gKi9cbiAgb25SZXNldD86IEV2ZW50RW1pdHRlcjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpemFyZENvbmZpZyB7XG4gIC8qKiBUZXh0IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgd2l6YXJkICAqL1xuICBoZWFkZXJUZXh0Pzogc3RyaW5nO1xuICAvKiogSWNvbiB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgb2YgdGhlIHdpemFyZCAgKi9cbiAgaGVhZGVySWNvbj86IHN0cmluZztcbiAgLyoqIFRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3aXphcmQgYm9keSBzZWN0aW9uICAqL1xuICBib2R5SGVhZGVyVGV4dD86IHN0cmluZztcbiAgLyoqIEljb24gdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3aXphcmQgYm9keSBzZWN0aW9uICAqL1xuICBib2R5SGVhZGVySWNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBpdGVtIGluIHRoZSB3aXphcmQuXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgZW50cnkgZGlzcGxheWVkIGluIHRoZSBmaXJzdCBzdGVwIG9mIHRoZSB3aXphcmQgYXMgd2VsbCBhcyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgc2Vjb25kIHN0ZXAgYW5kIHRoZWlyIHdheSBvZiBpbnRlcmFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXaXphcmRFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiBhIHdpemFyZCB0byB3aGljaCB0aGUgZW50cnkgd2lsbCBiZSBob29rZWQuXG4gICAqIEV4YW1wbGU6IFwid2l6YXJkSWRcIi5cbiAgICovXG4gIHdpemFyZElkOiBzdHJpbmc7XG4gIC8qKiBUaGUgbmFtZSB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB3aXphcmQgbWVudSAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIHBhdGggd2hlcmUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgd2hlbiB0aGlzIGVudHJ5IGlzIHNlbGVjdGVkIGluIHRoZSB3aXphcmQncyBtZW51LiBUYWtlcyBwcmVjZWRlbmNlIG92ZXIgYGNvbXBvbmVudGAgcHJvcGVydHkuICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBUaGUgY29tcG9uZW50IHRoYXQgd2lsbCBiZSByZW5kZXJlZCB3aGVuIHRoaXMgZW50cnkgaXMgc2VsZWN0ZWQgaW4gdGhlIHdpemFyZCdzIG1lbnUuIElmIGBwYXRoYCBpcyBwcm92aWRlZCwgdGhlIGBjb21wb25lbnRgIHdpbGwgYmUgaWdub3JlZC4gKi9cbiAgY29tcG9uZW50PzogVHlwZTxhbnk+O1xuICAvKiogVGhlIGluamVjdG9yIHRvIHVzZS4gSWYgbm90IHNldCwgZGVmYXVsdCBpbmplY3RvciB3aWxsIGJlIHVzZWQuICovXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG4gIC8qKiBUaGUgaWNvbiB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIHdpemFyZCBtZW51IG5leHQgdG8gdGhlIGl0ZW0uICovXG4gIGM4eUljb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFdpemFyZEV4dGVuc2lvbiA9IFdpemFyZEVudHJ5IHwgV2l6YXJkRW50cnlbXSB8IEV4dGVuc2lvbkZhY3Rvcnk8V2l6YXJkRW50cnk+O1xuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS93aXphcmQvd2l6YXJkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsY0FBYyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBR0wsV0FBVyxFQUVaLE1BQU0sMkJBQTJCLENBQUM7QUFHbkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFvQixhQUFhLENBQUMsQ0FBQztBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQ3hCLE1BQW9DLEVBQ3BDLE9BQXFDO0lBRXJDLE9BQU8sV0FBVyxDQUFjLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFeHRlbnNpb25GYWN0b3J5LFxuICBHZW5lcmljSG9va1R5cGUsXG4gIGhvb2tHZW5lcmljLFxuICBHZW5lcmljSG9va09wdGlvbnNcbn0gZnJvbSAnLi4vY29tbW9uL2V4dGVuc2lvbi1ob29rcyc7XG5pbXBvcnQgeyBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcblxuLyoqXG4gKiBBIGhvb2sgdG8gYWRkIHdpemFyZCBlbnRyaWVzLlxuICogQGRlcHJlY2F0ZWQgQ29uc2lkZXIgdXNpbmcgdGhlIGBob29rV2l6YXJkYCBmdW5jdGlvbiBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgSE9PS19XSVpBUkQgPSBuZXcgSW5qZWN0aW9uVG9rZW48V2l6YXJkRXh0ZW5zaW9uW10+KCdIT09LX1dJWkFSRCcpO1xuXG4vKipcbiAqIEEgaG9vayB0byBhZGQgd2l6YXJkIGVudHJpZXMuXG4gKlxuICogWW91IGNhbiBlaXRoZXIgcHJvdmlkZSBhIHNpbmdsZSBgV2l6YXJkRW50cnlgIGFzIHBhcmFtZXRlcjpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICBob29rV2l6YXJkKC4uLilcbiAqIGBgYFxuICpcbiAqIE9yIGFuIGFycmF5IHRvIGRpcmVjdGx5IHJlZ2lzdGVyIG11bHRpcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogIGhvb2tXaXphcmQoWy4uLl0pXG4gKiBgYGBcbiAqXG4gKiBPciB5b3UgcHJvdmlkZSBhbiBTZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBgRXh0ZW5zaW9uRmFjdG9yeTxXaXphcmRFbnRyeT5gXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgZXhwb3J0IGNsYXNzIE15V2l6YXJkRmFjdG9yeSBpbXBsZW1lbnRzIEV4dGVuc2lvbkZhY3Rvcnk8V2l6YXJkRW50cnk+IHsuLi59XG4gKiAgLi4uXG4gKiAgaG9va1dpemFyZChNeVdpemFyZEZhY3RvcnkpXG4gKiBgYGBcbiAqIEEgdHlwZWQgYWx0ZXJuYXRpdmUgdG8gYEhPT0tfV0laQVJEYC5cbiAqIEBwYXJhbSB3aXphcmQgVGhlIGBXaXphcmRFbnRyeWAncyBvciBgRXh0ZW5zaW9uRmFjdG9yeWAgdG8gYmUgcHJvdmlkZWQuXG4gKiBAcmV0dXJucyBBbiBgUHJvdmlkZXJgIHRvIGJlIHByb3ZpZGVkIGluIHlvdXIgbW9kdWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9va1dpemFyZChcbiAgd2l6YXJkOiBHZW5lcmljSG9va1R5cGU8V2l6YXJkRW50cnk+LFxuICBvcHRpb25zPzogUGFydGlhbDxHZW5lcmljSG9va09wdGlvbnM+XG4pIHtcbiAgcmV0dXJuIGhvb2tHZW5lcmljPFdpemFyZEVudHJ5Pih3aXphcmQsIEhPT0tfV0laQVJELCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXphcmQ8VCA9IGFueT4ge1xuICAvKipcbiAgICogVGhlIGlkIHBhcmFtZXRlciBpZGVudGlmaWVzIHRoZSBwYXJ0aWN1bGFyIHdpemFyZCBhbmQgY2FuIGJlIHVzZWQgdG8gcmVmZXIgdG8gaXQgd2hlbiBob29raW5nIHdpemFyZCBlbnRyaWVzLlxuICAgKiBFeGFtcGxlOiBcIndpemFyZElkXCIuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogV2l6YXJkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiAqL1xuICB3aXphcmRDb25maWc/OiBXaXphcmRDb25maWc7XG4gIC8qKiBBIHN0YXRlIHRoYXQgd2lsbCBiZSBhc3NpZ25lZCB0byB0aGUgYWN0dWFsIGNvbXBvbmVudCBjb250YWluZWQgYnkgdGhlIHdpemFyZC4gKi9cbiAgY29tcG9uZW50SW5pdGlhbFN0YXRlPzogUGFydGlhbDxUPjtcbiAgLyoqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgd2l6YXJkIGVudHJ5IGlzIHNlbGVjdGVkLiAqL1xuICBvblNlbGVjdD86IEV2ZW50RW1pdHRlcjxXaXphcmRFbnRyeT47XG4gIC8qKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHdpemFyZCBpcyBjbG9zZWQuICovXG4gIG9uQ2xvc2U/OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLyoqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgd2l6YXJkIGlzIHJlc2V0LiAqL1xuICBvblJlc2V0PzogRXZlbnRFbWl0dGVyPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l6YXJkQ29uZmlnIHtcbiAgLyoqIFRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3aXphcmQgICovXG4gIGhlYWRlclRleHQ/OiBzdHJpbmc7XG4gIC8qKiBJY29uIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgd2l6YXJkICAqL1xuICBoZWFkZXJJY29uPzogU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucztcbiAgLyoqIFRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3aXphcmQgYm9keSBzZWN0aW9uICAqL1xuICBib2R5SGVhZGVyVGV4dD86IHN0cmluZztcbiAgLyoqIEljb24gdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3aXphcmQgYm9keSBzZWN0aW9uICAqL1xuICBib2R5SGVhZGVySWNvbj86IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnM7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgaXRlbSBpbiB0aGUgd2l6YXJkLlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgdGhlIGVudHJ5IGRpc3BsYXllZCBpbiB0aGUgZmlyc3Qgc3RlcCBvZiB0aGUgd2l6YXJkIGFzIHdlbGwgYXMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNlY29uZCBzdGVwIGFuZCB0aGVpciB3YXkgb2YgaW50ZXJhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2l6YXJkRW50cnkge1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgYSB3aXphcmQgdG8gd2hpY2ggdGhlIGVudHJ5IHdpbGwgYmUgaG9va2VkLlxuICAgKiBFeGFtcGxlOiBcIndpemFyZElkXCIuXG4gICAqL1xuICB3aXphcmRJZDogc3RyaW5nO1xuICAvKiogVGhlIG5hbWUgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgd2l6YXJkIG1lbnUgICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBwYXRoIHdoZXJlIHVzZXIgd2lsbCBiZSByZWRpcmVjdGVkIHdoZW4gdGhpcyBlbnRyeSBpcyBzZWxlY3RlZCBpbiB0aGUgd2l6YXJkJ3MgbWVudS4gVGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBjb21wb25lbnRgIHByb3BlcnR5LiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogVGhlIGNvbXBvbmVudCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgd2hlbiB0aGlzIGVudHJ5IGlzIHNlbGVjdGVkIGluIHRoZSB3aXphcmQncyBtZW51LiBJZiBgcGF0aGAgaXMgcHJvdmlkZWQsIHRoZSBgY29tcG9uZW50YCB3aWxsIGJlIGlnbm9yZWQuICovXG4gIGNvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgLyoqIFRoZSBpbmplY3RvciB0byB1c2UuIElmIG5vdCBzZXQsIGRlZmF1bHQgaW5qZWN0b3Igd2lsbCBiZSB1c2VkLiAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuICAvKiogVGhlIGljb24gdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSB3aXphcmQgbWVudSBuZXh0IHRvIHRoZSBpdGVtLiAqL1xuICBjOHlJY29uPzogU3VwcG9ydGVkSWNvbnNTdWdnZXN0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgV2l6YXJkRXh0ZW5zaW9uID0gV2l6YXJkRW50cnkgfCBXaXphcmRFbnRyeVtdIHwgRXh0ZW5zaW9uRmFjdG9yeTxXaXphcmRFbnRyeT47XG4iXX0=
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
43
43
  type: Component,
44
44
  args: [{ standalone: true, imports: [CommonModule, I18nModule, DeviceStatusModule], selector: 'c8y-asset-type-cell-renderer', template: "<device-status\n class=\"m-l-8\"\n [mo]=\"context.item\"\n *ngIf=\"isDevice\"\n></device-status>\n<i\n class=\"m-l-8 c8y-icon-duocolor\"\n [c8yIcon]=\"groupIcon | async\"\n title=\"{{ iconTitle | translate }}\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n" }]
45
45
  }], ctorParameters: () => [{ type: i1.CellRendererContext }, { type: i2.AssetNodeService }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGEtZ3JpZC1jb2x1bW5zL2Fzc2V0LXR5cGUvYXNzZXQtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGEtZ3JpZC1jb2x1bW5zL2Fzc2V0LXR5cGUvYXNzZXQtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsT0FBTyxFQUNQLFlBQVksRUFDWixrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFReEUsTUFBTSxPQUFPLDhCQUE4QjtJQU16QyxZQUNTLE9BQTRCLEVBQ3pCLGdCQUFrQztRQURyQyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUN6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQzNDLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQVk7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUVELFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsS0FBSyxpQkFBaUI7Z0JBQ3BCLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hDLEtBQUssMkJBQTJCO2dCQUM5QixPQUFPLHVCQUF1QixDQUFDO1lBQ2pDLEtBQUssa0JBQWtCO2dCQUNyQixPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0I7Z0JBQ0UsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7OEdBdENVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHdGQ2hCM0Msd1FBV0EsMkNERVksWUFBWSxrVkFBRSxVQUFVLDhCQUFFLGtCQUFrQjs7MkZBRzNDLDhCQUE4QjtrQkFOMUMsU0FBUztpQ0FFSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDLFlBQzdDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDZWxsUmVuZGVyZXJDb250ZXh0LFxuICBJMThuTW9kdWxlLFxuICBnZXR0ZXh0LFxuICBDb21tb25Nb2R1bGUsXG4gIERldmljZVN0YXR1c01vZHVsZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFzc2V0Tm9kZVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Fzc2V0cy1uYXZpZ2F0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXR5cGUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEkxOG5Nb2R1bGUsIERldmljZVN0YXR1c01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYzh5LWFzc2V0LXR5cGUtY2VsbC1yZW5kZXJlcidcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRUeXBlQ2VsbFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JvdXBJY29uOiBQcm9taXNlPHN0cmluZz47XG4gIGlzQW55R3JvdXA6IGJvb2xlYW47XG4gIGlzRGV2aWNlOiBib29sZWFuO1xuICBpc0Fzc2V0OiBib29sZWFuO1xuICBpY29uVGl0bGU6IHN0cmluZztcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRleHQ6IENlbGxSZW5kZXJlckNvbnRleHQsXG4gICAgcHJvdGVjdGVkIGFzc2V0Tm9kZVNlcnZpY2U6IEFzc2V0Tm9kZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNBbnlHcm91cCA9IHRoaXMuYXNzZXROb2RlU2VydmljZS5pc0FueUdyb3VwKHRoaXMuY29udGV4dC5pdGVtKTtcbiAgICB0aGlzLmdyb3VwSWNvbiA9IHRoaXMuYXNzZXROb2RlU2VydmljZS5pY29uKHRoaXMuY29udGV4dC5pdGVtKTtcbiAgICB0aGlzLmlzRGV2aWNlID0gdGhpcy5hc3NldE5vZGVTZXJ2aWNlLmlzRGV2aWNlKHRoaXMuY29udGV4dC5pdGVtKTtcbiAgICB0aGlzLmlzQXNzZXQgPSB0aGlzLmFzc2V0Tm9kZVNlcnZpY2UuaXNBc3NldCh0aGlzLmNvbnRleHQuaXRlbSk7XG4gICAgdGhpcy5pY29uVGl0bGUgPSB0aGlzLmdldEljb25UaXRsZShhd2FpdCB0aGlzLmdyb3VwSWNvbik7XG4gIH1cblxuICBwcml2YXRlIGdldEljb25UaXRsZShpY29uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQXNzZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuaXRlbS50eXBlO1xuICAgIH1cblxuICAgIHN3aXRjaCAoaWNvbikge1xuICAgICAgY2FzZSAnYzh5LWdyb3VwJzpcbiAgICAgICAgcmV0dXJuIGdldHRleHQoJ0dyb3VwJyk7XG4gICAgICBjYXNlICdjOHktZ3JvdXAtc21hcnQnOlxuICAgICAgICByZXR1cm4gZ2V0dGV4dCgnU21hcnQgZ3JvdXAnKTtcbiAgICAgIGNhc2UgJ2M4eS1ncm91cC1yZW1vdGUtaW5hY3RpdmUnOlxuICAgICAgICByZXR1cm4gJ0luYWN0aXZlIHJlbW90ZSBncm91cCc7XG4gICAgICBjYXNlICdjOHktZ3JvdXAtcmVtb3RlJzpcbiAgICAgICAgcmV0dXJuIGdldHRleHQoJ1JlbW90ZSBncm91cCcpO1xuICAgICAgY2FzZSAnZXhjaGFuZ2UnOlxuICAgICAgICByZXR1cm4gZ2V0dGV4dCgnRGV2aWNlJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZ2V0dGV4dCgnQXNzZXQnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkZXZpY2Utc3RhdHVzXG4gIGNsYXNzPVwibS1sLThcIlxuICBbbW9dPVwiY29udGV4dC5pdGVtXCJcbiAgKm5nSWY9XCJpc0RldmljZVwiXG4+PC9kZXZpY2Utc3RhdHVzPlxuPGlcbiAgY2xhc3M9XCJtLWwtOCBjOHktaWNvbi1kdW9jb2xvclwiXG4gIFtjOHlJY29uXT1cImdyb3VwSWNvbiB8IGFzeW5jXCJcbiAgdGl0bGU9XCJ7eyBpY29uVGl0bGUgfCB0cmFuc2xhdGUgfX1cIlxuICAqbmdJZj1cImlzQW55R3JvdXAgfHwgIWlzRGV2aWNlXCJcbj48L2k+XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGEtZ3JpZC1jb2x1bW5zL2Fzc2V0LXR5cGUvYXNzZXQtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGEtZ3JpZC1jb2x1bW5zL2Fzc2V0LXR5cGUvYXNzZXQtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsT0FBTyxFQUNQLFlBQVksRUFDWixrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFTeEUsTUFBTSxPQUFPLDhCQUE4QjtJQU16QyxZQUNTLE9BQTRCLEVBQ3pCLGdCQUFrQztRQURyQyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUN6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQzNDLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQStCO1FBQ2xELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxXQUFXO2dCQUNkLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLEtBQUssaUJBQWlCO2dCQUNwQixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNoQyxLQUFLLDJCQUEyQjtnQkFDOUIsT0FBTyx1QkFBdUIsQ0FBQztZQUNqQyxLQUFLLGtCQUFrQjtnQkFDckIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakMsS0FBSyxVQUFVO2dCQUNiLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCO2dCQUNFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDOzhHQXRDVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qix3RkNqQjNDLHdRQVdBLDJDREdZLFlBQVksa1ZBQUUsVUFBVSw4QkFBRSxrQkFBa0I7OzJGQUczQyw4QkFBOEI7a0JBTjFDLFNBQVM7aUNBRUksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxZQUM3Qyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2VsbFJlbmRlcmVyQ29udGV4dCxcbiAgSTE4bk1vZHVsZSxcbiAgZ2V0dGV4dCxcbiAgQ29tbW9uTW9kdWxlLFxuICBEZXZpY2VTdGF0dXNNb2R1bGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBc3NldE5vZGVTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hc3NldHMtbmF2aWdhdG9yJztcbmltcG9ydCB7IFN1cHBvcnRlZEljb25zU3VnZ2VzdGlvbnMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2ljb24tc2VsZWN0b3IvaWNvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXR5cGUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEkxOG5Nb2R1bGUsIERldmljZVN0YXR1c01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYzh5LWFzc2V0LXR5cGUtY2VsbC1yZW5kZXJlcidcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRUeXBlQ2VsbFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JvdXBJY29uOiBQcm9taXNlPHN0cmluZz47XG4gIGlzQW55R3JvdXA6IGJvb2xlYW47XG4gIGlzRGV2aWNlOiBib29sZWFuO1xuICBpc0Fzc2V0OiBib29sZWFuO1xuICBpY29uVGl0bGU6IHN0cmluZztcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRleHQ6IENlbGxSZW5kZXJlckNvbnRleHQsXG4gICAgcHJvdGVjdGVkIGFzc2V0Tm9kZVNlcnZpY2U6IEFzc2V0Tm9kZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNBbnlHcm91cCA9IHRoaXMuYXNzZXROb2RlU2VydmljZS5pc0FueUdyb3VwKHRoaXMuY29udGV4dC5pdGVtKTtcbiAgICB0aGlzLmdyb3VwSWNvbiA9IHRoaXMuYXNzZXROb2RlU2VydmljZS5pY29uKHRoaXMuY29udGV4dC5pdGVtKTtcbiAgICB0aGlzLmlzRGV2aWNlID0gdGhpcy5hc3NldE5vZGVTZXJ2aWNlLmlzRGV2aWNlKHRoaXMuY29udGV4dC5pdGVtKTtcbiAgICB0aGlzLmlzQXNzZXQgPSB0aGlzLmFzc2V0Tm9kZVNlcnZpY2UuaXNBc3NldCh0aGlzLmNvbnRleHQuaXRlbSk7XG4gICAgdGhpcy5pY29uVGl0bGUgPSB0aGlzLmdldEljb25UaXRsZShhd2FpdCB0aGlzLmdyb3VwSWNvbik7XG4gIH1cblxuICBwcml2YXRlIGdldEljb25UaXRsZShpY29uOiBTdXBwb3J0ZWRJY29uc1N1Z2dlc3Rpb25zKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0Fzc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lml0ZW0udHlwZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGljb24pIHtcbiAgICAgIGNhc2UgJ2M4eS1ncm91cCc6XG4gICAgICAgIHJldHVybiBnZXR0ZXh0KCdHcm91cCcpO1xuICAgICAgY2FzZSAnYzh5LWdyb3VwLXNtYXJ0JzpcbiAgICAgICAgcmV0dXJuIGdldHRleHQoJ1NtYXJ0IGdyb3VwJyk7XG4gICAgICBjYXNlICdjOHktZ3JvdXAtcmVtb3RlLWluYWN0aXZlJzpcbiAgICAgICAgcmV0dXJuICdJbmFjdGl2ZSByZW1vdGUgZ3JvdXAnO1xuICAgICAgY2FzZSAnYzh5LWdyb3VwLXJlbW90ZSc6XG4gICAgICAgIHJldHVybiBnZXR0ZXh0KCdSZW1vdGUgZ3JvdXAnKTtcbiAgICAgIGNhc2UgJ2V4Y2hhbmdlJzpcbiAgICAgICAgcmV0dXJuIGdldHRleHQoJ0RldmljZScpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGdldHRleHQoJ0Fzc2V0Jyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGV2aWNlLXN0YXR1c1xuICBjbGFzcz1cIm0tbC04XCJcbiAgW21vXT1cImNvbnRleHQuaXRlbVwiXG4gICpuZ0lmPVwiaXNEZXZpY2VcIlxuPjwvZGV2aWNlLXN0YXR1cz5cbjxpXG4gIGNsYXNzPVwibS1sLTggYzh5LWljb24tZHVvY29sb3JcIlxuICBbYzh5SWNvbl09XCJncm91cEljb24gfCBhc3luY1wiXG4gIHRpdGxlPVwie3sgaWNvblRpdGxlIHwgdHJhbnNsYXRlIH19XCJcbiAgKm5nSWY9XCJpc0FueUdyb3VwIHx8ICFpc0RldmljZVwiXG4+PC9pPlxuIl19