@c8y/ngx-components 1021.38.1 → 1021.49.4

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 (529) 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/i18n/translate.service.d.ts.map +1 -1
  49. package/core/list-group/list-item-action.component.d.ts +2 -1
  50. package/core/list-group/list-item-action.component.d.ts.map +1 -1
  51. package/core/list-group/list-item-icon.component.d.ts +2 -1
  52. package/core/list-group/list-item-icon.component.d.ts.map +1 -1
  53. package/core/login/login.service.d.ts.map +1 -1
  54. package/core/navigator/navigator-icon.component.d.ts +1 -1
  55. package/core/navigator/navigator-icon.component.d.ts.map +1 -1
  56. package/core/navigator/navigator-node-data.d.ts +2 -1
  57. package/core/navigator/navigator-node-data.d.ts.map +1 -1
  58. package/core/navigator/navigator-node.component.d.ts.map +1 -1
  59. package/core/navigator/navigator-node.d.ts +2 -1
  60. package/core/navigator/navigator-node.d.ts.map +1 -1
  61. package/core/plugins/plugins.model.d.ts +7 -2
  62. package/core/plugins/plugins.model.d.ts.map +1 -1
  63. package/core/plugins/plugins.service.d.ts.map +1 -1
  64. package/core/properties-list/properties-list.component.d.ts +2 -1
  65. package/core/properties-list/properties-list.component.d.ts.map +1 -1
  66. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts +2 -2
  67. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts.map +1 -1
  68. package/core/router/context-route.service.d.ts.map +1 -1
  69. package/core/router/router.model.d.ts +1 -1
  70. package/core/router/router.model.d.ts.map +1 -1
  71. package/core/router/scoped-context-route.service.d.ts.map +1 -1
  72. package/core/search/search.model.d.ts +2 -1
  73. package/core/search/search.model.d.ts.map +1 -1
  74. package/core/select/select-keyboard.service.d.ts +4 -0
  75. package/core/select/select-keyboard.service.d.ts.map +1 -1
  76. package/core/select/select.component.d.ts +14 -3
  77. package/core/select/select.component.d.ts.map +1 -1
  78. package/core/select-modal/select-modal.component.d.ts +2 -1
  79. package/core/select-modal/select-modal.component.d.ts.map +1 -1
  80. package/core/shared/core.model.d.ts +5 -1
  81. package/core/shared/core.model.d.ts.map +1 -1
  82. package/core/tabs/conditional-tabs-outlet.component.d.ts.map +1 -1
  83. package/core/tabs/tab.component.d.ts +3 -2
  84. package/core/tabs/tab.component.d.ts.map +1 -1
  85. package/core/tabs/tab.model.d.ts +10 -5
  86. package/core/tabs/tab.model.d.ts.map +1 -1
  87. package/core/tabs/tabs-outlet.component.d.ts +7 -4
  88. package/core/tabs/tabs-outlet.component.d.ts.map +1 -1
  89. package/core/user/user-menu-item.component.d.ts +2 -1
  90. package/core/user/user-menu-item.component.d.ts.map +1 -1
  91. package/core/user/user.model.d.ts +2 -1
  92. package/core/user/user.model.d.ts.map +1 -1
  93. package/core/wizard/wizard.model.d.ts +4 -3
  94. package/core/wizard/wizard.model.d.ts.map +1 -1
  95. package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
  96. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +15 -46
  97. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  98. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts +3 -0
  99. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts.map +1 -1
  100. package/datapoint-selector/datapoint-selection.model.d.ts +6 -7
  101. package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
  102. package/datapoints-export-selector/datapoints-export-selector.model.d.ts +2 -1
  103. package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
  104. package/device-grid/columns/icon.cell-renderer.component.d.ts +14 -0
  105. package/device-grid/columns/icon.cell-renderer.component.d.ts.map +1 -0
  106. package/device-grid/columns/index.d.ts +1 -0
  107. package/device-grid/columns/index.d.ts.map +1 -1
  108. package/device-grid/device-grid.component.d.ts.map +1 -1
  109. package/device-grid/device-grid.service.d.ts +0 -2
  110. package/device-grid/device-grid.service.d.ts.map +1 -1
  111. package/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.d.ts.map +1 -0
  112. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts +11 -0
  113. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts.map +1 -0
  114. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +13 -0
  115. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -0
  116. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts +13 -0
  117. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts.map +1 -0
  118. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +57 -0
  119. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -0
  120. package/device-provisioned-certificates/index.d.ts +2 -0
  121. package/device-provisioned-certificates/index.d.ts.map +1 -0
  122. package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
  123. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  124. package/ecosystem/application-plugins/application-plugins.module.d.ts +2 -2
  125. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  126. package/ecosystem/application-plugins/index.d.ts +1 -0
  127. package/ecosystem/application-plugins/index.d.ts.map +1 -1
  128. package/ecosystem/application-plugins/install-plugin.component.d.ts +9 -11
  129. package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
  130. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +12 -0
  131. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -0
  132. package/ecosystem/application-plugins/plugin-list-item.component.d.ts +8 -3
  133. package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
  134. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  135. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  136. package/ecosystem/applications/application-list/application-list.component.d.ts +2 -2
  137. package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
  138. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
  139. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +11 -0
  140. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -0
  141. package/ecosystem/archived-confirm/archived-confirm.module.d.ts +10 -0
  142. package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -0
  143. package/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.d.ts.map +1 -0
  144. package/ecosystem/archived-confirm/index.d.ts +3 -0
  145. package/ecosystem/archived-confirm/index.d.ts.map +1 -0
  146. package/ecosystem/ecosystem.module.d.ts +2 -1
  147. package/ecosystem/ecosystem.module.d.ts.map +1 -1
  148. package/ecosystem/features/feature-list.component.d.ts +2 -2
  149. package/ecosystem/features/feature-list.component.d.ts.map +1 -1
  150. package/ecosystem/microservices/microservice-list.component.d.ts +2 -2
  151. package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
  152. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  153. package/ecosystem/packages/package-details/package-details.component.d.ts +7 -2
  154. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  155. package/ecosystem/packages/package-list/packages-list.component.d.ts +2 -2
  156. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  157. package/ecosystem/shared/add-application.component.d.ts +2 -1
  158. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  159. package/ecosystem/shared/application-card.component.d.ts +4 -0
  160. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  161. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +12 -0
  162. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -0
  163. package/ecosystem/shared/ecosystem.constants.d.ts +4 -0
  164. package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
  165. package/ecosystem/shared/ecosystem.model.d.ts +5 -1
  166. package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
  167. package/ecosystem/shared/ecosystem.service.d.ts +7 -0
  168. package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
  169. package/ecosystem/shared/index.d.ts +1 -0
  170. package/ecosystem/shared/index.d.ts.map +1 -1
  171. package/ecosystem/shared/list-filters/list-filters.component.d.ts +14 -4
  172. package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
  173. package/ecosystem/shared/list-filters/list-filters.model.d.ts +8 -2
  174. package/ecosystem/shared/list-filters/list-filters.model.d.ts.map +1 -1
  175. package/ecosystem/shared/shared-ecosystem.module.d.ts +9 -8
  176. package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
  177. package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
  178. package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
  179. package/esm2022/alarms/alarm-info.component.mjs +1 -1
  180. package/esm2022/api/services.mjs +2 -2
  181. package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
  182. package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
  183. package/esm2022/branding/shared/lazy/branding-form/branding-form.component.mjs +3 -3
  184. package/esm2022/context-dashboard/add-dashboard.component.mjs +4 -2
  185. package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
  186. package/esm2022/context-dashboard/context-dashboard.service.mjs +2 -2
  187. package/esm2022/context-dashboard/dashboard-detail.component.mjs +5 -3
  188. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.model.mjs +1 -1
  189. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.service.mjs +5 -15
  190. package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +2 -2
  191. package/esm2022/context-dashboard/new-dashboard.guard.mjs +1 -1
  192. package/esm2022/core/action/action.component.mjs +1 -1
  193. package/esm2022/core/action/action.model.mjs +1 -1
  194. package/esm2022/core/bootstrap/bootstrap.component.mjs +1 -1
  195. package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +1 -1
  196. package/esm2022/core/breadcrumb/breadcrumb.model.mjs +1 -1
  197. package/esm2022/core/common/ApplicationOptions.mjs +1 -1
  198. package/esm2022/core/common/empty-state/empty-state.component.mjs +1 -1
  199. package/esm2022/core/common/get-group-icon.pipe.mjs +1 -1
  200. package/esm2022/core/common/group.service.mjs +2 -2
  201. package/esm2022/core/common/icon.directive.mjs +1 -1
  202. package/esm2022/core/common/service-registry.model.mjs +1 -1
  203. package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
  204. package/esm2022/core/docs/docs.models.mjs +1 -1
  205. package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
  206. package/esm2022/core/forms/filter-input.component.mjs +22 -7
  207. package/esm2022/core/i18n/translate.service.mjs +7 -5
  208. package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
  209. package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
  210. package/esm2022/core/login/credentials.component.mjs +2 -2
  211. package/esm2022/core/login/login.service.mjs +18 -7
  212. package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
  213. package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
  214. package/esm2022/core/navigator/navigator-node.mjs +1 -1
  215. package/esm2022/core/plugins/plugins.model.mjs +5 -1
  216. package/esm2022/core/plugins/plugins.service.mjs +6 -2
  217. package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
  218. package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
  219. package/esm2022/core/router/context-route.service.mjs +4 -2
  220. package/esm2022/core/router/router.model.mjs +1 -1
  221. package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
  222. package/esm2022/core/search/search.model.mjs +1 -1
  223. package/esm2022/core/select/select-keyboard.service.mjs +7 -3
  224. package/esm2022/core/select/select.component.mjs +36 -8
  225. package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
  226. package/esm2022/core/shared/core.model.mjs +6 -2
  227. package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
  228. package/esm2022/core/tabs/tab.component.mjs +1 -1
  229. package/esm2022/core/tabs/tab.model.mjs +1 -1
  230. package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
  231. package/esm2022/core/user/user-menu-item.component.mjs +1 -1
  232. package/esm2022/core/user/user.model.mjs +1 -1
  233. package/esm2022/core/wizard/wizard.model.mjs +1 -1
  234. package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
  235. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
  236. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
  237. package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
  238. package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
  239. package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
  240. package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
  241. package/esm2022/device-grid/columns/index.mjs +2 -1
  242. package/esm2022/device-grid/device-grid.component.mjs +3 -3
  243. package/esm2022/device-grid/device-grid.service.mjs +7 -25
  244. package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
  245. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
  246. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
  247. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
  248. package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
  249. package/esm2022/device-provisioned-certificates/index.mjs +2 -0
  250. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
  251. package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
  252. package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
  253. package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
  254. package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
  255. package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
  256. package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
  257. package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
  258. package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
  259. package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
  260. package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
  261. package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
  262. package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
  263. package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
  264. package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
  265. package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
  266. package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
  267. package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
  268. package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
  269. package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
  270. package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
  271. package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
  272. package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
  273. package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
  274. package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
  275. package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
  276. package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
  277. package/esm2022/ecosystem/shared/index.mjs +2 -1
  278. package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
  279. package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
  280. package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
  281. package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
  282. package/esm2022/files-repository/files-repository.component.mjs +2 -2
  283. package/esm2022/files-repository/files-repository.service.mjs +5 -16
  284. package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
  285. package/esm2022/icon-selector/icons/index.mjs +1 -1
  286. package/esm2022/operations/shared/status-option.model.mjs +1 -1
  287. package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
  288. package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
  289. package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
  290. package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
  291. package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
  292. package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
  293. package/esm2022/remote-access/configurations/index.mjs +16 -0
  294. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
  295. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
  296. package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
  297. package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
  298. package/esm2022/remote-access/data/index.mjs +3 -0
  299. package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
  300. package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
  301. package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
  302. package/esm2022/remote-access/passthrough/index.mjs +36 -0
  303. package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
  304. package/esm2022/remote-access/shared/index.mjs +3 -0
  305. package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
  306. package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
  307. package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
  308. package/esm2022/remote-access/ssh/index.mjs +73 -0
  309. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
  310. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
  311. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
  312. package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
  313. package/esm2022/remote-access/telnet/index.mjs +43 -0
  314. package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
  315. package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
  316. package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
  317. package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
  318. package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
  319. package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
  320. package/esm2022/remote-access/vnc/index.mjs +73 -0
  321. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
  322. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
  323. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
  324. package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
  325. package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
  326. package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
  327. package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
  328. package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
  329. package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
  330. package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
  331. package/esm2022/repository/shared/repository.model.mjs +1 -1
  332. package/esm2022/repository/shared/repository.service.mjs +3 -3
  333. package/esm2022/services/status-options/status-options.model.mjs +1 -1
  334. package/esm2022/sub-assets/group-info.component.mjs +1 -1
  335. package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
  336. package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
  337. package/esm2022/upgrade/bridge.service.mjs +16 -2
  338. package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
  339. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
  340. package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
  341. package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
  342. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  343. package/fesm2022/c8y-ngx-components-api.mjs +3 -2
  344. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  345. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
  346. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  347. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -2
  348. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  349. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
  350. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  351. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  352. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  353. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
  354. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  355. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  356. package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
  357. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  358. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
  359. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
  360. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
  361. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  362. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
  363. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
  364. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
  365. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  366. package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
  367. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  368. package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
  369. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  370. package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
  371. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  372. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
  373. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  374. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
  375. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  376. package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
  377. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  378. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
  379. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
  380. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
  381. package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
  382. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
  383. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
  384. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
  385. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
  386. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
  387. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
  388. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
  389. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
  390. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
  391. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
  392. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
  393. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
  394. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
  395. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
  396. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
  397. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
  398. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
  399. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
  400. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  401. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
  402. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  403. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  404. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  405. package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
  406. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  407. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  408. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  409. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
  410. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  411. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
  412. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  413. package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
  414. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  415. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  416. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
  417. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  418. package/fesm2022/c8y-ngx-components.mjs +157 -42
  419. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  420. package/files-repository/files-repository.component.d.ts.map +1 -1
  421. package/files-repository/files-repository.service.d.ts +0 -2
  422. package/files-repository/files-repository.service.d.ts.map +1 -1
  423. package/icon-selector/icon-selector.component.d.ts +3 -2
  424. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  425. package/icon-selector/icons/index.d.ts +1 -0
  426. package/icon-selector/icons/index.d.ts.map +1 -1
  427. package/locales/de.po +157 -5
  428. package/locales/es.po +157 -5
  429. package/locales/fr.po +157 -5
  430. package/locales/ja_JP.po +156 -5
  431. package/locales/ko.po +156 -5
  432. package/locales/locales.pot +156 -4
  433. package/locales/nl.po +157 -5
  434. package/locales/pl.po +157 -5
  435. package/locales/pt_BR.po +157 -5
  436. package/locales/zh_CN.po +156 -5
  437. package/locales/zh_TW.po +156 -5
  438. package/operations/shared/status-option.model.d.ts +2 -1
  439. package/operations/shared/status-option.model.d.ts.map +1 -1
  440. package/package.json +1 -1
  441. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
  442. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  443. package/register-device/general/general-device-registration-button.component.d.ts +1 -1
  444. package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
  445. package/register-device/general/general-device-registration.component.d.ts +21 -7
  446. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  447. package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
  448. package/remote-access/configurations/index.d.ts +3 -0
  449. package/remote-access/configurations/index.d.ts.map +1 -0
  450. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
  451. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
  452. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
  453. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
  454. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
  455. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
  456. package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
  457. package/remote-access/data/index.d.ts +3 -0
  458. package/remote-access/data/index.d.ts.map +1 -0
  459. package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
  460. package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
  461. package/remote-access/data/remote-access.service.d.ts +94 -0
  462. package/remote-access/data/remote-access.service.d.ts.map +1 -0
  463. package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
  464. package/remote-access/passthrough/index.d.ts +17 -0
  465. package/remote-access/passthrough/index.d.ts.map +1 -0
  466. package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
  467. package/remote-access/shared/index.d.ts +3 -0
  468. package/remote-access/shared/index.d.ts.map +1 -0
  469. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
  470. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
  471. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
  472. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
  473. package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
  474. package/remote-access/ssh/index.d.ts +22 -0
  475. package/remote-access/ssh/index.d.ts.map +1 -0
  476. 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
  477. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
  478. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
  479. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
  480. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
  481. package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
  482. package/remote-access/telnet/index.d.ts +17 -0
  483. package/remote-access/telnet/index.d.ts.map +1 -0
  484. package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
  485. package/remote-access/terminal-viewer/index.d.ts +2 -0
  486. package/remote-access/terminal-viewer/index.d.ts.map +1 -0
  487. package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
  488. package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
  489. package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
  490. package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
  491. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
  492. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
  493. package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
  494. package/remote-access/vnc/index.d.ts +22 -0
  495. package/remote-access/vnc/index.d.ts.map +1 -0
  496. 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
  497. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
  498. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
  499. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
  500. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
  501. package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
  502. package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
  503. package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
  504. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
  505. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
  506. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
  507. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
  508. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
  509. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
  510. package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
  511. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  512. package/repository/shared/repository.model.d.ts +2 -1
  513. package/repository/shared/repository.model.d.ts.map +1 -1
  514. package/services/status-options/status-options.model.d.ts +2 -1
  515. package/services/status-options/status-options.model.d.ts.map +1 -1
  516. package/sub-assets/group-info.component.d.ts +2 -1
  517. package/sub-assets/group-info.component.d.ts.map +1 -1
  518. package/translation-editor/data/translation-store.service.d.ts.map +1 -1
  519. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
  520. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  521. package/upgrade/bridge.service.d.ts +5 -0
  522. package/upgrade/bridge.service.d.ts.map +1 -1
  523. package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
  524. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
  525. package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
  526. package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
  527. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
  528. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
  529. package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ecosystem/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yFAAyF,CAAC;AACxG,cAAc,qGAAqG,CAAC;AACpH,cAAc,yDAAyD,CAAC;AACxE,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ecosystem/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yFAAyF,CAAC;AACxG,cAAc,qGAAqG,CAAC;AACpH,cAAc,yDAAyD,CAAC;AACxE,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6CAA6C,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { FormBuilder, FormControl } from '@angular/forms';
3
+ import { ActivatedRoute, Router } from '@angular/router';
3
4
  import { AppStateService, FilterInputComponent, GainsightService } from '@c8y/ngx-components';
4
5
  import { TranslateService } from '@ngx-translate/core';
5
- import { PackageFilters, FilterPipe } from './list-filters.model';
6
+ import { FilterableAppOrPlugin, FilterPipe, PackageFilters } from './list-filters.model';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class ListFiltersComponent implements OnInit {
8
9
  private formBuilder;
9
10
  private ui;
10
11
  private translateService;
11
12
  private gainsightService;
13
+ private router;
14
+ private activatedRoute;
12
15
  packageTypes: (keyof PackageFilters['type'])[];
13
16
  packageAvailabilities: (keyof PackageFilters['availability'])[];
14
17
  packageContents: (keyof PackageFilters['content'])[];
@@ -17,12 +20,14 @@ export declare class ListFiltersComponent implements OnInit {
17
20
  formGroup: ReturnType<ListFiltersComponent['initForm']>;
18
21
  chips: [string, FormControl][];
19
22
  predefinedFiltersVisible: boolean;
23
+ customFilters: Map<string, (app: FilterableAppOrPlugin, enabled: boolean) => boolean>;
24
+ currentFilterTerm: string;
20
25
  private currentLang;
21
26
  private data;
22
27
  private currentFiltersState;
23
- private currentFilterTerm;
24
28
  private CURRENT_LOCATION;
25
- constructor(formBuilder: FormBuilder, ui: AppStateService, translateService: TranslateService, gainsightService: GainsightService);
29
+ private destroy$;
30
+ constructor(formBuilder: FormBuilder, ui: AppStateService, translateService: TranslateService, gainsightService: GainsightService, router: Router, activatedRoute: ActivatedRoute);
26
31
  ngOnInit(): void;
27
32
  setFilterTerm(filterTerm: string): void;
28
33
  applyPredefinedFilters(): void;
@@ -30,12 +35,17 @@ export declare class ListFiltersComponent implements OnInit {
30
35
  resetAllFilters(): void;
31
36
  toggleDropdown(isOpen: boolean): void;
32
37
  deselectChip(chip: [string, FormControl]): void;
38
+ ngOnDestroy(): void;
39
+ subscribeToQueryParams(): void;
40
+ private setQueryParams;
41
+ private parseQueryParams;
42
+ private simplifyFilterObject;
33
43
  private initForm;
34
44
  private setPipe;
35
45
  private filterContainString;
36
46
  private appMatchesByPredefinedProperty;
37
47
  private setChips;
38
48
  static ɵfac: i0.ɵɵFactoryDeclaration<ListFiltersComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<ListFiltersComponent, "c8y-list-filters", never, { "packageTypes": { "alias": "packageTypes"; "required": false; }; "packageAvailabilities": { "alias": "packageAvailabilities"; "required": false; }; "packageContents": { "alias": "packageContents"; "required": false; }; }, { "filterPipeChange": "filterPipeChange"; }, never, never, false, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListFiltersComponent, "c8y-list-filters", never, { "packageTypes": { "alias": "packageTypes"; "required": false; }; "packageAvailabilities": { "alias": "packageAvailabilities"; "required": false; }; "packageContents": { "alias": "packageContents"; "required": false; }; }, { "filterPipeChange": "filterPipeChange"; }, never, ["*"], false, never>;
40
50
  }
41
51
  //# sourceMappingURL=list-filters.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-filters.component.d.ts","sourceRoot":"","sources":["../../../../ecosystem/shared/list-filters/list-filters.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,MAAM,EAAqB,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAa,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;;AAIlE,qBAIa,oBAAqB,YAAW,MAAM;IAkB/C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IApBjB,YAAY,EAAE,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IACpD,qBAAqB,EAAE,CAAC,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAM;IACrE,eAAe,EAAE,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAM;IACzD,gBAAgB,2BAAkC;IAC3B,WAAW,EAAE,oBAAoB,CAAC;IAEnE,SAAS,EAAE,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxD,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAM;IACpC,wBAAwB,EAAE,OAAO,CAAC;IAElC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gBAAgB,CAAiB;gBAG/B,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,eAAe,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB;IAK5C,QAAQ,IAAI,IAAI;IAShB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAcvC,sBAAsB,IAAI,IAAI;IAgB9B,KAAK,IAAI,IAAI;IAab,eAAe;IAKf,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMrC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IAK/C,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,8BAA8B;IAiBtC,OAAO,CAAC,QAAQ;yCArKL,oBAAoB;2CAApB,oBAAoB;CA+KhC"}
1
+ {"version":3,"file":"list-filters.component.d.ts","sourceRoot":"","sources":["../../../../ecosystem/shared/list-filters/list-filters.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,MAAM,EAAqB,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAa,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAU,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;;AAEzF,qBAIa,oBAAqB,YAAW,MAAM;IAoB/C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAxBf,YAAY,EAAE,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IACpD,qBAAqB,EAAE,CAAC,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAM;IACrE,eAAe,EAAE,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAM;IACzD,gBAAgB,2BAAkC;IAC3B,WAAW,EAAE,oBAAoB,CAAC;IAEnE,SAAS,EAAE,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxD,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAM;IACpC,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,oBAAyB,qBAAqB,WAAW,OAAO,KAAK,OAAO,EAAI;IAC7F,iBAAiB,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAuB;gBAG7B,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,eAAe,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc;IAKxC,QAAQ,IAAI,IAAI;IAUhB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAcvC,sBAAsB,IAAI,IAAI;IAgB9B,KAAK,IAAI,IAAI;IAab,eAAe;IAKf,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMrC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IAK/C,WAAW,IAAI,IAAI;IAKnB,sBAAsB;IAWtB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,OAAO;IAgCf,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,8BAA8B;IAwBtC,OAAO,CAAC,QAAQ;yCA1OL,oBAAoB;2CAApB,oBAAoB;CAoPhC"}
@@ -1,8 +1,11 @@
1
- import { PackageType } from '@c8y/ngx-components';
1
+ import { ApplicationPlugin, PackageType } from '@c8y/ngx-components';
2
2
  import { Observable, UnaryFunction } from 'rxjs';
3
3
  import { IApplication } from '@c8y/client';
4
4
  import { APP_STATE, ApplicationState } from '../ecosystem.constants';
5
- export type FilterPipe = UnaryFunction<Observable<IApplication[]>, Observable<IApplication[]>>;
5
+ export type FilterableAppOrPlugin = (IApplication | ApplicationPlugin) & {
6
+ filterProps?: AppFilterProps;
7
+ };
8
+ export type FilterPipe = UnaryFunction<Observable<FilterableAppOrPlugin[]>, Observable<FilterableAppOrPlugin[]>>;
6
9
  export type PackageFilters = {
7
10
  type: {
8
11
  [PackageType.OFFICIAL]?: boolean;
@@ -18,6 +21,9 @@ export type PackageFilters = {
18
21
  [APP_STATE.PACKAGE_BLUEPRINT.label]?: boolean;
19
22
  [APP_STATE.PACKAGE_PLUGIN.label]?: boolean;
20
23
  };
24
+ custom: {
25
+ [key: string]: boolean;
26
+ };
21
27
  };
22
28
  export type AppFilterProps = {
23
29
  type: PackageType;
@@ -1 +1 @@
1
- {"version":3,"file":"list-filters.model.d.ts","sourceRoot":"","sources":["../../../../ecosystem/shared/list-filters/list-filters.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAE/F,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;QACjC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,YAAY,EAAE;QACZ,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACvC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACrC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACrC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;IACF,OAAO,EAAE;QACP,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QAC9C,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KAC5C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,EAG/D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC,EAKhF,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,EAGrE,CAAC"}
1
+ {"version":3,"file":"list-filters.model.d.ts","sourceRoot":"","sources":["../../../../ecosystem/shared/list-filters/list-filters.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,CAAC,YAAY,GAAG,iBAAiB,CAAC,GAAG;IACvE,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,aAAa,CACpC,UAAU,CAAC,qBAAqB,EAAE,CAAC,EACnC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;QACjC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,YAAY,EAAE;QACZ,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACvC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACrC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACrC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;IACF,OAAO,EAAE;QACP,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QAC9C,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KAC5C,CAAC;IACF,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC,EAG/D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC,EAKhF,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,EAGrE,CAAC"}
@@ -9,16 +9,17 @@ import * as i7 from "./duplicate-application/duplicate-application.component";
9
9
  import * as i8 from "./package-version-select/package-version-select.component";
10
10
  import * as i9 from "./translate-package-label.pipe";
11
11
  import * as i10 from "./list-filters/list-filters.component";
12
- import * as i11 from "@c8y/ngx-components";
13
- import * as i12 from "ngx-bootstrap/dropdown";
14
- import * as i13 from "ngx-bootstrap/tooltip";
15
- import * as i14 from "@angular/cdk/a11y";
16
- import * as i15 from "@angular/forms";
17
- import * as i16 from "ngx-bootstrap/popover";
18
- import * as i17 from "@c8y/ngx-components/icon-selector";
12
+ import * as i11 from "./archived-filter/archived-filter.component";
13
+ import * as i12 from "@c8y/ngx-components";
14
+ import * as i13 from "ngx-bootstrap/dropdown";
15
+ import * as i14 from "ngx-bootstrap/tooltip";
16
+ import * as i15 from "@angular/cdk/a11y";
17
+ import * as i16 from "@angular/forms";
18
+ import * as i17 from "ngx-bootstrap/popover";
19
+ import * as i18 from "@c8y/ngx-components/icon-selector";
19
20
  export declare class SharedEcosystemModule {
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<SharedEcosystemModule, never>;
21
- static ɵmod: i0.ɵɵNgModuleDeclaration<SharedEcosystemModule, [typeof i1.AddApplicationComponent, typeof i2.ApplicationPropertiesFormComponent, typeof i3.UploadArchiveComponent, typeof i4.ApplicationCardComponent, typeof i5.DuplicateApplicationListComponent, typeof i6.DuplicateApplicationPropertiesComponent, typeof i7.DuplicateApplicationComponent, typeof i8.PackageVersionSelectComponent, typeof i9.TranslatePackageLabelPipe, typeof i10.ListFiltersComponent], [typeof i11.CoreModule, typeof i12.BsDropdownModule, typeof i13.TooltipModule, typeof i14.A11yModule, typeof i15.FormsModule, typeof i16.PopoverModule, typeof i15.ReactiveFormsModule, typeof i17.IconSelectorModule], [typeof i1.AddApplicationComponent, typeof i2.ApplicationPropertiesFormComponent, typeof i3.UploadArchiveComponent, typeof i4.ApplicationCardComponent, typeof i5.DuplicateApplicationListComponent, typeof i6.DuplicateApplicationPropertiesComponent, typeof i7.DuplicateApplicationComponent, typeof i8.PackageVersionSelectComponent, typeof i9.TranslatePackageLabelPipe, typeof i10.ListFiltersComponent]>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SharedEcosystemModule, [typeof i1.AddApplicationComponent, typeof i2.ApplicationPropertiesFormComponent, typeof i3.UploadArchiveComponent, typeof i4.ApplicationCardComponent, typeof i5.DuplicateApplicationListComponent, typeof i6.DuplicateApplicationPropertiesComponent, typeof i7.DuplicateApplicationComponent, typeof i8.PackageVersionSelectComponent, typeof i9.TranslatePackageLabelPipe, typeof i10.ListFiltersComponent, typeof i11.ArchivedFilterComponent], [typeof i12.CoreModule, typeof i13.BsDropdownModule, typeof i14.TooltipModule, typeof i15.A11yModule, typeof i16.FormsModule, typeof i17.PopoverModule, typeof i16.ReactiveFormsModule, typeof i18.IconSelectorModule], [typeof i1.AddApplicationComponent, typeof i2.ApplicationPropertiesFormComponent, typeof i3.UploadArchiveComponent, typeof i4.ApplicationCardComponent, typeof i5.DuplicateApplicationListComponent, typeof i6.DuplicateApplicationPropertiesComponent, typeof i7.DuplicateApplicationComponent, typeof i8.PackageVersionSelectComponent, typeof i9.TranslatePackageLabelPipe, typeof i10.ListFiltersComponent, typeof i11.ArchivedFilterComponent]>;
22
23
  static ɵinj: i0.ɵɵInjectorDeclaration<SharedEcosystemModule>;
23
24
  }
24
25
  //# sourceMappingURL=shared-ecosystem.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-ecosystem.module.d.ts","sourceRoot":"","sources":["../../../ecosystem/shared/shared-ecosystem.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,qBAkDa,qBAAqB;yCAArB,qBAAqB;0CAArB,qBAAqB;0CAArB,qBAAqB;CAAG"}
1
+ {"version":3,"file":"shared-ecosystem.module.d.ts","sourceRoot":"","sources":["../../../ecosystem/shared/shared-ecosystem.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,qBAoDa,qBAAqB;yCAArB,qBAAqB;0CAArB,qBAAqB;0CAArB,qBAAqB;CAAG"}
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class TranslatePackageLabelPipe implements PipeTransform {
6
6
  private translate;
7
7
  constructor(translate: TranslateService);
8
- transform(rawPackageLabel: PackageType.OFFICIAL | PackageType.COMMUNITY | string): string;
8
+ transform(rawPackageLabel: PackageType.OFFICIAL | PackageType.COMMUNITY | PackageType.ARCHIVED | string): string;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TranslatePackageLabelPipe, never>;
10
10
  static ɵpipe: i0.ɵɵPipeDeclaration<TranslatePackageLabelPipe, "translatePackageLabel", false>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"translate-package-label.pipe.d.ts","sourceRoot":"","sources":["../../../ecosystem/shared/translate-package-label.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;;AAGlD,qBACa,yBAA0B,YAAW,aAAa;IACjD,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAE/C,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM;yCAH9E,yBAAyB;uCAAzB,yBAAyB;CAUrC"}
1
+ {"version":3,"file":"translate-package-label.pipe.d.ts","sourceRoot":"","sources":["../../../ecosystem/shared/translate-package-label.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;;AAGlD,qBACa,yBAA0B,YAAW,aAAa;IACjD,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAE/C,SAAS,CACP,eAAe,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,GAAG,MAAM,GAC5F,MAAM;yCALE,yBAAyB;uCAAzB,yBAAyB;CAYrC"}
@@ -33,7 +33,7 @@ export class AlarmInfoComponent {
33
33
  this.router.navigate(backLink, { queryParamsHandling: 'preserve' });
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmInfoComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ContextRouteService }, { token: i3.AlarmsViewService }], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmInfoComponent, selector: "c8y-alarm-info", ngImport: i0, template: "<ng-container *ngIf=\"!isContextRoute\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<div\n class=\"inner-scroll split-view__detail split-view__detail--selected\"\n *ngIf=\"selectedAlarm$ | async\"\n>\n <div class=\"sticky-top bg-component\">\n <div class=\"card-header gap-16 d-block-xs d-block-sm p-l-24 p-r-24 p-t-16 separator\">\n <button\n class=\"btn btn-clean text-primary visible-sm visible-xs\"\n [title]=\"'Back' | translate\"\n (click)=\"back()\"\n >\n <i c8yIcon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n\n <div class=\"flex-no-shrink a-s-start\"></div>\n <div class=\"flex-grow d-col\">\n <div\n class=\"text-break-word flex-grow text-16\"\n data-cy=\"c8y-alarms-info--title\"\n >\n {{ (selectedAlarm$ | async)?.text | translate }}\n </div>\n </div>\n </div>\n <div class=\"p-relative\">\n <c8y-tabs-outlet\n outletName=\"alarms\"\n orientation=\"horizontal\"\n ></c8y-tabs-outlet>\n </div>\n <div class=\"card-block overflow-visible p-l-24 p-r-24\">\n <c8y-alarm-details [selectedAlarm]=\"selectedAlarm$ | async\"></c8y-alarm-details>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "hasHeader"] }, { kind: "component", type: i5.AlarmDetailsComponent, selector: "c8y-alarm-details", inputs: ["selectedAlarm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmInfoComponent, selector: "c8y-alarm-info", ngImport: i0, template: "<ng-container *ngIf=\"!isContextRoute\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<div\n class=\"inner-scroll split-view__detail split-view__detail--selected\"\n *ngIf=\"selectedAlarm$ | async\"\n>\n <div class=\"sticky-top bg-component\">\n <div class=\"card-header gap-16 d-block-xs d-block-sm p-l-24 p-r-24 p-t-16 separator\">\n <button\n class=\"btn btn-clean text-primary visible-sm visible-xs\"\n [title]=\"'Back' | translate\"\n (click)=\"back()\"\n >\n <i c8yIcon=\"chevron-left\"></i>\n <span>{{ 'Back' | translate }}</span>\n </button>\n\n <div class=\"flex-no-shrink a-s-start\"></div>\n <div class=\"flex-grow d-col\">\n <div\n class=\"text-break-word flex-grow text-16\"\n data-cy=\"c8y-alarms-info--title\"\n >\n {{ (selectedAlarm$ | async)?.text | translate }}\n </div>\n </div>\n </div>\n <div class=\"p-relative\">\n <c8y-tabs-outlet\n outletName=\"alarms\"\n orientation=\"horizontal\"\n ></c8y-tabs-outlet>\n </div>\n <div class=\"card-block overflow-visible p-l-24 p-r-24\">\n <c8y-alarm-details [selectedAlarm]=\"selectedAlarm$ | async\"></c8y-alarm-details>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "openFirstTab", "hasHeader"] }, { kind: "component", type: i5.AlarmDetailsComponent, selector: "c8y-alarm-details", inputs: ["selectedAlarm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmInfoComponent, decorators: [{
39
39
  type: Component,
@@ -1,2 +1,2 @@
1
- export { FetchClient, BasicAuth, CookieAuth, Realtime, EventBinaryService, EventService, InventoryService, MeasurementService, AlarmService, OperationBulkService, OperationService, ApplicationService, UserService, TenantService, SystemOptionsService, TenantOptionsService, TenantSecurityOptionsService, TenantLoginOptionsService, AuditService, InventoryRoleService, InventoryBinaryService, DeviceRegistrationService, DeviceRegistrationBulkService, UserRoleService, UserGroupService, IdentityService, TrustedCertificateService, CrlService, SmartGroupsService, SmartRulesService } from '@c8y/client';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2xCLE1BQU0sYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgRmV0Y2hDbGllbnQsXG4gIEJhc2ljQXV0aCxcbiAgQ29va2llQXV0aCxcbiAgUmVhbHRpbWUsXG4gIEV2ZW50QmluYXJ5U2VydmljZSxcbiAgRXZlbnRTZXJ2aWNlLFxuICBJbnZlbnRvcnlTZXJ2aWNlLFxuICBNZWFzdXJlbWVudFNlcnZpY2UsXG4gIEFsYXJtU2VydmljZSxcbiAgT3BlcmF0aW9uQnVsa1NlcnZpY2UsXG4gIE9wZXJhdGlvblNlcnZpY2UsXG4gIEFwcGxpY2F0aW9uU2VydmljZSxcbiAgVXNlclNlcnZpY2UsXG4gIFRlbmFudFNlcnZpY2UsXG4gIFN5c3RlbU9wdGlvbnNTZXJ2aWNlLFxuICBUZW5hbnRPcHRpb25zU2VydmljZSxcbiAgVGVuYW50U2VjdXJpdHlPcHRpb25zU2VydmljZSxcbiAgVGVuYW50TG9naW5PcHRpb25zU2VydmljZSxcbiAgQXVkaXRTZXJ2aWNlLFxuICBJbnZlbnRvcnlSb2xlU2VydmljZSxcbiAgSW52ZW50b3J5QmluYXJ5U2VydmljZSxcbiAgRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZSxcbiAgRGV2aWNlUmVnaXN0cmF0aW9uQnVsa1NlcnZpY2UsXG4gIFVzZXJSb2xlU2VydmljZSxcbiAgVXNlckdyb3VwU2VydmljZSxcbiAgSWRlbnRpdHlTZXJ2aWNlLFxuICBUcnVzdGVkQ2VydGlmaWNhdGVTZXJ2aWNlLFxuICBDcmxTZXJ2aWNlLFxuICBTbWFydEdyb3Vwc1NlcnZpY2UsXG4gIFNtYXJ0UnVsZXNTZXJ2aWNlXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbiJdfQ==
1
+ export { FetchClient, BasicAuth, CookieAuth, Realtime, EventBinaryService, EventService, InventoryService, MeasurementService, AlarmService, OperationBulkService, OperationService, ApplicationService, UserService, TenantService, SystemOptionsService, TenantOptionsService, TenantSecurityOptionsService, TenantLoginOptionsService, AuditService, InventoryRoleService, InventoryBinaryService, DeviceRegistrationService, DeviceRegistrationBulkService, UserRoleService, UserGroupService, IdentityService, TrustedCertificateService, CrlService, SmartGroupsService, SmartRulesService, FeatureService } from '@c8y/client';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIEZldGNoQ2xpZW50LFxuICBCYXNpY0F1dGgsXG4gIENvb2tpZUF1dGgsXG4gIFJlYWx0aW1lLFxuICBFdmVudEJpbmFyeVNlcnZpY2UsXG4gIEV2ZW50U2VydmljZSxcbiAgSW52ZW50b3J5U2VydmljZSxcbiAgTWVhc3VyZW1lbnRTZXJ2aWNlLFxuICBBbGFybVNlcnZpY2UsXG4gIE9wZXJhdGlvbkJ1bGtTZXJ2aWNlLFxuICBPcGVyYXRpb25TZXJ2aWNlLFxuICBBcHBsaWNhdGlvblNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlLFxuICBUZW5hbnRTZXJ2aWNlLFxuICBTeXN0ZW1PcHRpb25zU2VydmljZSxcbiAgVGVuYW50T3B0aW9uc1NlcnZpY2UsXG4gIFRlbmFudFNlY3VyaXR5T3B0aW9uc1NlcnZpY2UsXG4gIFRlbmFudExvZ2luT3B0aW9uc1NlcnZpY2UsXG4gIEF1ZGl0U2VydmljZSxcbiAgSW52ZW50b3J5Um9sZVNlcnZpY2UsXG4gIEludmVudG9yeUJpbmFyeVNlcnZpY2UsXG4gIERldmljZVJlZ2lzdHJhdGlvblNlcnZpY2UsXG4gIERldmljZVJlZ2lzdHJhdGlvbkJ1bGtTZXJ2aWNlLFxuICBVc2VyUm9sZVNlcnZpY2UsXG4gIFVzZXJHcm91cFNlcnZpY2UsXG4gIElkZW50aXR5U2VydmljZSxcbiAgVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZSxcbiAgQ3JsU2VydmljZSxcbiAgU21hcnRHcm91cHNTZXJ2aWNlLFxuICBTbWFydFJ1bGVzU2VydmljZSxcbiAgRmVhdHVyZVNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuIl19
@@ -82,18 +82,23 @@ export class AccessMappingComponent {
82
82
  inventoryMappings: [],
83
83
  configuration: {
84
84
  mapRolesOnlyForNewUser: false,
85
- manageRolesOnlyFromAccessMapping: false,
86
- mapFromIdToken: true
85
+ manageRolesOnlyFromAccessMapping: false
87
86
  }
88
87
  }
89
88
  });
89
+ const { configuration } = this.templateModel.onNewUser.dynamicMapping;
90
+ const { mapRolesOnlyForNewUser, manageRolesOnlyFromAccessMapping, mapFromIdToken } = configuration;
91
+ configuration.mapFromIdToken =
92
+ mapFromIdToken !== undefined
93
+ ? mapFromIdToken
94
+ : mapRolesOnlyForNewUser === false && manageRolesOnlyFromAccessMapping === false;
90
95
  }
91
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AccessMappingComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: { apps: "apps", groups: "groups", inventoryRoles: "inventoryRoles", templateModel: "templateModel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i5.DynamicAccessMappingComponent, selector: "c8y-sso-dynamic-access-mapping", inputs: ["groups", "apps", "accessMapping", "accessMappingIndex"], outputs: ["onRemoveAccessMapping"] }, { kind: "component", type: i6.InventoryRolesMappingComponent, selector: "c8y-sso-inventory-roles-mapping", inputs: ["inventoryMapping", "inventoryMappingIndex", "inventoryRoles"], outputs: ["onRemoveInventoryMapping"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: { apps: "apps", groups: "groups", inventoryRoles: "inventoryRoles", templateModel: "templateModel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-access-token\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-id-token\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i5.DynamicAccessMappingComponent, selector: "c8y-sso-dynamic-access-mapping", inputs: ["groups", "apps", "accessMapping", "accessMappingIndex"], outputs: ["onRemoveAccessMapping"] }, { kind: "component", type: i6.InventoryRolesMappingComponent, selector: "c8y-sso-inventory-roles-mapping", inputs: ["inventoryMapping", "inventoryMappingIndex", "inventoryRoles"], outputs: ["onRemoveInventoryMapping"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
93
98
  }
94
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AccessMappingComponent, decorators: [{
95
100
  type: Component,
96
- args: [{ selector: 'c8y-sso-access-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
101
+ args: [{ selector: 'c8y-sso-access-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n Access mapping\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-access-token\"\n [checked]=\"!mapFromIdToken\"\n (change)=\"setMapFromIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingSource\"\n data-cy=\"dynamic-access-mapping-from-id-token\"\n [checked]=\"mapFromIdToken\"\n (change)=\"setMapFromIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n [checked]=\"mapRolesOnlyForNewUser\"\n (change)=\"setDynamicMappingConfiguration(true)\"\n />\n <span></span>\n <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, true)\"\n />\n <span></span>\n <span>\n {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n type=\"button\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n <label\n title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"dynamicAccessMappingConfiguration\"\n data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n (change)=\"setDynamicMappingConfiguration(false, false)\"\n />\n <span></span>\n <span>\n {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n </span>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n ></button>\n </label>\n </c8y-form-group>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No access mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <div\n *ngFor=\"\n let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n index as idx\n \"\n >\n <c8y-sso-dynamic-access-mapping\n [accessMapping]=\"accessMapping\"\n (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [accessMappingIndex]=\"idx\"\n ></c8y-sso-dynamic-access-mapping>\n </div>\n <div class=\"p-t-16\">\n <button\n id=\"add-access-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add access mapping' | translate }}\"\n (click)=\"addAccessMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add access mapping' | translate }}\n </button>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Inventory roles mapping' | translate }}\n </legend>\n <c8y-ui-empty-state\n *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n [icon]=\"'list'\"\n [title]=\"'No inventory roles mapping rules defined.' | translate\"\n [subtitle]=\"'Click below to add a new mapping.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n <ng-container\n *ngFor=\"\n let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n index as idx\n \"\n >\n <c8y-sso-inventory-roles-mapping\n [inventoryRoles]=\"inventoryRoles\"\n [inventoryMapping]=\"inventoryMapping\"\n (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n [inventoryMappingIndex]=\"idx\"\n ></c8y-sso-inventory-roles-mapping>\n </ng-container>\n <div class=\"p-t-16\">\n <button\n id=\"add-inventory-mapping-button\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Add inventory roles mapping' | translate }}\"\n (click)=\"addInventoryMapping()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n class=\"m-r-4\"\n ></i>\n {{ 'Add inventory roles mapping' | translate }}\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
97
102
  }], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { apps: [{
98
103
  type: Input
99
104
  }], groups: [{
@@ -103,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
103
108
  }], templateModel: [{
104
109
  type: Input
105
110
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL2FjY2Vzcy1tYXBwaW5nL2FjY2Vzcy1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy9hY2Nlc3MtbWFwcGluZy9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sc0JBQXNCO0lBOEJqQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCdEQsZ0RBQTJDLEdBQUcsT0FBTyxDQUNuRCxtTEFBbUwsQ0FDcEwsQ0FBQztRQUNGLCtDQUEwQyxHQUFHLE9BQU8sQ0FDbEQsa0RBQWtELENBQ25ELENBQUM7UUFFRixpRUFBNEQsR0FBRyxPQUFPLENBQ3BFLDJNQUEyTSxDQUM1TSxDQUFDO1FBQ0YsZ0VBQTJELEdBQUcsT0FBTyxDQUNuRSxnSEFBZ0gsQ0FDakgsQ0FBQztRQUVGLG1EQUE4QyxHQUFHLE9BQU8sQ0FDdEQsMk1BQTJNLENBQzVNLENBQUM7UUFDRixrREFBNkMsR0FBRyxPQUFPLENBQ3JELDhHQUE4RyxDQUMvRyxDQUFDO1FBRUYsOEJBQXlCLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFRCxDQUFDO0lBRTFELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFlBQVksR0FBa0I7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGVBQWUsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUNwRTtZQUNELFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLHFCQUFxQixHQUFxQjtZQUM5QyxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsZUFBZSxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ3BFO1lBQ0Qsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxRQUFRLENBQUMsYUFBNEI7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELHdCQUF3QixDQUFDLGdCQUFrQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELDhCQUE4QixDQUM1QixzQkFBK0IsRUFDL0IsZ0NBQWdDLEdBQUcsS0FBSztRQUV4QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDakYsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdDQUFnQztZQUMvRCxnQ0FBZ0MsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxzQkFBc0IsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxnQ0FBZ0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsZ0NBQWdDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQWM7UUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBWSwyQkFBMkI7UUFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1lBQ3pDLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixhQUFhLEVBQUU7b0JBQ2Isc0JBQXNCLEVBQUUsS0FBSztvQkFDN0IsZ0NBQWdDLEVBQUUsS0FBSztvQkFDdkMsY0FBYyxFQUFFLElBQUk7aUJBQ3JCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhIVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpTUNabkMsMm5QQTRNQSxraEREbE1pQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs7MkZBRXhELHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FGQUcxRCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHB1bGwsIGRlZmF1bHRzRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElJZGVudGlmaWVkLCBJVXNlckdyb3VwIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW52ZW50b3J5TWFwcGluZywgQWNjZXNzTWFwcGluZyB9IGZyb20gJy4uLy4uL3Nzby1jb25maWd1cmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNzby1hY2Nlc3MtbWFwcGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfV1cbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGFwcHM6IElBcHBsaWNhdGlvbltdO1xuICBASW5wdXQoKSBncm91cHM6IElVc2VyR3JvdXBbXTtcbiAgQElucHV0KCkgaW52ZW50b3J5Um9sZXM6IElJZGVudGlmaWVkW107XG4gIEBJbnB1dCgpIHRlbXBsYXRlTW9kZWw7XG5cbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4sIHRoZXNlIG1hcHBpbmdzIHdpbGwgbm90IGJlIGV4ZWN1dGVkLidcbiAgKTtcbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fT1BUSU9OID0gZ2V0dGV4dChcbiAgICAnVXNlIGR5bmFtaWMgYWNjZXNzIG1hcHBpbmcgb25seSBvbiB1c2VyIGNyZWF0aW9uJ1xuICApO1xuXG4gIFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gb25seSB0aGUgcm9sZXMgbGlzdGVkIGluIHRoZSBhY2Nlc3MgbWFwcGluZ3Mgd2lsbCBiZSB1cGRhdGVkLidcbiAgKTtcbiAgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIHVuY2hhbmdlZCdcbiAgKTtcblxuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9UT09MVElQID0gZ2V0dGV4dChcbiAgICAnVGhlIGFjY2VzcyBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgZHVyaW5nIHRoZSBmaXJzdCBsb2dpbi4gVGhlIGFkbWluaXN0cmF0b3IgY2Fubm90IGVkaXQgdGhlIFNTTyB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gYWxsIHRoZSByb2xlcyB3aWxsIGJlIGNsZWFyZWQgYW5kIHRoZSBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgYWdhaW4uJ1xuICApO1xuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIGNsZWFyZWQnXG4gICk7XG5cbiAgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gQWNjZXNzIHRva2VuJyk7XG4gIFJFVFJJVkVfRlJPTV9JRF9UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gSUQgdG9rZW4nKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGVNb2RlbCAmJiB0aGlzLmFwcHMgJiYgdGhpcy5ncm91cHMpIHtcbiAgICAgIHRoaXMuc2V0RHluYW1pY01hcHBpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhZGRBY2Nlc3NNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5TWFwcGluZzogQWNjZXNzTWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkdyb3VwczogW10sXG4gICAgICB0aGVuQXBwbGljYXRpb25zOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5tYXBwaW5ncy5wdXNoKGVtcHR5TWFwcGluZyk7XG4gIH1cblxuICBhZGRJbnZlbnRvcnlNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5SW52ZW50b3J5TWFwcGluZzogSW52ZW50b3J5TWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkludmVudG9yeVJvbGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncy5wdXNoKGVtcHR5SW52ZW50b3J5TWFwcGluZyk7XG4gIH1cblxuICBvblJlbW92ZShhY2Nlc3NNYXBwaW5nOiBBY2Nlc3NNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzLCBhY2Nlc3NNYXBwaW5nKTtcbiAgfVxuXG4gIG9uUmVtb3ZlSW52ZW50b3J5TWFwcGluZyhpbnZlbnRvcnlNYXBwaW5nOiBJbnZlbnRvcnlNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLmludmVudG9yeU1hcHBpbmdzLCBpbnZlbnRvcnlNYXBwaW5nKTtcbiAgfVxuXG4gIHNldER5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbihcbiAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBib29sZWFuLFxuICAgIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwUm9sZXNPbmx5Rm9yTmV3VXNlciA9IG1hcFJvbGVzT25seUZvck5ld1VzZXI7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmcgPVxuICAgICAgbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmc7XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGdldCBtYXBSb2xlc09ubHlGb3JOZXdVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYXBSb2xlc09ubHlGb3JOZXdVc2VyO1xuICB9XG5cbiAgZ2V0IG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZztcbiAgfVxuXG4gIGdldCBtYXBGcm9tSWRUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwRnJvbUlkVG9rZW47XG4gIH1cblxuICBzZXRNYXBGcm9tSWRUb2tlbihtYXBGcm9tSWRUb2tlbikge1xuICAgIHRoaXMuZHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uLm1hcEZyb21JZFRva2VuID0gbWFwRnJvbUlkVG9rZW47XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5jb25maWd1cmF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREeW5hbWljTWFwcGluZygpIHtcbiAgICBkZWZhdWx0c0RlZXAodGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlciwge1xuICAgICAgZHluYW1pY01hcHBpbmc6IHtcbiAgICAgICAgbWFwcGluZ3M6IFtdLFxuICAgICAgICBpbnZlbnRvcnlNYXBwaW5nczogW10sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBmYWxzZSxcbiAgICAgICAgICBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZzogZmFsc2UsXG4gICAgICAgICAgbWFwRnJvbUlkVG9rZW46IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0yNFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMlwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImg0IHRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIEFjY2VzcyBtYXBwaW5nXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwIGNvbC1sZy05XCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICA8bGVnZW5kPnt7ICdTb3VyY2Ugb2YgZHluYW1pYyBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBSRVRSSVZFX0ZST01fQUNDRVNTX1RPS0VOIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nU291cmNlXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIW1hcEZyb21JZFRva2VuXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRNYXBGcm9tSWRUb2tlbihmYWxzZSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgUkVUUklWRV9GUk9NX0lEX1RPS0VOIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nU291cmNlXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibWFwRnJvbUlkVG9rZW5cIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldE1hcEZyb21JZFRva2VuKHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBSRVRSSVZFX0ZST01fSURfVE9LRU4gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgIDxsZWdlbmQ+e3sgJ0R5bmFtaWMgYWNjZXNzIG1hcHBpbmcgcHJpbmNpcGxlJyB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFVTRV9BQ0NFU1NfTUFQUElOR19PTl9VU0VSX0NSRUFUSU9OX09QVElPTiB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1yYWRpbyBpbnB1dC1zbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJkeW5hbWljQWNjZXNzTWFwcGluZ0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWludmVudG9yeS1yb2xlcy1tYXBwaW5nLS1vbi11c2VyLWNyZWF0aW9uXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibWFwUm9sZXNPbmx5Rm9yTmV3VXNlclwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0RHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uKHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBVU0VfQUNDRVNTX01BUFBJTkdfT05fVVNFUl9DUkVBVElPTl9PUFRJT04gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyPVwie3sgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fVE9PTFRJUCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktaW52ZW50b3J5LXJvbGVzLW1hcHBpbmctLW90aGVyLW9uZXMtd2lsbC1iZS11bmNoYW5nZWRcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhbWFwUm9sZXNPbmx5Rm9yTmV3VXNlciAmJiBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZ1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0RHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uKGZhbHNlLCB0cnVlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt7IFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyPVwie3sgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9UT09MVElQIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgQ0xFQVJfQU5EX1VQREFURURfUk9MRVNfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktaW52ZW50b3J5LXJvbGVzLW1hcHBpbmctLW90aGVyLW9uZXMtd2lsbC1iZS1jbGVhcmVkXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIW1hcFJvbGVzT25seUZvck5ld1VzZXIgJiYgIW1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREeW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24oZmFsc2UsIGZhbHNlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt7IENMRUFSX0FORF9VUERBVEVEX1JPTEVTX09OX0VBQ0hfTE9HX0lOX09QVElPTiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgcG9wb3Zlcj1cInt7IENMRUFSX0FORF9VUERBVEVEX1JPTEVTX09OX0VBQ0hfTE9HX0lOX1RPT0xUSVAgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPC9maWVsZHNldD5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTE2XCI+XG4gICAgICAgIDxsZWdlbmQ+e3sgJ0R5bmFtaWMgYWNjZXNzIG1hcHBpbmcnIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgW2ljb25dPVwiJ2xpc3QnXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ05vIGFjY2VzcyBtYXBwaW5nIHJ1bGVzIGRlZmluZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3N1YnRpdGxlXT1cIidDbGljayBiZWxvdyB0byBhZGQgYSBuZXcgbWFwcGluZy4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgYWNjZXNzTWFwcGluZyBvZiB0ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5tYXBwaW5ncztcbiAgICAgICAgICAgIGluZGV4IGFzIGlkeFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Yzh5LXNzby1keW5hbWljLWFjY2Vzcy1tYXBwaW5nXG4gICAgICAgICAgICBbYWNjZXNzTWFwcGluZ109XCJhY2Nlc3NNYXBwaW5nXCJcbiAgICAgICAgICAgIChvblJlbW92ZUFjY2Vzc01hcHBpbmcpPVwib25SZW1vdmUoYWNjZXNzTWFwcGluZylcIlxuICAgICAgICAgICAgW2FwcHNdPVwiYXBwc1wiXG4gICAgICAgICAgICBbZ3JvdXBzXT1cImdyb3Vwc1wiXG4gICAgICAgICAgICBbYWNjZXNzTWFwcGluZ0luZGV4XT1cImlkeFwiXG4gICAgICAgICAgPjwvYzh5LXNzby1keW5hbWljLWFjY2Vzcy1tYXBwaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtdC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYWRkLWFjY2Vzcy1tYXBwaW5nLWJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFkZEFjY2Vzc01hcHBpbmcoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAge3sgJ0FkZCBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMTZcIj5cbiAgICAgICAgPGxlZ2VuZD5cbiAgICAgICAgICB7eyAnSW52ZW50b3J5IHJvbGVzIG1hcHBpbmcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbGVnZW5kPlxuICAgICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgICAgKm5nSWY9XCJ0ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgIFtpY29uXT1cIidsaXN0J1wiXG4gICAgICAgICAgW3RpdGxlXT1cIidObyBpbnZlbnRvcnkgcm9sZXMgbWFwcGluZyBydWxlcyBkZWZpbmVkLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtzdWJ0aXRsZV09XCInQ2xpY2sgYmVsb3cgdG8gYWRkIGEgbmV3IG1hcHBpbmcuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gICAgICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGludmVudG9yeU1hcHBpbmcgb2YgdGVtcGxhdGVNb2RlbC5vbk5ld1VzZXIuZHluYW1pY01hcHBpbmcuaW52ZW50b3J5TWFwcGluZ3M7XG4gICAgICAgICAgICBpbmRleCBhcyBpZHhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGM4eS1zc28taW52ZW50b3J5LXJvbGVzLW1hcHBpbmdcbiAgICAgICAgICAgIFtpbnZlbnRvcnlSb2xlc109XCJpbnZlbnRvcnlSb2xlc1wiXG4gICAgICAgICAgICBbaW52ZW50b3J5TWFwcGluZ109XCJpbnZlbnRvcnlNYXBwaW5nXCJcbiAgICAgICAgICAgIChvblJlbW92ZUludmVudG9yeU1hcHBpbmcpPVwib25SZW1vdmVJbnZlbnRvcnlNYXBwaW5nKGludmVudG9yeU1hcHBpbmcpXCJcbiAgICAgICAgICAgIFtpbnZlbnRvcnlNYXBwaW5nSW5kZXhdPVwiaWR4XCJcbiAgICAgICAgICA+PC9jOHktc3NvLWludmVudG9yeS1yb2xlcy1tYXBwaW5nPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtdC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYWRkLWludmVudG9yeS1tYXBwaW5nLWJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCBpbnZlbnRvcnkgcm9sZXMgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFkZEludmVudG9yeU1hcHBpbmcoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAge3sgJ0FkZCBpbnZlbnRvcnkgcm9sZXMgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL2FjY2Vzcy1tYXBwaW5nL2FjY2Vzcy1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy9hY2Nlc3MtbWFwcGluZy9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sc0JBQXNCO0lBOEJqQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCdEQsZ0RBQTJDLEdBQUcsT0FBTyxDQUNuRCxtTEFBbUwsQ0FDcEwsQ0FBQztRQUNGLCtDQUEwQyxHQUFHLE9BQU8sQ0FDbEQsa0RBQWtELENBQ25ELENBQUM7UUFFRixpRUFBNEQsR0FBRyxPQUFPLENBQ3BFLDJNQUEyTSxDQUM1TSxDQUFDO1FBQ0YsZ0VBQTJELEdBQUcsT0FBTyxDQUNuRSxnSEFBZ0gsQ0FDakgsQ0FBQztRQUVGLG1EQUE4QyxHQUFHLE9BQU8sQ0FDdEQsMk1BQTJNLENBQzVNLENBQUM7UUFDRixrREFBNkMsR0FBRyxPQUFPLENBQ3JELDhHQUE4RyxDQUMvRyxDQUFDO1FBRUYsOEJBQXlCLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFRCxDQUFDO0lBRTFELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFlBQVksR0FBa0I7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGVBQWUsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUNwRTtZQUNELFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLHFCQUFxQixHQUFxQjtZQUM5QyxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsZUFBZSxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ3BFO1lBQ0Qsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxRQUFRLENBQUMsYUFBNEI7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELHdCQUF3QixDQUFDLGdCQUFrQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELDhCQUE4QixDQUM1QixzQkFBK0IsRUFDL0IsZ0NBQWdDLEdBQUcsS0FBSztRQUV4QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDakYsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdDQUFnQztZQUMvRCxnQ0FBZ0MsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxzQkFBc0IsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxnQ0FBZ0M7UUFDbEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsZ0NBQWdDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQWM7UUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBWSwyQkFBMkI7UUFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1lBQ3pDLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixhQUFhLEVBQUU7b0JBQ2Isc0JBQXNCLEVBQUUsS0FBSztvQkFDN0IsZ0NBQWdDLEVBQUUsS0FBSztpQkFDeEM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFDdEUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLGdDQUFnQyxFQUFFLGNBQWMsRUFBRSxHQUNoRixhQUFhLENBQUM7UUFDaEIsYUFBYSxDQUFDLGNBQWM7WUFDMUIsY0FBYyxLQUFLLFNBQVM7Z0JBQzFCLENBQUMsQ0FBQyxjQUFjO2dCQUNoQixDQUFDLENBQUMsc0JBQXNCLEtBQUssS0FBSyxJQUFJLGdDQUFnQyxLQUFLLEtBQUssQ0FBQztJQUN2RixDQUFDOzhHQXRIVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpTUNabkMsK3ZQQThNQSxraEREcE1pQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs7MkZBRXhELHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FGQUcxRCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHB1bGwsIGRlZmF1bHRzRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElJZGVudGlmaWVkLCBJVXNlckdyb3VwIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW52ZW50b3J5TWFwcGluZywgQWNjZXNzTWFwcGluZyB9IGZyb20gJy4uLy4uL3Nzby1jb25maWd1cmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNzby1hY2Nlc3MtbWFwcGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfV1cbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGFwcHM6IElBcHBsaWNhdGlvbltdO1xuICBASW5wdXQoKSBncm91cHM6IElVc2VyR3JvdXBbXTtcbiAgQElucHV0KCkgaW52ZW50b3J5Um9sZXM6IElJZGVudGlmaWVkW107XG4gIEBJbnB1dCgpIHRlbXBsYXRlTW9kZWw7XG5cbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4sIHRoZXNlIG1hcHBpbmdzIHdpbGwgbm90IGJlIGV4ZWN1dGVkLidcbiAgKTtcbiAgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fT1BUSU9OID0gZ2V0dGV4dChcbiAgICAnVXNlIGR5bmFtaWMgYWNjZXNzIG1hcHBpbmcgb25seSBvbiB1c2VyIGNyZWF0aW9uJ1xuICApO1xuXG4gIFVQREFURV9ST0xFU19MSVNURURfSU5fQUNDRVNTX01BUFBJTkdfT05fRUFDSF9MT0dfSU5fVE9PTFRJUCA9IGdldHRleHQoXG4gICAgJ1RoZSBhY2Nlc3MgbWFwcGluZyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGZpcnN0IGxvZ2luLCB0aGVuIHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBlZGl0IHRoZSB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gb25seSB0aGUgcm9sZXMgbGlzdGVkIGluIHRoZSBhY2Nlc3MgbWFwcGluZ3Mgd2lsbCBiZSB1cGRhdGVkLidcbiAgKTtcbiAgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIHVuY2hhbmdlZCdcbiAgKTtcblxuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9UT09MVElQID0gZ2V0dGV4dChcbiAgICAnVGhlIGFjY2VzcyBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgZHVyaW5nIHRoZSBmaXJzdCBsb2dpbi4gVGhlIGFkbWluaXN0cmF0b3IgY2Fubm90IGVkaXQgdGhlIFNTTyB1c2VyIHJvbGVzLiBEdXJpbmcgdGhlIG5leHQgbG9naW4gYWxsIHRoZSByb2xlcyB3aWxsIGJlIGNsZWFyZWQgYW5kIHRoZSBtYXBwaW5nIHdpbGwgYmUgZXhlY3V0ZWQgYWdhaW4uJ1xuICApO1xuICBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9PUFRJT04gPSBnZXR0ZXh0KFxuICAgICdSb2xlcyBzZWxlY3RlZCBpbiB0aGUgcnVsZXMgYmVsb3cgd2lsbCBiZSByZWFzc2lnbmVkIHRvIGEgdXNlciBvbiBlYWNoIGxvZyBpbiBhbmQgb3RoZXIgb25lcyB3aWxsIGJlIGNsZWFyZWQnXG4gICk7XG5cbiAgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gQWNjZXNzIHRva2VuJyk7XG4gIFJFVFJJVkVfRlJPTV9JRF9UT0tFTiA9IGdldHRleHQoJ1JldHJpZXZlIGZyb20gSUQgdG9rZW4nKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGVNb2RlbCAmJiB0aGlzLmFwcHMgJiYgdGhpcy5ncm91cHMpIHtcbiAgICAgIHRoaXMuc2V0RHluYW1pY01hcHBpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhZGRBY2Nlc3NNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5TWFwcGluZzogQWNjZXNzTWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkdyb3VwczogW10sXG4gICAgICB0aGVuQXBwbGljYXRpb25zOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5tYXBwaW5ncy5wdXNoKGVtcHR5TWFwcGluZyk7XG4gIH1cblxuICBhZGRJbnZlbnRvcnlNYXBwaW5nKCkge1xuICAgIGNvbnN0IGVtcHR5SW52ZW50b3J5TWFwcGluZzogSW52ZW50b3J5TWFwcGluZyA9IHtcbiAgICAgIHdoZW46IHtcbiAgICAgICAgb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICBjaGlsZFByZWRpY2F0ZXM6IFt7IHBhcmFtZXRlclBhdGg6ICcnLCBvcGVyYXRvcjogJ0VRJywgdmFsdWU6ICcnIH1dXG4gICAgICB9LFxuICAgICAgdGhlbkludmVudG9yeVJvbGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncy5wdXNoKGVtcHR5SW52ZW50b3J5TWFwcGluZyk7XG4gIH1cblxuICBvblJlbW92ZShhY2Nlc3NNYXBwaW5nOiBBY2Nlc3NNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzLCBhY2Nlc3NNYXBwaW5nKTtcbiAgfVxuXG4gIG9uUmVtb3ZlSW52ZW50b3J5TWFwcGluZyhpbnZlbnRvcnlNYXBwaW5nOiBJbnZlbnRvcnlNYXBwaW5nKSB7XG4gICAgcHVsbCh0aGlzLnRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLmludmVudG9yeU1hcHBpbmdzLCBpbnZlbnRvcnlNYXBwaW5nKTtcbiAgfVxuXG4gIHNldER5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbihcbiAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBib29sZWFuLFxuICAgIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nID0gZmFsc2VcbiAgKSB7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwUm9sZXNPbmx5Rm9yTmV3VXNlciA9IG1hcFJvbGVzT25seUZvck5ld1VzZXI7XG4gICAgdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmcgPVxuICAgICAgbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmc7XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGdldCBtYXBSb2xlc09ubHlGb3JOZXdVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYXBSb2xlc09ubHlGb3JOZXdVc2VyO1xuICB9XG5cbiAgZ2V0IG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbi5tYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZztcbiAgfVxuXG4gIGdldCBtYXBGcm9tSWRUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24ubWFwRnJvbUlkVG9rZW47XG4gIH1cblxuICBzZXRNYXBGcm9tSWRUb2tlbihtYXBGcm9tSWRUb2tlbikge1xuICAgIHRoaXMuZHluYW1pY01hcHBpbmdDb25maWd1cmF0aW9uLm1hcEZyb21JZFRva2VuID0gbWFwRnJvbUlkVG9rZW47XG4gICAgdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGR5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5jb25maWd1cmF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREeW5hbWljTWFwcGluZygpIHtcbiAgICBkZWZhdWx0c0RlZXAodGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlciwge1xuICAgICAgZHluYW1pY01hcHBpbmc6IHtcbiAgICAgICAgbWFwcGluZ3M6IFtdLFxuICAgICAgICBpbnZlbnRvcnlNYXBwaW5nczogW10sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBtYXBSb2xlc09ubHlGb3JOZXdVc2VyOiBmYWxzZSxcbiAgICAgICAgICBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZzogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgY29uZmlndXJhdGlvbiB9ID0gdGhpcy50ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZztcbiAgICBjb25zdCB7IG1hcFJvbGVzT25seUZvck5ld1VzZXIsIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nLCBtYXBGcm9tSWRUb2tlbiB9ID1cbiAgICAgIGNvbmZpZ3VyYXRpb247XG4gICAgY29uZmlndXJhdGlvbi5tYXBGcm9tSWRUb2tlbiA9XG4gICAgICBtYXBGcm9tSWRUb2tlbiAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbWFwRnJvbUlkVG9rZW5cbiAgICAgICAgOiBtYXBSb2xlc09ubHlGb3JOZXdVc2VyID09PSBmYWxzZSAmJiBtYW5hZ2VSb2xlc09ubHlGcm9tQWNjZXNzTWFwcGluZyA9PT0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTI0XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaDQgdGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHNcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgQWNjZXNzIG1hcHBpbmdcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTAgY29sLWxnLTlcIj5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgIDxsZWdlbmQ+e3sgJ1NvdXJjZSBvZiBkeW5hbWljIGFjY2VzcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiZHluYW1pY0FjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiZHluYW1pYy1hY2Nlc3MtbWFwcGluZy1mcm9tLWFjY2Vzcy10b2tlblwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiFtYXBGcm9tSWRUb2tlblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TWFwRnJvbUlkVG9rZW4oZmFsc2UpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBSRVRSSVZFX0ZST01fQUNDRVNTX1RPS0VOIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFJFVFJJVkVfRlJPTV9JRF9UT0tFTiB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1yYWRpbyBpbnB1dC1zbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJkeW5hbWljQWNjZXNzTWFwcGluZ1NvdXJjZVwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJkeW5hbWljLWFjY2Vzcy1tYXBwaW5nLWZyb20taWQtdG9rZW5cIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJtYXBGcm9tSWRUb2tlblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TWFwRnJvbUlkVG9rZW4odHJ1ZSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFJFVFJJVkVfRlJPTV9JRF9UT0tFTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPC9maWVsZHNldD5cblxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgPGxlZ2VuZD57eyAnRHluYW1pYyBhY2Nlc3MgbWFwcGluZyBwcmluY2lwbGUnIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgVVNFX0FDQ0VTU19NQVBQSU5HX09OX1VTRVJfQ1JFQVRJT05fT1BUSU9OIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LXJhZGlvIGlucHV0LXNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cImR5bmFtaWNBY2Nlc3NNYXBwaW5nQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktaW52ZW50b3J5LXJvbGVzLW1hcHBpbmctLW9uLXVzZXItY3JlYXRpb25cIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJtYXBSb2xlc09ubHlGb3JOZXdVc2VyXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREeW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24odHJ1ZSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFVTRV9BQ0NFU1NfTUFQUElOR19PTl9VU0VSX0NSRUFUSU9OX09QVElPTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4taGVscFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBvcG92ZXI9XCJ7eyBVU0VfQUNDRVNTX01BUFBJTkdfT05fVVNFUl9DUkVBVElPTl9UT09MVElQIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiZHluYW1pY0FjY2Vzc01hcHBpbmdDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1pbnZlbnRvcnktcm9sZXMtbWFwcGluZy0tb3RoZXItb25lcy13aWxsLWJlLXVuY2hhbmdlZFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiFtYXBSb2xlc09ubHlGb3JOZXdVc2VyICYmIG1hbmFnZVJvbGVzT25seUZyb21BY2Nlc3NNYXBwaW5nXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREeW5hbWljTWFwcGluZ0NvbmZpZ3VyYXRpb24oZmFsc2UsIHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAge3sgVVBEQVRFX1JPTEVTX0xJU1RFRF9JTl9BQ0NFU1NfTUFQUElOR19PTl9FQUNIX0xPR19JTl9PUFRJT04gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBvcG92ZXI9XCJ7eyBVUERBVEVfUk9MRVNfTElTVEVEX0lOX0FDQ0VTU19NQVBQSU5HX09OX0VBQ0hfTE9HX0lOX1RPT0xUSVAgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBDTEVBUl9BTkRfVVBEQVRFRF9ST0xFU19PTl9FQUNIX0xPR19JTl9PUFRJT04gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiZHluYW1pY0FjY2Vzc01hcHBpbmdDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1pbnZlbnRvcnktcm9sZXMtbWFwcGluZy0tb3RoZXItb25lcy13aWxsLWJlLWNsZWFyZWRcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhbWFwUm9sZXNPbmx5Rm9yTmV3VXNlciAmJiAhbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmdcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldER5bmFtaWNNYXBwaW5nQ29uZmlndXJhdGlvbihmYWxzZSwgZmFsc2UpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAge3sgQ0xFQVJfQU5EX1VQREFURURfUk9MRVNfT05fRUFDSF9MT0dfSU5fT1BUSU9OIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyPVwie3sgQ0xFQVJfQU5EX1VQREFURURfUk9MRVNfT05fRUFDSF9MT0dfSU5fVE9PTFRJUCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMTZcIj5cbiAgICAgICAgPGxlZ2VuZD57eyAnRHluYW1pYyBhY2Nlc3MgbWFwcGluZycgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVNb2RlbC5vbk5ld1VzZXIuZHluYW1pY01hcHBpbmcubWFwcGluZ3MubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICBbaWNvbl09XCInbGlzdCdcIlxuICAgICAgICAgIFt0aXRsZV09XCInTm8gYWNjZXNzIG1hcHBpbmcgcnVsZXMgZGVmaW5lZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbc3VidGl0bGVdPVwiJ0NsaWNrIGJlbG93IHRvIGFkZCBhIG5ldyBtYXBwaW5nLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgICAgICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBhY2Nlc3NNYXBwaW5nIG9mIHRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLm1hcHBpbmdzO1xuICAgICAgICAgICAgaW5kZXggYXMgaWR4XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjOHktc3NvLWR5bmFtaWMtYWNjZXNzLW1hcHBpbmdcbiAgICAgICAgICAgIFthY2Nlc3NNYXBwaW5nXT1cImFjY2Vzc01hcHBpbmdcIlxuICAgICAgICAgICAgKG9uUmVtb3ZlQWNjZXNzTWFwcGluZyk9XCJvblJlbW92ZShhY2Nlc3NNYXBwaW5nKVwiXG4gICAgICAgICAgICBbYXBwc109XCJhcHBzXCJcbiAgICAgICAgICAgIFtncm91cHNdPVwiZ3JvdXBzXCJcbiAgICAgICAgICAgIFthY2Nlc3NNYXBwaW5nSW5kZXhdPVwiaWR4XCJcbiAgICAgICAgICA+PC9jOHktc3NvLWR5bmFtaWMtYWNjZXNzLW1hcHBpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC10LTE2XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJhZGQtYWNjZXNzLW1hcHBpbmctYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkIGFjY2VzcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkQWNjZXNzTWFwcGluZygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyAnQWRkIGFjY2VzcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0xNlwiPlxuICAgICAgICA8bGVnZW5kPlxuICAgICAgICAgIHt7ICdJbnZlbnRvcnkgcm9sZXMgbWFwcGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sZWdlbmQ+XG4gICAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlTW9kZWwub25OZXdVc2VyLmR5bmFtaWNNYXBwaW5nLmludmVudG9yeU1hcHBpbmdzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgW2ljb25dPVwiJ2xpc3QnXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ05vIGludmVudG9yeSByb2xlcyBtYXBwaW5nIHJ1bGVzIGRlZmluZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3N1YnRpdGxlXT1cIidDbGljayBiZWxvdyB0byBhZGQgYSBuZXcgbWFwcGluZy4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgaW52ZW50b3J5TWFwcGluZyBvZiB0ZW1wbGF0ZU1vZGVsLm9uTmV3VXNlci5keW5hbWljTWFwcGluZy5pbnZlbnRvcnlNYXBwaW5ncztcbiAgICAgICAgICAgIGluZGV4IGFzIGlkeFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Yzh5LXNzby1pbnZlbnRvcnktcm9sZXMtbWFwcGluZ1xuICAgICAgICAgICAgW2ludmVudG9yeVJvbGVzXT1cImludmVudG9yeVJvbGVzXCJcbiAgICAgICAgICAgIFtpbnZlbnRvcnlNYXBwaW5nXT1cImludmVudG9yeU1hcHBpbmdcIlxuICAgICAgICAgICAgKG9uUmVtb3ZlSW52ZW50b3J5TWFwcGluZyk9XCJvblJlbW92ZUludmVudG9yeU1hcHBpbmcoaW52ZW50b3J5TWFwcGluZylcIlxuICAgICAgICAgICAgW2ludmVudG9yeU1hcHBpbmdJbmRleF09XCJpZHhcIlxuICAgICAgICAgID48L2M4eS1zc28taW52ZW50b3J5LXJvbGVzLW1hcHBpbmc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC10LTE2XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJhZGQtaW52ZW50b3J5LW1hcHBpbmctYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkIGludmVudG9yeSByb2xlcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkSW52ZW50b3J5TWFwcGluZygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyAnQWRkIGludmVudG9yeSByb2xlcyBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -18,19 +18,19 @@ export class UserDataMappingComponent {
18
18
  }
19
19
  }
20
20
  get useIdToken() {
21
- return this.templateModel.useIdToken;
21
+ return this.templateModel.useIdToken || false;
22
22
  }
23
23
  setUseIdToken(useIdToken) {
24
24
  this.templateModel.useIdToken = useIdToken;
25
25
  this.controlContainer.control.markAsDirty();
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserDataMappingComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: { templateModel: "templateModel" }, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: { templateModel: "templateModel" }, ngImport: i0, template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-access-token\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-id-token\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserDataMappingComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'c8y-sso-user-data-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
32
+ args: [{ selector: 'c8y-sso-user-data-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div\n class=\"h4 text-normal text-right text-left-xs\"\n translate\n >\n User data mappings\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ 'Source of user data mapping' | translate }}</legend>\n <c8y-form-group>\n <label\n title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-access-token\"\n [checked]=\"!useIdToken\"\n (change)=\"setUseIdToken(false)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n </label>\n <label\n title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n class=\"c8y-radio input-sm\"\n >\n <input\n type=\"radio\"\n name=\"userAccessMappingSource\"\n data-cy=\"user-access-mapping-from-id-token\"\n [checked]=\"useIdToken\"\n (change)=\"setUseIdToken(true)\"\n />\n <span></span>\n <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>\n {{ 'Claim names' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ CLAIM_NAMES | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n ></button>\n </legend>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"firstName\"\n class=\"control-label\"\n translate\n >\n First name\n </label>\n <input\n class=\"form-control\"\n name=\"firstName\"\n id=\"firstName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.firstNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'given_name' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"lastName\"\n class=\"control-label\"\n translate\n >\n Last name\n </label>\n <input\n class=\"form-control\"\n name=\"lastName\"\n id=\"lastName\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.lastNameClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'family_name' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"email\"\n class=\"control-label\"\n translate\n >\n Email\n </label>\n <input\n class=\"form-control\"\n name=\"email\"\n id=\"email\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.emailClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'email' }\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label\n for=\"phoneNumber\"\n class=\"control-label\"\n translate\n >\n Phone number\n </label>\n <input\n class=\"form-control\"\n name=\"phoneNumber\"\n id=\"phoneNumber\"\n [(ngModel)]=\"templateModel.accessTokenToUserDataMappings.phoneNumberClaimName\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'phone_number' }\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n" }]
33
33
  }], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { templateModel: [{
34
34
  type: Input
35
35
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL3VzZXItZGF0YS1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy91c2VyLWRhdGEtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU8xRCxNQUFNLE9BQU8sd0JBQXdCO0lBT25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTHRELGdCQUFXLEdBQUcsT0FBTyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7UUFFOUYsOEJBQXlCLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFRCxDQUFDO0lBRTFELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQVU7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0F0QlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsNkdDVHJDLHk4SUF5SUEsNnVDRGxJaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7OzJGQUV4RCx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUV0QixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztxRkFHMUQsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNzby11c2VyLWRhdGEtbWFwcGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWRhdGEtbWFwcGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfV1cbn0pXG5leHBvcnQgY2xhc3MgVXNlckRhdGFNYXBwaW5nQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGVtcGxhdGVNb2RlbDtcbiAgQ0xBSU1fTkFNRVMgPSBnZXR0ZXh0KCdUb2tlbiBjbGFpbXMgY2FuIGJlIGNoZWNrZWQgaW4gQXVkaXQgTG9ncyB1bmRlciBTaW5nbGUgc2lnbi1vbiB0eXBlLicpO1xuXG4gIFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gPSBnZXR0ZXh0KCdSZXRyaWV2ZSBmcm9tIEFjY2VzcyB0b2tlbicpO1xuICBSRVRSSVZFX0ZST01fSURfVE9LRU4gPSBnZXR0ZXh0KCdSZXRyaWV2ZSBmcm9tIElEIHRva2VuJyk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMudGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncykge1xuICAgICAgdGhpcy50ZW1wbGF0ZU1vZGVsLmFjY2Vzc1Rva2VuVG9Vc2VyRGF0YU1hcHBpbmdzID0ge307XG4gICAgfVxuICB9XG5cbiAgZ2V0IHVzZUlkVG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVNb2RlbC51c2VJZFRva2VuO1xuICB9XG5cbiAgc2V0VXNlSWRUb2tlbih1c2VJZFRva2VuKSB7XG4gICAgdGhpcy50ZW1wbGF0ZU1vZGVsLnVzZUlkVG9rZW4gPSB1c2VJZFRva2VuO1xuICAgIHRoaXMuY29udHJvbENvbnRhaW5lci5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTI0XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaDQgdGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHNcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgVXNlciBkYXRhIG1hcHBpbmdzXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwIGNvbC1sZy05XCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICA8bGVnZW5kPnt7ICdTb3VyY2Ugb2YgdXNlciBkYXRhIG1hcHBpbmcnIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIHRpdGxlPVwie3sgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1yYWRpbyBpbnB1dC1zbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJ1c2VyQWNjZXNzTWFwcGluZ1NvdXJjZVwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiF1c2VJZFRva2VuXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRVc2VJZFRva2VuKGZhbHNlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBSRVRSSVZFX0ZST01fSURfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwidXNlckFjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ1c2VJZFRva2VuXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRVc2VJZFRva2VuKHRydWUpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBSRVRSSVZFX0ZST01fSURfVE9LRU4gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgIDxsZWdlbmQ+XG4gICAgICAgICAge3sgJ0NsYWltIG5hbWVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgcG9wb3Zlcj1cInt7IENMQUlNX05BTUVTIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBmb3I9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBGaXJzdCBuYW1lXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBpZD1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZW1wbGF0ZU1vZGVsLmFjY2Vzc1Rva2VuVG9Vc2VyRGF0YU1hcHBpbmdzLmZpcnN0TmFtZUNsYWltTmFtZVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdnaXZlbl9uYW1lJyB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XG4gICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGZvcj1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgTGFzdCBuYW1lXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwibGFzdE5hbWVcIlxuICAgICAgICAgICAgICAgIGlkPVwibGFzdE5hbWVcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncy5sYXN0TmFtZUNsYWltTmFtZVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdmYW1pbHlfbmFtZScgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBmb3I9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEVtYWlsXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIGlkPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncy5lbWFpbENsYWltTmFtZVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdlbWFpbCcgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBmb3I9XCJwaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFBob25lIG51bWJlclxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInBob25lTnVtYmVyXCJcbiAgICAgICAgICAgICAgICBpZD1cInBob25lTnVtYmVyXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MucGhvbmVOdW1iZXJDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAncGhvbmVfbnVtYmVyJyB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLW1hcHBpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL3VzZXItZGF0YS1tYXBwaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi90ZW1wbGF0ZS1wYXJ0cy91c2VyLWRhdGEtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU8xRCxNQUFNLE9BQU8sd0JBQXdCO0lBT25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTHRELGdCQUFXLEdBQUcsT0FBTyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7UUFFOUYsOEJBQXlCLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFRCxDQUFDO0lBRTFELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBdEJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDZHQ1RyQyx1a0pBMklBLDZ1Q0RwSWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDOzsyRkFFeEQsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLDJCQUEyQixpQkFFdEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7cUZBRzFELGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zc28tdXNlci1kYXRhLW1hcHBpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1kYXRhLW1hcHBpbmcuY29tcG9uZW50Lmh0bWwnLFxuICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH1dXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJEYXRhTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRlbXBsYXRlTW9kZWw7XG4gIENMQUlNX05BTUVTID0gZ2V0dGV4dCgnVG9rZW4gY2xhaW1zIGNhbiBiZSBjaGVja2VkIGluIEF1ZGl0IExvZ3MgdW5kZXIgU2luZ2xlIHNpZ24tb24gdHlwZS4nKTtcblxuICBSRVRSSVZFX0ZST01fQUNDRVNTX1RPS0VOID0gZ2V0dGV4dCgnUmV0cmlldmUgZnJvbSBBY2Nlc3MgdG9rZW4nKTtcbiAgUkVUUklWRV9GUk9NX0lEX1RPS0VOID0gZ2V0dGV4dCgnUmV0cmlldmUgZnJvbSBJRCB0b2tlbicpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MpIHtcbiAgICAgIHRoaXMudGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncyA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGdldCB1c2VJZFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlTW9kZWwudXNlSWRUb2tlbiB8fCBmYWxzZTtcbiAgfVxuXG4gIHNldFVzZUlkVG9rZW4odXNlSWRUb2tlbikge1xuICAgIHRoaXMudGVtcGxhdGVNb2RlbC51c2VJZFRva2VuID0gdXNlSWRUb2tlbjtcbiAgICB0aGlzLmNvbnRyb2xDb250YWluZXIuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0yNFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMlwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImg0IHRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIFVzZXIgZGF0YSBtYXBwaW5nc1xuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMCBjb2wtbGctOVwiPlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgPGxlZ2VuZD57eyAnU291cmNlIG9mIHVzZXIgZGF0YSBtYXBwaW5nJyB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICB0aXRsZT1cInt7IFJFVFJJVkVfRlJPTV9BQ0NFU1NfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwidXNlckFjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwidXNlci1hY2Nlc3MtbWFwcGluZy1mcm9tLWFjY2Vzcy10b2tlblwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiF1c2VJZFRva2VuXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRVc2VJZFRva2VuKGZhbHNlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgUkVUUklWRV9GUk9NX0FDQ0VTU19UT0tFTiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBSRVRSSVZFX0ZST01fSURfVE9LRU4gfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcmFkaW8gaW5wdXQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwidXNlckFjY2Vzc01hcHBpbmdTb3VyY2VcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwidXNlci1hY2Nlc3MtbWFwcGluZy1mcm9tLWlkLXRva2VuXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwidXNlSWRUb2tlblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0VXNlSWRUb2tlbih0cnVlKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgUkVUUklWRV9GUk9NX0lEX1RPS0VOIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICA8bGVnZW5kPlxuICAgICAgICAgIHt7ICdDbGFpbSBuYW1lcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwIGJ0bi1oZWxwLS1zbVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHBvcG92ZXI9XCJ7eyBDTEFJTV9OQU1FUyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvbGVnZW5kPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgZm9yPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgRmlyc3QgbmFtZVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncy5maXJzdE5hbWVDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnZ2l2ZW5fbmFtZScgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBmb3I9XCJsYXN0TmFtZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIExhc3QgbmFtZVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBpZD1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MubGFzdE5hbWVDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnZmFtaWx5X25hbWUnIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgZm9yPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBFbWFpbFxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICBpZD1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MuZW1haWxDbGFpbU5hbWVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnZW1haWwnIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgZm9yPVwicGhvbmVOdW1iZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBQaG9uZSBudW1iZXJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJwaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgaWQ9XCJwaG9uZU51bWJlclwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZW1wbGF0ZU1vZGVsLmFjY2Vzc1Rva2VuVG9Vc2VyRGF0YU1hcHBpbmdzLnBob25lTnVtYmVyQ2xhaW1OYW1lXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogJ3Bob25lX251bWJlcicgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=